More Software Engineering Radio episodes

Derick Schaefer on Modern CLIs thumbnail

Derick Schaefer on Modern CLIs

Published 7 Jan 2026

Duration: 48:05

This podcast analyzes the evolution and design of modern Command Line Interfaces (CLIs), covering their history, philosophies, and applications in automation and concurrency.

Episode Description

Derick Schaefer, author of CLI: A Practical Guide to Creating Modern Command-Line Interfaces, talks with host Robert Blumen about command-line interfa...

Overview

The podcast explores the development and modernization of Command Line Interfaces (CLIs), tracing their origins from early teletype systems to their current relevance in software development. It examines key aspects that define a modern CLI, such as design philosophies inspired by the UNIX command model, object-based command structures, and integration with development tools. The discussion emphasizes the practical applications of CLIs in automation, data processing, and workflow management, while also addressing technical challenges like handling long-running tasks, memory optimization, and concurrency in languages such as Go and Rust.

The podcast also covers topics like CLI output formatting for both human and machine consumption, with a focus on the importance of JSON for interoperability. It introduces tools like Cobra and Pflag which aid in CLI development. Additional subjects include CLI security, authentication practices, documentation, and the potential of integrating AI with CLI tools. The conversation contrasts CLIs with web interfaces, highlighting the unique use cases for each, and underscores the importance of designing CLIs that are both user-friendly and technically robust.

Recent Episodes of Software Engineering Radio

25 Mar 2026 Hector Ramon Jimenez on Building a GUI library in Rust

ICE is a Rust-based UI toolkit inspired by Elm's architecture, using message-passing to separate state, updates, and views, evolved from a game library module into a functional-focused standalone tool with Winit/WGPU rendering, cross-platform goals, and challenges in dependency stability, while emphasizing state-driven design, community development, and future improvements in rendering efficiency, accessibility, and multi-platform support.

18 Mar 2026 Dan Lorenc on Sigstore

Software supply chain attacks exploit vulnerabilities in development tools and open-source components, exemplified by the Shyhalood NPM breach, with SIGStore proposed as a cryptographic solution to verify software integrity, though challenges like enforcement and privacy persist in securing open-source ecosystems.

11 Mar 2026 Scott Hanselman on AI-Assisted Development Tools

AI-assisted development tools require precise specifications to navigate ambiguity, balance automation with human oversight and testing, and emphasize foundational programming knowledge to ensure reliable, high-quality software outcomes.

4 Mar 2026 Marc Brooker on Spec-Driven AI Dev

The shift from implementation-focused software development to specification-driven development is transforming the field with AI and agents, prioritizing purpose and goals over code alone.

More Software Engineering Radio episodes