Crush

Coding Agents 💻 Go ⚖️ Other 🟢 Actively maintained
27.9k stars

Crush is a terminal-based AI coding assistant that integrates your tools, code, and workflows with your choice of LLM. It solves the problem of context switching between coding and AI chat by providing LSP-enhanced, session-based interactions. It is for developers who want an AI pair programmer in their terminal.

Crush demo
🖼️ Screenshot from the project README

✨ Key features

  • Multi-model support: choose from many LLMs or add custom via OpenAI/Anthropic APIs.
  • Switch LLMs mid-session while preserving context.
  • Session-based: maintain multiple work sessions and contexts per project.
  • LSP-enhanced: uses Language Server Protocols for additional context.
  • Extensible via MCPs (http, stdio, sse).
  • Works on macOS, Linux, Windows, Android, FreeBSD, OpenBSD, NetBSD.

🎯 Use cases

  • Get coding assistance directly in the terminal with context from your project.
  • Manage multiple coding sessions for different tasks or projects.
  • Integrate with local or remote LLMs, including custom providers.
  • Use LSPs to provide code intelligence to the AI.
  • Extend functionality with MCP servers for tools like GitHub.

📦 Installation

🧰 Requirements: Runs on macOS, Linux, Windows (PowerShell/WSL), Android, FreeBSD, OpenBSD, NetBSD. Requires an LLM provider API key (e.g., Hyper, OpenAI, Anthropic) or a local model.

Homebrew
brew install charmbracelet/tap/crush
NPM
npm install -g @charmland/crush
Arch Linux (btw)
yay -S crush-bin
Nix
nix run github:numtide/nix-ai-tools#crush
FreeBSD
pkg install crush

Windows:

Winget
winget install charmbracelet.crush
Scoop
scoop bucket add charm https://github.com/charmbracelet/scoop-bucket.git
scoop install crush

Debian/Ubuntu:

sudo mkdir -p /etc/apt/keyrings
curl -fsSL https://repo.charm.sh/apt/gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/charm.gpg
echo "deb [signed-by=/etc/apt/keyrings/charm.gpg] https://repo.charm.sh/apt/ * *" | sudo tee /etc/apt/sources.list.d/charm.list
sudo apt update && sudo apt install crush

Fedora/RHEL:

echo '[charm]
name=Charm
baseurl=https://repo.charm.sh/yum/
enabled=1
gpgcheck=1
gpgkey=https://repo.charm.sh/yum/gpg.key' | sudo tee /etc/yum.repos.d/charm.repo
sudo yum install crush

Or with Go:

go install github.com/charmbracelet/crush@latest

🚀 Usage

The quickest way to get started is to choose a Hyper model from the model picker. Follow the steps to authenticate and you'll be good to go.

You can also use Crush with many other providers such as Anthropic, OpenAI, Gemini, OpenRouter. Press ctrl+l to open the model picker, choose the provider, and paste your API key.

Alternatively, set environment variables like OPENAI_API_KEY or ANTHROPIC_API_KEY.

❓ FAQ

How do I configure Crush?

Crush runs with no configuration, but you can customize it with a crushrc file, which is Bash with Crush-specific builtins. Configuration can be local or global, with priority given to local files.

Can I use my own LLM provider?

Yes, you can add custom providers via OpenAI- or Anthropic-compatible APIs. You can also use many built-in providers like OpenAI, Anthropic, Gemini, and more by setting API keys.

Does Crush support LSPs?

Yes, Crush uses LSPs for additional context. You can add LSPs manually via the lsp add command in your crushrc.

What is Hyper?

Hyper is Charm's official Crush provider. It is subscription-based with a free tier, optimized for Crush, privacy-focused with zero data retention, and GDPR compliant.

📊 Repository

Stars★ 27,926
Forks🍴 2,226
Open issues🐛 688
Last commit🕒 Sep 4, 2026
Created📅 May 2025
Language💻 Go
License⚖️ Other

🤖 Overview, features, install steps and FAQ were generated from the project's README on Sep 4, 2026. Always check the original source before running commands.