Terminal velocity
Issue 280: Claude Code and the CLI comeback
In the new year, as many people were coming back from the holiday break, it seemed like everyone was talking about Claude Code. It’s been around for a while, but yet there was an explosion of discussion, which I suspect was the downtime people had to tinker. The agentic workflow in the Command Line Interface (CLI) began as Boris Cherny’s side project that became a core dev tool and a full team at Anthropic. It was a command-line prototype that initially controlled music via AppleScript. I recommend reading the whole story on The Pragmatic Engineer; very interesting!
For those who spent the holiday tinkering and playing around with other AI tools, many likely were bombarded with posts about Claude Code. It might feel confusing.
When did the CLI make a comeback? Is chat the future interface again?
Natural Language in the CLI is a prime example of how the right surface and context are key to when chat interactions can be effective. Though there are other CLI AI Agents, such as OpenAI’s Codex and Google’s Gemini CLI, I’ll share my Claude Code experience, which applies to the other experiences. The focus is not on evals and model capability but a focus on surface areas and workflows.
Anthropic’s Claude is the AI assistant powered by their models. For example, I use Opus 4.5 (the model) through Claude’s interface, though other models are available depending on your subscription. Claude Code is a separate command-line tool for agentic coding, accessed via Terminal—distinct from the Claude desktop and mobile apps, which are primarily chat interfaces. We’ll focus on the CLI in this post.
The CLI
There is an infamous scene in the film adaptation of Tom Clancy’s The Hunt for Red October. The movie opens entirely in Russian. You’re watching skilled professionals operate in a language you don’t speak, following rules you don’t yet understand1. You’re not meant to feel fluent. You’re meant to feel like an outsider observing a system in motion.
Then comes the transition.
Ivan Putin2, the political officer, reads from the Book of Revelation. The camera slowly pushes in on his mouth as he speaks. Without a cut, he speaks one final word in Russian, and the next word is in English...Armageddon. From then on, the film is spoken to the audience in English. From that moment on, the film proceeds with the audience hearing them speak English, but narratively, they are still speaking Russian.
The interpretive frame has changed, but the native understanding is the same. The CLI does exactly this for humans and computers; the interpretive layer for one’s own natural language.
The CLI feels hostile, not because it’s primitive, but because it assumes fluency. Like the opening Russian dialogue, it doesn’t explain itself. It exposes raw structure: verbs, parameters, flags, and exit states.
Understanding the CLI is more about listening to computers than talking to them. Modern AI tools are forcing this transition again. Natural language interfaces feel like English with subtitles: friendly, explanatory, and forgiving. But when people move into tools like Claude Code or agent-driven CLIs, they’re stepping closer to the system’s native speech and closer to the metal.
Historically, the CLI was one of the first bridges between human intent and machine execution. Computers operate in binary; the CLI gave humans a symbolic layer that avoided thinking in voltage and memory. The learning curve was steep then, and still is now. This is why the Graphical User Interface (GUI) won mass adoption. Humans were able directly manipulate controls by clicking, dragging, and moving without requiring system fluency.
This distinction matters even more with AI. For humans, abstraction reduces cognitive load. For machines—especially agents—abstraction is friction. Agents don’t need icons or layout; they need primitives: commands, file paths, APIs, and execution context. The CLI persists because it exposes the engine without ceremony.
Why Claude Code in the CLI is great
Claude Code in the CLI modernizes the dialog between human and machine. I would argue it’s more effective than Chat UI interfaces built on top of it because it constrains the conversation. Remember, there is a fundamental difference between the Chat assistants and interacting with natural language. Claude Code in the Terminal is like working with the hood open while a professional mechanic is collaborating with you.
I’ll give you the classic designer answer that will disappoint you. It depends. “Better” is in the eye of the beholder. There are so many factors that might result in what someone may think is better. User experience for AI can be so much about the model output and results as it is the interface you use. It’s too hard to declare a winner in this sector of work, as the leaders can fall behind in an instant (the Code Red moment with OpenAI and Gemini) and catch back up.
For me, I use the entire gamut of tools I can get my hands on. It’s more important to learn the mental model and how to get out of these new tools instead of who develops them—at least in my opinion. In a given day, and times in the same project, I might use Claude Code, Cusor, Replit, or some other tool depending on the Job to be Done. It’s going to come down to what you know and how you like to work. I’ll share a few examples of how I like it.
Local capabilities
Though the Cloud has become immensely powerful since its early inception, there are a lot of advantages of having tools be local-first (on your device and machine vs. connecting to a server). First, the speed of iteration is lightning fast. Even a few steps faster for a certain task will add up over time. When I use AI to code or write, I like to iterate fast and test locally before pushing to production.
Personally, that’s one of the current challenges of using Claude Code on the phone or the Cursor agent in the Cloud. They currently still require a cloud agent to work on a branch to review. This is effective for long-running background tasks that you don’t need to check in on, but for rapid iteration, not so much. I use the Replit Agent this way too; turn on Max autonomy, and I’ll see it later.
Claude Code is also already in the project when you run it, and has context. It’s like being at someone’s house already to get what you need vs. walking over to it. Cloud and Retrieval are fast, but local is faster.
What I’m making using Claude Code
I hope sharing a few examples of how I’m using Claude Code may spark ideas for you to try it out. As of now, I have started my idea to progress phase of work in Claude Code. At times, I may jump into Cursor or Obsidian to finish off the project.
Software
Native iOS and Mac apps
Like death and taxes, Xcode is inevitable if you’re making native iOS and Mac apps. In a world of bundled IDEs, Xcode is the biggest beast out there. It’s nice to have access to the local files, package management, and rely on Claude Code to help navigate for me. My project is an RSS and ActivityPub aggregator.
dhOS: Personal operating system
I’ve been wanting to build a personal operating system to help me run…myself. Danielle Morrill posted a great idea to organize work in a GitHub repo to have Claude Code be your Chief of Staff. This is great context to feed. Peter Yang has a great tutorial with the Product Discovery GOAT Teresa Torres on this topic that I’m excited to dig into.
The “non-development” use cases
Knowledge optimization
Note-taking and tracking knowledge are unique to each individual. I use Obsidian because I’m a big believer in the File over app philosophy. I want my files to remain in Markdown and be transportable. It turns out this file format is very friendly for LLMs. I do not use any agent to rewrite any original notes. It’s important for me to write them in order to convert them into personal knowledge instead of trying to web clip the entire internet.
Idea generation and brainstorming
I use Claude Code to help organize information instead of writing queries. I also use it a lot to read my files and identify themes. The source of content for the ideas I have is not stored in one app. Notes, photos, and files live on a messy desktop or are stored on local and external hard drives.
I’m planning to make a /de-bono skill to help me brainstorm, named after the legendary Edward de Bono.
Takeaways
If you feel intimidated by the CLI (I was when I started my career), two great articles on the Department of Product and Lenny’s Newsletter provide examples and guidance on how to get started. I encourage you to give it a try even if you feel intimidated. One of the most important moments in my career was when I learned how to use Git in the CLI before using apps. It helped me understand much quicker, and using Claude Code could be a didactic moment as you use it.
The mistake is treating interfaces as a winner-take-all choice. Humans vary in skill and intent. Machines have entirely different needs. The opportunity is finding the right workflows for both entities to collaborate, not deciding on using the same tools. Browsers often help humans, but could be a deterrent for machines to use. Let them use what is native to them.
One of my 2025 areas of interest is moving from the Desktop metaphor to the Command Center. Work is no longer a single personal desk but more of a shared community space to collaborate. This is with humans and machines.
Multi-device experiences are coming back again. I find myself using Remote Desktop on my iPad to use Claude Code from my Mac mini or using the CLI on an e-ink display. Between all my devices, we collaborate on a central hub (the Mac mini).
Using Claude Code helps me work at the speed of my thoughts. It allows me to operate on shared artifacts and files, multiple app choices to do the same work, and full access without dependencies.
Simply put, Claude Code provides me with the right interface to make my local file system work at scale.
Hype links
Designing for the command line | Amanda Pinsker → A classic Config talk from 2021, very relevant to this post
TRMNL → Very cool e-ink display project. I preordered one myself!
The Browser Company of New York is hiring a Design Producer and Product Designer
I made a fun little agent orchestration prototype that took Command & Conquer very literally
Atlassian for Startups: Startup Grind hosted an event at our San Francisco office. I have a special place in my heart for early-stage startups
I'm excited to share that I'll be at Hatch Conference's Leadership Atelier in Amsterdam this year (May 28-29)
Unless you speak Russian, of course!
No relation





Brilliant framing of the CLI as the 'native language' between humans and machines. Your point about chat interfaces being friendly but abstracted while CLI gets you closer to the metal really captures why agentic workflows feel more natural in Terminal. I've been experimenting wiht local-first tools for a while now and the latency differnce is night and day, you're right that even small speed gains compound over time. The Hunt for Red October analogy is perfect for describing that transition to system fluency.