Software Engineering Radio - the podcast for professional software developers

SE Radio 702: Derick Schaefer on Modern CLIs

19 snips
Jan 7, 2026
Derick Schaefer, an expert in command-line interfaces and author of 'CLI: A Practical Guide to Creating Modern Command-Line Interfaces,' dives into the evolution of CLIs from their Unix origins to their modern resurgence. He explores the object-command model popularized by Git and discusses the importance of API-first design for modern tools. Derick also highlights the role of AI in enhancing CLIs and the significance of user experience in output formats. With insights on various programming languages for CLI development, he predicts a bright future for these tools.
Ask episode
AI Snips
Chapters
Books
Transcript
Episode notes
INSIGHT

Language Tradeoffs For CLIs

  • Modern CLIs are implemented in many languages, with Go and Rust rising due to small runtimes and system power.
  • C and C++ persist for core tools, while scripting languages bring runtime overhead and distribution challenges.
ADVICE

Use Go Libraries: pflag, Cobra, Bubble Tea

  • Use established Go libraries like pflag and Cobra for flags and object-command patterns instead of reimplementing them.
  • Leverage terminal and table packages for rich output and easier developer ergonomics.
INSIGHT

Dual Audience: Humans And Machines

  • CLI output serves humans and machines, so provide both readable formats and machine formats like JSON.
  • REPLs and richer terminals can justify decorative output, but structured machine formats remain essential.
Get the Snipd Podcast app to discover more snips from this episode
Get the app