Crush
Crush is a terminal coding agent from Charmbracelet that wires your tools, code and workflows into the language model of your choice. It lists 28 provider integrations plus local models through llama.cpp, Ollama and LM Studio, supports MCP over stdio, HTTP and SSE, and asks permission before every tool call by default. Its licence is the Functional Source License, which forbids competing commercial use for two years after each release, then converts to MIT.
What does Crush do?
Crush is "your new coding bestie, now available in your favourite terminal", in Charm's words, with "your tools, your code, and your workflows, wired into your LLM of choice." You can choose from a wide range of models or add your own through OpenAI- or Anthropic-compatible APIs, and switch models mid-session. The README lists 28 provider environment variables, from Anthropic, OpenAI and Google Gemini to Groq, OpenRouter, Bedrock, Azure OpenAI and Charm's own Hyper service, and local provider types for llama.cpp, Ollama, LM Studio, omlx and LiteLLM with automatic discovery of the model list.
MCP servers connect over stdio, HTTP and SSE with built-in OAuth; language servers add context; the Agent Skills standard is read from several paths including the Claude skills folder. By default Crush "will ask you for permission before running tool calls"; a crushrc file allows or denies actions, and a --yolo flag skips every prompt, which the README says to be very careful with. It records pseudonymous usage metrics, opt out with CRUSH_DISABLE_METRICS=1 or DO_NOT_TRACK=1, and adds git trailers marking assisted commits. A shared-workspace mode, crush serve, lets clients in the same directory share sessions.
Key facts
- Licence: Functional Source License, Version 1.1, MIT Future License (FSL-1.1-MIT), copyright Charmbracelet. Permitted for internal use, non-commercial education and research, and professional services; a Competing Use, offering it or a substitute as a commercial product or service, is not permitted.
- Each version converts to the MIT licence on the second anniversary of its release, per the LICENSE. The original code from March to May 2025 carries a plain MIT notice.
- 28 provider environment variables listed, including Anthropic, OpenAI, Google Gemini, Vercel AI Gateway, Groq, OpenRouter, Cerebras, Hugging Face, Vertex AI, Amazon Bedrock, Azure OpenAI, Moonshot and Charm Hyper.
- Local models through llamacpp, omlx, lmstudio, litellm and ollama provider types, with auto-discovery of models.
- MCP over stdio, HTTP and SSE with built-in OAuth; LSP servers for context; Agent Skills read from several paths.
- Permission prompts before tool calls by default; permissions allow and deny in crushrc; --yolo disables all prompts.
- Pseudonymous usage metrics tied to a device hash, opt out with CRUSH_DISABLE_METRICS=1 or DO_NOT_TRACK=1; prompts and responses are never collected, per the README.
- Install: Homebrew tap, npm (@charmland/crush), yay, Nix, FreeBSD pkg, winget, scoop, apt and yum repositories, packages, binaries, or go install. Latest tagged release when read: v0.95.0 on 2026-09-16; 28,152 stars on 2026-09-18.
What does it replace, and where does it fall short?
Crush replaces Claude Code for a developer who wants the same terminal loop with any model, including one running locally, and with MCP and language servers wired in. Its provider list is the longest in this category, and its permission model is explicit. On the open-source alternatives to Claude Code page it is the pick for the widest provider list with local models.
Where it falls short: the licence is source available, not open source. The Functional Source License bars using Crush in a competing commercial product or service until each version turns MIT two years after release, which is why this site labels it that way. Usage metrics are on by default. Bedrock support runs with caching disabled and hooks are preliminary, by the README. For a plain MIT terminal agent, OpenCode or gptme.
How does Crush run?
Install with brew install charmbracelet/tap/crush, npm install -g @charmland/crush, yay on Arch, Nix, pkg on FreeBSD, winget or scoop on Windows, the apt or yum repositories on Debian, Ubuntu, Fedora and RHEL, a package or binary, or go install. It needs an API key for a hosted provider, an account with Charm's Hyper service, or a local model server. Hyper is Charm's paid provider, subscription-based with a free tier, by the README.
Who is Crush for?
A developer who wants one terminal agent that reaches every provider and local runtime, with permission prompts on by default, and whose use is internal rather than a product built on Crush. A team shipping a commercial agent product on top of it should read the licence first or pick an MIT agent.
What limits does the README state?
From the README: hooks are preliminary; Anthropic models through Bedrock run with caching disabled; sessionless MCP servers do not push list-changed notifications; native notifications are unavailable on illumos; config files are trusted code, so do not launch Crush in a directory whose config you have not reviewed; and on --yolo, "Be very, very careful with this feature."
Questions people ask
Is Crush open source?
Not yet, by the OSI definition. Crush is under the Functional Source License 1.1 with an MIT future licence: you may use it internally, for education, research and professional services, but not in a competing commercial product or service. Each version converts to MIT two years after its release. This site labels it source available.
Can Crush run local models?
Yes. The README lists provider types for llama.cpp, Ollama, LM Studio, omlx and LiteLLM, with automatic discovery of the models each serves, alongside 28 hosted provider integrations. You can switch models in the middle of a session.
Does Crush ask before running commands?
Yes, by default. The README says Crush asks for permission before running tool calls, and a crushrc file can allow or deny specific actions. A --yolo flag skips all prompts, and the README warns to be very careful with it.
How does Crush compare with Claude Code?
Crush offers the same terminal agent shape with any model, hosted or local, MCP over three transports, and language server context, where Claude Code is tied to Anthropic's models. Crush's licence restricts competing commercial use for two years per release. The open-source alternatives to Claude Code page compares it with OpenCode, Qwen Code, gptme and goose.
Does Crush collect data?
It records pseudonymous usage metrics tied to a device-specific hash, and the README says prompts and responses are never collected. Opt out with CRUSH_DISABLE_METRICS=1 or DO_NOT_TRACK=1. By default it also adds an Assisted-by trailer and a Generated with Crush line to git commits.
Sources
- Crush README and LICENSE (FSL-1.1-MIT): github.com/charmbracelet/crush, read 2026-09-17.
Compared with the others
On the open-source alternatives to Claude Code page, Crush is the pick for the widest provider list with local models. 28 hosted providers plus llama.cpp, Ollama, LM Studio and LiteLLM, MCP over stdio, HTTP and SSE, language servers, and permission prompts on every tool call by default.
Also on that page: OpenCode for a terminal agent with a planning mode, Qwen Code for switching between hosted and local models at runtime, goose for a desktop app and a cli under foundation governance.
More coding assistants and agents
An MIT terminal coding agent with a full-access build agent and a read-only plan agent switched with the Tab key, installers for every platform, a beta desktop app, and the most-starred repository in this directory.
OpenAI's Apache-2.0 coding agent that runs locally in your terminal, with a desktop app and IDE extensions, signed in with a ChatGPT plan or an OpenAI API key, so the code is open and the models are OpenAI's.
Google's Apache-2.0 terminal agent for Gemini models with a free tier of 1,000 requests a day on a personal Google account, built-in search grounding, file and shell tools, MCP support, checkpointing and a GitHub Action.
A high-performance code editor from the creators of Atom and Tree-sitter, GPL-3.0-or-later with Apache-2.0 components, with an agent panel, external agents over ACP, edit prediction, MCP tools, sandboxing, and local models through Ollama or llama.cpp.
An MIT self-hosted control centre, called Agent Canvas, that runs the OpenHands agent or Claude Code, Codex, Gemini and any ACP-compatible agent across local, Docker and cloud backends, with automations triggered by schedules and webhooks.
An Apache-2.0 coding agent for VS Code, JetBrains, the terminal and a desktop app that edits files as reviewable diffs, runs commands with your approval, works with any model provider including Ollama, and connects tools through MCP.
Added September 17, 2026. Every claim above comes from the project's README, LICENSE or model card, read on September 17, 2026, or from the GitHub API on the date shown in the panel. Found an error? Write to reveneau@licheo.com and it is fixed in the next weekly pass. Repository: github.com/charmbracelet/crush.
Running one of these inside your own environment, with your own data and your own security rules, is the kind of work Reveneau does. Read how a forward deployed engagement works.