Crush: Charm's take on the coding agent
Charm is the studio behind the tools that made terminals nice again: Bubble Tea, Lip Gloss, Glow, the TUI stack half the modern CLI ecosystem is built on. Crush is what happens when that team ships a coding agent. The bet is a better cockpit, not a smarter loop.
That sounds like cosmetics. It is not. A coding agent is software you supervise in real time, and everything supervision depends on (when you interrupt, what you approve, whether you catch the bad diff before it lands) runs through the interface.
Craft as the feature
Strip the branding off any terminal agent and you find the same control loop: read context, propose an edit or a command, observe the result, repeat. Crush differentiates on the layer most projects treat as an afterthought. Sessions are first-class, so you can keep several conversations per project and jump between them without losing state. Switching models mid-session is a keystroke, and the context survives the switch. Diffs, tool calls, and permission prompts are rendered to be read at a glance rather than scrolled and squinted at.
An agent is a supervision problem wearing an AI costume: the model proposes, but the interface decides how well you steer.
If that still sounds soft, watch someone review agent output in a bare scrollback buffer for an hour, then watch them do the same in a UI that renders diffs properly. The second person catches more. Attention is the scarce resource in agentic coding, and TUI craft is attention engineering.
What sits under the paint
- Multi-model support. Anthropic, OpenAI, Gemini, and any OpenAI-compatible endpoint, which covers most routers and local servers. You bring your own keys and pay per token.
- LSP awareness. Crush can pull context from language servers, so the agent sees the diagnostics your editor sees instead of grepping blind.
- MCP support. External tools plug in over the same protocol the heavier agents use.
- A steering file. CRUSH.md plays the role CLAUDE.md and GEMINI.md play elsewhere: durable project instructions loaded every session.
- One Go binary, Windows included. Rarer in this category than it should be.
Where it fits
Crush shares tangled ancestry with OpenCode. The projects split and went separate ways, and I cover the other branch in the OpenCode tour. Today they are distinct tools with different owners and different taste. Crush is the more designed of the two; OpenCode is the more sprawling.
Against the vendor agents, the trade is the standard one from the open CLI map: you gain model freedom and auditable source, you give up the co-tuned harness, the subagent ecosystems, and a vendor to file tickets at. And the honest limitation: Crush's polish is ahead of its battle-testing. Push it through long multi-step chains, weird monorepos, or exotic toolchains and you will hit rough edges the older agents sanded off long ago.
Reach for Crush if you live in the terminal, want one agent across several providers, and value a cockpit you can read at a glance. Skip it if your work depends on long autonomous runs where harness maturity dominates. Either way, watch it: Charm has a history of turning craft into ecosystem, and this category rewards exactly that muscle.