~/talk

Designing a Human-Friendly CLI for API-Driven Infrastructure

Talkat PyCon Italia 2024 · 2024-05-22..05-25· [developer-experience, api-design]
links:none on file
slides:none on file

Bloomberg builds a CLI that reads OpenAPI JSON at startup and generates commands so changing the API alone adds features to the CLI; implementation uses FastAPI and pydantic and formats human-friendly output with Ginger templates for human output. Commands support positional args, short flags, multiple formatters (CSV/TSV/table/--json) and async job tracking. One physical Python CLI serves many virtual CLIs pointed at different APIs; a demo shows three CLI behaviors changed by editing only the API code.

AI-written summary · about

  1. 0:00Project motivation
  2. 1:30Tightly coupled architecture
  3. 2:20Auto-generating the CLI
  4. 3:41First design iteration
  5. 5:06Refining the user experience
  6. 6:43Advanced CLI requirements
  7. 11:00Implementation strategy
  8. 15:54Live demonstration
  9. 21:18Scalability and closing
  10. 22:42Q&A session
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.