Crush: download, install and use the terminal coding agent

Contents
Introduction
Download and install
Connect a model
Use Crush daily
Configure with crushrc
Troubleshooting

Introduction

Crush is a free open-source agentic coding tool by Charm. Like OpenCode, it lives in your terminal, reads and edits your files, runs shell commands and works through tasks step by step. Differences that matter: Crush is written in Go (single binary, no Node.js needed), understands LSP servers the way you do, keeps several work sessions per project, lets you switch models mid-session without losing context, and extends via MCP servers and Agent Skills. It runs on macOS, Linux, Windows (PowerShell and WSL), Android, FreeBSD, OpenBSD and NetBSD.

Download and install

With Homebrew (macOS and Linux)

brew install charmbracelet/tap/crush

With npm (any OS with Node.js)

npm install -g @charmland/crush

On Arch Linux

yay -S crush-bin

On FreeBSD

pkg install crush

On Windows: Winget

winget install charmbracelet.crush

On Windows: Scoop

scoop bucket add charm https://github.com/charmbracelet/scoop-bucket.git

scoop install crush

Debian and RPM packages plus binaries for every OS are on the releases page of the project repository.

With Go (any OS with a Go toolchain)

go install github.com/charmbracelet/crush@latest

Check it works:

crush --version

Connect a model

The quickest start is Hyper, the official Crush provider: it is subscription-based with a free tier, privacy focused with zero data retention. Pick a Hyper model in the model picker and follow the steps to authenticate.

To use any other provider, press ctrl+l to open the model picker, choose the provider and paste your API key. Supported keys include Anthropic, OpenAI, Gemini, OpenRouter and more — the same OpenRouter key from the OpenCode guide works here too. Keys can also come from environment variables:

Local models work through Ollama, llama.cpp, LM Studio and similar: register the provider once, and Crush discovers its models itself.

Use Crush daily

Go to your project and start:

cd /path/to/project

crush

Let Crush learn the project: initialization analyzes the codebase and writes the findings to AGENTS.md — commit that file so every session starts with context. Project-specific rules that would confuse other tools go to CRUSH.md instead.

Core workflow:

crush --yolo

Keep secrets out of the agent context with .crushignore (same syntax as .gitignore). Usage metrics are pseudonymous and can be switched off:

export CRUSH_DISABLE_METRICS=1

Configure with crushrc

Crush needs no configuration, but a crushrc customizes everything. It is Bash with Crush builtins, identical on all platforms. Project file ./.crushrc wins over the global ~/.config/crush/crushrc. Example:

provider add ollama --type ollama --base-url "http://localhost:11434/v1" permissions allow view edit mcp add github --type http --url "https://api.github.com/mcp/" option notifications disabled

The old JSON format still works but is deprecated. Note that crushrc is trusted code — never launch Crush in a directory whose config you have not reviewed.

Troubleshooting

crush logs --tail 500

crush --debug

Official sources:

Article author: Andrei Olegovich

Related articles
AI
OpenCode: download, install and use with free and paid models
Crush: download, install and use the terminal coding agent
Banner image

Search this site

Channel @aofeed Chat @aofeedchat

Contacts and cooperation:
I recommend our hosting beget.ru
Write to info@urn.su if you:
1. Want to write an article for our site or translate an article into your native language.
2. Want to place thematically relevant ads on the site.
3. Ads on my site pass maximum censorship. If you see an ad block unsuitable for school-age children, shocking or misleading - please contact us by e-mail
4. Found a mistake, inaccuracy, bug, etc. on the site. ... .......
5. Articles can be shared on social media by clicking a network icon: