The open source code agent ecosystem is growing fast — and two projects are stealing the spotlight in the terminal: OpenCode and Crush. Both are free, both work with your API key of choice, and both offer an impressive terminal experience. But they’re quite different projects in philosophy, maturity, and focus.
This article is an honest comparison to help you decide which fits your workflow better.
A note before we start: If you’ve already read our article on OpenCode, you’ll know we correctly mentioned using API key (not Claude.ai subscription) to avoid issues with Anthropic’s Terms of Service. The exact same thing applies to Crush. Always use your API key — never the Claude.ai subscription — when connecting these agents to Anthropic models.
What Exactly Are They?
OpenCode is an open source code agent built in Go by the team at Anomaly — the same folks who made terminal.shop. It has over 100K stars on GitHub, over 700 contributors, and is used by 2.5 million developers per month. It has CLI, desktop apps (macOS, Windows, Linux), and extensions for VS Code, Cursor, JetBrains, Zed, Neovim, and Emacs. Its dedicated site: opencode.ai
Crush is the code agent from Charmbracelet — the team behind Bubble Tea, Glow, and pretty much everything that makes the terminal look spectacular. It has ~15.6K stars, 60 contributors, and its repository is its main home. It doesn’t have a dedicated site — it lives on GitHub and charm.land.
Feature Comparison
| Feature | OpenCode | Crush |
|---|---|---|
| Language | Go | Go |
| License | MIT | FSL-1.1-MIT |
| GitHub Stars | 100K+ | 15.6K |
| Contributors | 700+ | 60 |
| TUI / Terminal Interface | ||
| Desktop App | ||
| IDE Extensions | ||
| Model Support | 75+ providers via Models.dev | Multi-provider + custom via JSON |
| LSP Integration | ||
| MCP Support | ||
| Local Models | ||
| Client-Server Architecture | ||
| Dual Agent (Build/Plan) | ||
| Multiple Sessions | ||
| Metrics / Telemetry | No | Anonymized (opt-out available) |
| Price | Free (you pay only for API) | Free (you pay only for API) |
| Dedicated Site |
What Each One Does Well
OpenCode — Maturity and Ecosystem
OpenCode feels like a finished product. It has documentation, a website, desktop apps, extensions for pretty much any editor you use, and a massive community. Its dual agent system (Build/Plan) is especially useful: Plan mode is read-only, perfect for exploring a new codebase without touching anything. Build mode is the full agent.
The LSP integration with 40+ languages means the LLM gets real feedback from the compiler — not just text analysis. You can tell the difference in the quality of generated code. And its client-server architecture opens interesting doors: you can run the agent on your machine and control it remotely.
It also supports using ChatGPT Plus/Pro and GitHub Copilot subscriptions directly (these platforms explicitly allow it in their TOS). For Claude, always use API key.
Crush — Aesthetics and Terminal Culture
Crush has something OpenCode can’t buy: Charmbracelet’s visual signature. If you use Bubble Tea, Glow, or Glamour, you know exactly what I mean. Crush’s TUI is, without exaggeration, the most beautiful on the market. For developers who live in the terminal, that matters more than it sounds.
Crush also has very complete support for custom providers — you can configure pretty much any OpenAI or Anthropic-compatible API directly in the JSON. Integration with Bedrock and Vertex AI is well documented. And it respects the DO_NOT_TRACK standard, which is a detail that speaks well of the team.
Another point in its favor: the attribution in commits system is elegant — you can configure whether you want it to appear as Assisted-by, Co-Authored-By, or nothing.
The Critical Point: The License
Here’s a difference that many overlook and that could matter a lot depending on your context:
- OpenCode uses MIT license — completely free, you can use it in commercial projects, modify it, distribute it, with no restrictions.
- Crush uses FSL-1.1-MIT (Functional Source License) — it has commercial restrictions for the first two years from each release. After that period it converts to MIT. For personal use and open source projects, there’s no problem. But if you plan to build something commercial on top of Crush, check the terms first.
Which Has Better Public Presence?
OpenCode wins clearly here. It has a dedicated site with docs, download page, its own branding, and active presence. Crush lives mainly on GitHub and charm.land — which is very consistent with Charmbracelet’s culture, but makes it harder to recommend to someone who isn’t already a terminal dweller.
What About Factory.ai?
During research for this article we also explored Factory.ai — and it’s worth mentioning even briefly. Its web design is impressive, among the most beautiful we’ve seen in this space. But Factory is a completely different product: it targets the enterprise market, with “Droids” that integrate into CI/CD, Slack, Linear, and complete team workflows. It’s not a tool you simply install with npm — it’s a platform for teams with budget and scale needs. We didn’t go deeper because it’s outside this article’s scope, but if you work at a large company, it’s worth checking out.
Which Should You Use?
Choose OpenCode if:
- You want the most mature option with the highest adoption
- You work across multiple editors and want extensions
- You value the MIT license without restrictions
- You need desktop apps or remote access
- You’re new to terminal agents and want the best documentation
Choose Crush if:
- You already use Charmbracelet tools and love their aesthetic
- Your workflow is 100% terminal and you want the most polished TUI on the market
- You need Bedrock or Vertex AI integration well configured
- Community size doesn’t matter to you — you prefer design quality
Both are excellent options for developers in Latin America — the free model + API key makes them accessible without the $20-200/month subscriptions that dominate the market. And since both are open source and provider-agnostic, you can switch models when something better appears without migrating tools.
Have you tried either of these yet? Which do you prefer and why? Comment below. ![]()
Links:
- OpenCode: opencode.ai · GitHub
- Crush: GitHub · charm.land
- Factory.ai: factory.ai