Agentic Index
Charm Crush vs OpenCode (2026)
Charm's Crush and OpenCode are the two terminal AI coding agents developers actually compare, both free with bring your own keys: Crush is source available under FSL-1.1-MIT from the team behind the beloved Charm terminal tooling, polished terminal UX with your choice of model provider, while OpenCode is fully open source and free, provider agnostic with a strong community. That verdict is the Agentic Index coverage score, graded from each vendor's own published materials.
Cost is identical, your model provider tokens, so the decision is taste and trajectory: Crush for Charm's design quality and ecosystem, OpenCode for maximal openness and community pace.
On the Agentic Index coding agent ranking, neither Charm nor OpenCode clears the bar, which asks for all five merge loop capabilities documented in full. Charm does not document knowledge grounding and RAG in full, nor testing, debugging and optimization; OpenCode documents two of the five in full. 2 of the 70 vendors in the lane clear it. See the coding agent ranking
This comparison is published by Agentic Index, an independent agentic AI vendor research platform. Charm and OpenCode are each graded against the same 14 capability Agentic Index taxonomy, from the vendor's own public materials under the Agentic Index verification standard, alongside 955 researched vendors. No vendor pays for placement and no vendor has reviewed this page. How this evidence is graded
Choose Charm if
- Charm's terminal design quality makes daily work genuinely nicer.
- The surrounding Charm tool ecosystem is already in your workflow.
- Source available licensing is acceptable for your use.
Choose OpenCode if
- Fully open source licensing is a principle for your tooling.
- Community development pace and plugin breadth matter.
- Provider agnostic flexibility across models is the priority.
| Feature | C Charm |
O OpenCode |
|---|---|---|
| Action & orchestration | ||
|
Integrations & Tool Calling Ability to connect agents to real systems through native integrations, OAuth-authenticated actions, custom tools, APIs, webhooks, or MCP-compatible tools. |
||
|
CharmIntegrations & Tool Calling Crush connects to MCP servers over stdio, HTTP and SSE, uses language servers for diagnostics and references, fetches web pages, and runs the developer's own toolchain through its bash tool, alongside built in tools to view, grep, glob, edit and write files. SourceCrush docs (configuration/mcp, tools overview) and github.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeIntegrations & Tool Calling Built in tools let the agent read, edit and search files and execute shell commands. MCP servers, custom tools, plugins and configurable code formatters extend them, and LSP servers load automatically to give the model language intelligence. There are native GitHub and GitLab integrations, and IDE and desktop apps sit alongside the terminal. Sourceopencode.ai/docs/tools, docs/mcp-servers, docs/lsp, docs/github and docs/gitlabread 2026-08-30 |
||
|
Workflow Orchestration Ability to sequence, branch, retry, route, and combine deterministic workflow nodes with autonomous agent steps. |
||
|
CharmWorkflow Orchestration One agent works through a loop of file, search, language server and shell tools, with several sessions per project and models switchable mid session. There are no subagents, handoffs, branching or coordination across agents. SourceCrush docs (tools overview, sessions) and github.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeWorkflow Orchestration A two phase Plan then Build workflow lets the agent propose an implementation approach for review before it makes any changes. Multiple agents can run in parallel on the same project, and custom agents can be configured with their own tools and models. Custom commands and Agent Skills package repeatable multi step work. Sourceopencode.ai/docs/agents, docs/commands and docs/skillsread 2026-08-30 |
||
|
Triggers & Channel Coverage How agents wake up and where they work: schedules, webhooks, message events, CRM events, inbox events, chat, email, voice, and collaboration tools. |
||
|
CharmTriggers & Channel Coverage The crush run command is a non interactive mode for scripts and CI/CD pipelines. A published GitHub Actions workflow runs it on every pull request to review the diff, so work reaches the agent without a person starting it. The interactive terminal is the other surface. Sourcegithub.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeTriggers & Channel Coverage The GitHub integration starts runs without anyone invoking them. The pull_request event runs OpenCode when a pull request is opened, synchronized or reopened, the issues event runs it when an issue is created or edited, and the schedule event runs it on a cron schedule with a stored prompt. A schedule example is published. Comment mentions (/opencode or /oc) and workflow_dispatch cover invoked runs. Beyond GitHub, invocation spans the TUI, a scriptable non interactive CLI returning text or JSON, the desktop app, the IDE extension, a headless HTTP server, ACP clients and a GitLab integration. Sourceopencode.ai/docs/github (Supported Events, Schedule Example) and /docs/gitlabread 2026-09-29 |
||
| Knowledge & context | ||
|
Knowledge Grounding & RAG Ability to ground agent behavior in company data through document ingestion, retrieval, external knowledge APIs, semantic search, or RAG layers. |
||
|
CharmKnowledge Grounding & RAG Context is assembled per run from the repository through view, grep and glob tools, language server diagnostics and references, and project context files such as AGENTS.md and CRUSH.md. There is no index, graph or embeddings layer that persists and can be queried. SourceCrush docs (context files, tools) and github.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeKnowledge Grounding & RAG Context is assembled for each run. Built in tools read, grep, glob and list files on demand, @ fuzzy file references and dropped images attach material to a prompt, and LSP servers loaded at run time give the model language level diagnostics and symbols. There is no maintained retrieval structure over the customer's code or documents, and the docs have no index or knowledge page. AGENTS.md from /init and rules are instructions the product applies. Sourceopencode.ai/docs/tools, /docs/lsp and /docs/rules; opencode.ai/docs/lspread 2026-09-29 |
||
|
Memory & State Persistence Ability to persist context across a run, conversation, workflow, user, team, or longer-term memory layer. |
||
|
CharmMemory & State Persistence Sessions persist across restarts in a per project SQLite database and can be reopened, but the model remembers only the current session, and no context carries from one session to another. Project context files are instructions the developer writes. Sourcegithub.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeMemory & State Persistence Sessions persist locally and can be resumed and shared by link, and /undo and /redo move through change history within a session, so a run carries on where it stopped. There is no memory layer that the agent writes and reads across sessions, and the docs have no memory page. AGENTS.md carries project conventions as instructions, not memory the agent keeps. Sourceopencode.ai/docs/share, /docs/rules and the docs navigationread 2026-09-29 |
||
| Control & trust | ||
|
Human Oversight & Guardrails Approval steps, consent checkpoints, escalation rules, structured guardrails, policy constraints, and pause/resume controls. |
||
|
CharmHuman Oversight & Guardrails Crush asks the developer for permission before it runs tool calls, including in non interactive runs, with an allow list for trusted tools and a --yolo flag that skips the prompts only when the developer chooses it. Sourcegithub.com/charmbracelet/crush and Crush docs (permissions, crush run)read 2026-09-29 |
||
|
OpenCodeHuman Oversight & Guardrails Plan mode turns off the agent's ability to make changes, so it proposes an approach for review before building. A single key toggles it, and the user switches back to Build mode once the plan is agreed. Permissions and policies govern what the agent may do. /undo and /redo revert or replay changes and can be run repeatedly. Non interactive CLI mode auto approves only when it is explicitly invoked for scripting. Sourceopencode.ai/docs/permissions, docs/policies and docsread 2026-08-30 |
||
|
Security, Identity & Governance RBAC, SSO, auditability, encryption, least-privilege tool access, compliance posture, and data handling policy. |
||
|
CharmSecurity, Identity & Governance Provider keys are supplied locally on the developer's own machine, where Crush runs. Usage metrics can be switched off, and prompts and responses are never collected. Ignore files limit what Crush reads, and Charm's optional Hyper inference service offers zero data retention. No certification, single sign on, role based access or audit logging is offered. Sourcegithub.com/charmbracelet/crush, Crush docs (metrics and privacy) and hyper.charm.landread 2026-09-29 |
||
|
OpenCodeSecurity, Identity & Governance Enterprise deployment supports SSO through a central organization config, an internal AI gateway with all other providers disableable, permission rules, organization policies and private npm registry support. The architecture stores no code or context data, and all processing is local or goes direct to the customer's chosen provider. The one exception, the optional share feature, can be disabled by config. No SOC 2, ISO or other attestation is published. Sourceopencode.ai/docs/enterprise, docs/permissions and docs/policiesread 2026-08-30 |
||
|
Observability & Auditability Traces, logs, execution histories, metrics, audit events, and debugging detail for production agent behavior. |
||
|
CharmObservability & Auditability Crush writes a per project JSON log with timestamps and session IDs that records each tool call, such as a bash command, and each prompt sent and response received. The log can be viewed with crush logs, tailed or followed live, and debug mode adds language server traffic. Sessions and their history are kept in a local SQLite database. SourceCrush docs (logging, sessions) and github.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeObservability & Auditability Sessions are stored locally and can be shared as a link that exposes the full conversation for reference or debugging. The TUI shows tool calls as they run, and the agent is MIT licensed, so its behavior is fully inspectable. There is no audit log, run history or organization level record of agent actions. Sourceopencode.ai/docs/share and github.com/anomalyco/opencoderead 2026-08-30 |
||
|
Deployment & Data Residency Deployment modes and options, including SaaS, dedicated cloud, VPC, on-prem, hybrid, local runtime, and self-hosting. |
||
|
CharmDeployment & Data Residency Code stays on the developer's machine because Crush runs locally in the terminal. It works air gapped once provider auto update is switched off and providers are updated manually, and can use local models through Ollama or LM Studio. Sourcegithub.com/charmbracelet/crush and Crush docs (air gapped, local models)read 2026-09-29 |
||
|
OpenCodeDeployment & Data Residency The agent is MIT licensed open source and runs entirely on the developer's own machine. It installs via script, npm, Homebrew, Arch, Chocolatey, Scoop, Mise or Docker. OpenCode stores no code or context data, and all processing is local or goes direct to the customer's chosen provider. Enterprise deployment routes everything through an internal AI gateway with other providers disabled. The only hosted component, share pages, can be disabled by config, and self hosting is on the roadmap. Sourceopencode.ai/docs/enterprise and docsread 2026-08-30 |
||
| Solution readiness | ||
|
Prebuilt Agents, Templates & Packs Ready-made workflows, packaged employees, templates, blueprints, industry solutions, and role-specific agents that reduce time-to-value. |
||
|
CharmPrebuilt Agents, Templates & Packs Skills follow the open Agent Skills standard, with SKILL.md packages discovered from a skills directory. Crush ships no built in skills or catalog and points to Anthropic's public skills repository for examples, so customers assemble the skills themselves. Sourcegithub.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodePrebuilt Agents, Templates & Packs Agent Skills package reusable agent capabilities, custom agents and custom commands can be configured and shared, and plugins extend the runtime. An ecosystem page collects community extensions. There is no catalog of prebuilt agents from OpenCode that install in one click. Sourceopencode.ai/docs/skills, docs/agents, docs/commands and docs/ecosystemread 2026-08-30 |
||
| Platform extensibility | ||
|
Model Flexibility & Routing Ability to work across multiple foundation models, route tasks to different models, or let buyers bring their own providers and keys. |
||
|
CharmModel Flexibility & Routing The developer picks the provider and model from 17 providers, including Anthropic, OpenAI, Google Gemini, AWS Bedrock, Azure, Groq, OpenRouter and Hugging Face, or uses custom OpenAI compatible or Anthropic compatible endpoints and local models. Models can be switched mid session while keeping the conversation. SourceCrush docs (configuration/providers) and github.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeModel Flexibility & Routing OpenCode is model agnostic by design. Any LLM provider can be configured with the customer's own API key, across more than 75 providers via Models.dev, including local models. There is a provider directory, per agent model configuration, an optional curated OpenCode Zen list, Claude Pro and Max account login, and enterprise routing through an internal AI gateway. Sourceopencode.ai/docs/providers and docs/modelsread 2026-08-30 |
||
|
APIs, SDKs & MCP Extensibility Composability layer: stable APIs, SDKs, MCP tool consumption/serving, custom tools, and integration into internal systems. |
||
|
CharmAPIs, SDKs & MCP Extensibility Fantasy, the Go agent framework Charm built to power Crush, is a library with a multi provider API and custom tools. Crush can be driven from scripts through crush run with stdin and stdout, and extended with Agent Skills. MCP support lets Crush reach other systems. Sourcegithub.com/charmbracelet/fantasy and Crush docs (cli/run)read 2026-09-29 |
||
|
OpenCodeAPIs, SDKs & MCP Extensibility There is a published JS/TS SDK, a headless HTTP server with an OpenAPI spec, a plugin system, custom tools, MCP server support, ACP support and an ecosystem page. The whole agent is MIT licensed on GitHub under anomalyco/opencode, and GitHub Copilot ships a formal integration that authenticates with OpenCode. Sourceopencode.ai/docs/sdk, docs/server, docs/plugins and docs/mcp-serversread 2026-08-30 |
||
|
Testing, Debugging & Optimization Testing, debugging, scoring, retries, fallbacks, quality gates, and optimization loops for improving agent workflows before and after deployment. |
||
|
CharmTesting, Debugging & Optimization The agent runs project commands and tests through its bash tool and reads language server diagnostics, and debug logging exposes agent and language server behavior. These check the customer's code and help troubleshoot a run, but there is no harness to evaluate or regression test the agent's own behavior. Sourcegithub.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeTesting, Debugging & Optimization LSP servers surface diagnostics so the agent can see and correct errors in its own edits. The agent can run tests and commands through built in shell tooling, and /undo and /redo help it iterate on a failed attempt. There is no evaluation harness, replay or regression testing of agent behavior. Sourceopencode.ai/docs/lsp and docs/toolsread 2026-08-30 |
||
| Specialist automation | ||
|
Browser & Computer Use Browser, desktop, or remote/local computer control for workflows that cannot be handled through stable APIs alone. |
||
|
CharmBrowser & Computer Use Everything runs through file tools, shell commands, language servers, MCP servers and a fetch tool that retrieves pages. Crush does not control a browser or operate software through a graphical interface. Sourcegithub.com/charmbracelet/crushread 2026-09-29 |
||
|
OpenCodeBrowser & Computer Use The agent works through file operations, shell commands, LSP servers and MCP tools in the terminal. It has no browser control and cannot operate software that lacks a programmatic interface. Sourceopencode.ai/docs/toolsread 2026-08-30 |
||
Pricing snapshot
Sourced from the Index pricing dataset · open each vendor's profile for full detail.
| Pricing | C Charm |
O OpenCode |
|---|---|---|
|
Entry price Lowest public entry point |
Free and source available. Developers bring their own model keys. | Free and open source with your own provider keys. OpenCode Go is $10 a month, or Go Plus $40 a month, for curated open models. OpenCode Zen is pay as you go per million tokens, and Enterprise is per seat through sales. |
|
Pricing confidence How public the numbers are |
Public, partial | Public, exact |
|
Billing Primary billing axis |
Crush itself is free. Model usage is paid to the chosen provider, or in Hyper credits on Charm's own inference service. | Hybrid. The agent is free with the customer's own keys, OpenCode Go is a flat monthly plan with per model allowances, OpenCode Zen bills per million tokens against a prepaid balance, and Enterprise is per seat. |
|
Variable cost Workload / overage exposure |
High variable cost | Medium variable cost |
|
Free tier / trial Try before you buy |
Free tier
|
Free tier
|
|
Buying motion Self-serve vs sales call |
Self-serve | Self-serve |
More comparisons with Charm or OpenCode
Other matchups in coding agents
Not the pairing you were after? These compare a different set of coding agents on the same 14 capabilities.