The Mac-vs-PC Story Playing out in CLI Agents
(Expanded from this tweet thread.)
Recently I became Claude Code-pilled. I had been eagerly trying out the CLI agents from all three major providers: Gemini CLI from Google, Codex CLI from OpenAI, and Claude Code from Anthropic. All the breathless AI influencers turned out to be right: Claude Code is just much, much better than the others.
If you look at the internal architecture of these CLI agents and the resulting full product, you will see the Mac vs PC story playing out all over again.
The architecture of a CLI agent consists of three layers:
- The Model: This is the foundational Large Language Model (LLM) that does the core thinking—the Claude, Gemini etc. This layer is responsible for the raw intelligence of the system.
- The Agentic Scaffolding Around the Model: This middle layer consists of all the tools, prompts, retrieval mechanisms (like RAG or agentic search), and retry loops. It’s the framework that guides the model, giving it the tools and context it needs to perform a specific task, like fixing a bug, or writing code for a feature spec.
- The Text User Interface (TUI): The textual user interaction in the terminal. This layer manages everything the user sees and interacts with: rendering output in the terminal, handling input, and displaying the status of ongoing tasks.
In most of the major CLI agents today—Codex, Gemini CLI, and Claude Code—these three layers are bundled together into a single, monolithic package. You can’t easily swap out one component for another.
But just like people wanted to build their own PCs out of parts of their choice, we’re now seeing CLI agents that are offering a more mix and match approach. Agents like OpenCode and Crush let you swap in any LLM and also bring modularity to the core system prompts used for agentic behavior. They are innovating at the TUI level and pulling in users with eye-candy UI. They are betting on a modular, mix-and-match strategy.
Anthropic, however, is taking the complete opposite approach with Claude Code. Their strategy is reminiscent of Apple’s: a fully integrated, hermetically-sealed system. You use the Claude model with their proprietary agentic harness and their TUI. It is telling that of the three major CLI agents, it is the only one that is not open-source.
It works though. Claude Code has cemented its reputation as the best SWE (and even general-purpose) CLI agent. I suspect a lot of that is due to the underlying Claude models, but also a significant part of its effectiveness comes from the tenacity and intelligence baked into its agentic harness—the secret sauce they’re not giving away (prompt reverse-engineering notwithstanding).
I’m not sure which approach will win out. Maybe we’ll settle in an equilibrium–very much like the Mac and the PC have–where both kinds of products are successful and have a large user base.