Skip to content
Go back

Crush - Charmbracelet's AI Coding Agent for the Terminal

Crush: AI Coding in the Terminal, Actually Done Well

Charmbracelet is known for making terminal tools that don’t look like they were designed in 1995. Bubbletea, Lip Gloss, Glamour. They have a thing for making text-based interfaces that feel polished. Crush is their take on AI-assisted coding, and it’s the first terminal-based AI tool that doesn’t make me want to switch to a browser.

The setup was clean. brew install charmbracelet/tap/crush on macOS, or go install for Linux. It uses the same libraries as their other projects, so the interface feels familiar if you’ve used Bubbletea before. Syntax highlighting works. Animations are smooth. The whole thing responds quickly to input.

What impressed me was the model switching. You can start a conversation with Claude, then mid-flow switch to GPT-4o or a local Ollama model. The context carries over. I tested this by asking a question, getting partway through the answer, then switching models. The new model knew what we were talking about. It’s not perfect. Sometimes the transition is a bit jarring, but it works.

LSP integration is where Crush differs from most terminal AI tools. It connects to your language servers and uses that semantic information to understand your code structure. Symbol definitions, type information, call hierarchies. The AI isn’t just guessing from text. It has actual code context.

I set it up with Go and TypeScript. For Go, it connected to gopls. For TypeScript, it used the language server through stdio. The configuration is a JSON file. You specify the command and any arguments. It’s straightforward and it works.

MCP servers extend Crush’s capabilities. I connected it to GitHub for repository operations and to the local filesystem. The MCP protocol is still evolving, but the available servers cover the basics. More are being added regularly.

The Charm ecosystem shows in the details. Markdown rendering looks good. Colors are consistent. The interface adapts to terminal size. It’s the kind of polish you notice because it’s rare in terminal tools.

Installation is simple. Homebrew for macOS. Go install for Linux and anywhere else. The binary is self-contained. No complex dependencies to manage.

There are limitations. It’s terminal-only, which is both a strength and a weakness. If you prefer working in an IDE with a sidebar, Crush won’t replace that. The terminal interface is powerful but it’s still a terminal. You’re working with text, not visual code navigation.

The multi-model support is genuinely useful. Having Claude for complex reasoning tasks, GPT for quick questions, and a local model for sensitive code in the same tool means you’re not locked into one provider. You can use the right tool for each job.


Crush is what happens when a team that cares about terminal UX decides to build an AI coding assistant. It’s not perfect, but it’s the best terminal-based option I’ve tried.


Share this post on:

Previous Post
OpenClaw - Your Personal AI Assistant Gateway
Next Post
TurboQuant - A Revolution for Local AI Context Cache