Crush

Functional Source License 1.1 with MIT future licence (FSL-1.1-MIT)
Platform
Linux macOS Windows Android
Licence
Functional Source License 1.1 with MIT future licence (FSL-1.1-MIT) Freeware
Crush

Crush is Charm’s terminal-first AI coding agent: a single Go binary that opens a full-screen TUI, reads your project, talks to the model of your choice, edits files and runs commands without leaving the shell. It is the successor to the company’s earlier opencode-era experiments and the most polished member of the Charm tool family, which is why it racked up close to 30,000 GitHub stars within a year of its first release. Version v0.100.0 (November 2026) added subagents, a sysadmin permission mode and in-terminal GPG/SSH prompts.

Key Features

  • Multi-model, mid-session switching — pick from a built-in catalogue (Anthropic, OpenAI, Gemini, OpenRouter, Groq, MiniMax, Z.ai, Cerebras, Vertex, Bedrock, OpenCode Go and more) or register any OpenAI- or Anthropic-compatible endpoint, and change model in the middle of a conversation without losing context.
  • Subagents — Crush can spawn named helper agents in the background, watch them work in the transcript, send them follow-ups mid-run, stop them or move them to a different model.
  • LSP-enhanced context — it drives real language servers (gopls, nil, TypeScript, Python and others) so the agent sees the same diagnostics, definitions and references your editor does, instead of guessing from raw text.
  • Sessions per project — several independent work sessions and contexts per repository, each resumable, and several TUI clients can attach to the same workspace to share history, permissions and LSP state.
  • MCP support — connect Model Context Protocol servers over stdio, HTTP or SSE, with OAuth handling for servers that need it.
  • Granular permissions — three escalating modes (normal, yolo, sysadmin), plus explicit permissions allow / permissions block rules for individual commands, so dangerous shell commands are gated by policy rather than by hope.
  • Config in Bash — a crushrc is an ordinary Bash script with Crush builtins (provider add, model add, mcp add, permissions allow), so configuration is scriptable and identical on every platform.
  • Headless mode — crush run "…" runs one non-interactive prompt, and reads from stdin, which makes it usable in scripts and CI.

Why Use Crush?

Most coding agents bolt a web UI or an editor plugin onto a chat model. Crush goes the other way: it stays inside the terminal you already work in, and spends its effort on the things that make an agent useful there — language-server context, a real file tree, permission prompts you can actually configure, and the ability to run on a machine that only has SSH. It is one static Go binary with no runtime to install, and it starts instantly even on modest hardware.

The other reason is model freedom. Because a provider is just a base URL and a key, you can point Crush at a frontier API, a work gateway, a local Ollama or llama.cpp server, or a self-hosted vLLM instance, and switch between them mid-task when one model stalls. Nothing about your project has to leave infrastructure you control.

Use Cases

  • Refactors and small features in a repository you are already inside, with the agent reading the same LSP diagnostics your editor shows.
  • Long-running agent work split across subagents — one exploring, one writing tests, one fixing the build — supervised from a single transcript.
  • Remote and headless machines: over SSH on a server, in a container, or on Android via Termux, where a GUI agent is not an option.
  • Scripted, single-shot tasks in a pipeline via crush run, with output piped into the next tool.
  • Teams that standardise on one gateway or an internal model endpoint, using a checked-in crushrc so everyone’s provider and permission rules match.

What to Know Before You Install

Crush is licensed under the Functional Source License 1.1 with an MIT future licence (FSL-1.1-MIT). The source is public and you may use, modify and redistribute it for any purpose except building a competing product or service; each release converts to the MIT licence two years after publication. It is therefore source-available rather than OSI-approved open source, and should be treated that way if your organisation has a strict licence policy.

You also need a model. Crush ships with no bundled inference: bring an API key for a hosted provider, or point it at a local OpenAI-compatible server if you want everything to stay on your own hardware. The first launch offers to initialise the codebase and write an AGENTS.md for context; that step is optional and can be run later from the command palette.

Packages exist for Debian/Ubuntu and Fedora/RHEL through Charm’s own repositories, plus Homebrew, Arch, Nix, npm, Winget and Scoop, and plain binaries for Linux, macOS, Windows, FreeBSD, OpenBSD and NetBSD. Roughly 27 MB per release on amd64.

Other terminal agents worth comparing: Aider, Cline, Continue, OpenHands, SWE-agent and gpt-engineer.

Explore More Categories

Sign In

Register

Reset Password

Please enter your username or email address, you will receive a link to create a new password via email.