Skip to main content

Charmbracelet

Crush

ai-coding developer-tools command-line terminal multi-model charmbracelet

Crush represents Charmbracelet’s entry into the AI coding assistant space, bringing their signature terminal-first philosophy and “glamourous” design aesthetic to AI-powered development. Built as a native terminal application, Crush distinguishes itself through its exceptional multi-model support, flexible configuration options, and deep integration with developer workflows through LSP and MCP protocols.

Core Features

Terminal-First Design

  • Native CLI Experience: Fully optimized for terminal workflows with keyboard-driven interaction
  • Cross-Platform Support: First-class support on macOS, Linux, Windows (PowerShell and WSL), FreeBSD, OpenBSD, and NetBSD
  • Minimal Resource Footprint: Lightweight Go-based implementation with fast startup and response times
  • Session Management: Multiple work sessions with context preservation per project

Multi-Model Architecture

  • Provider Flexibility: Choose from Anthropic, OpenAI, Groq, OpenRouter, Google Gemini, Cerebras, HuggingFace, VertexAI, Amazon Bedrock, and more
  • Custom Provider Support: Add your own OpenAI-compatible or Anthropic-compatible APIs
  • Model Switching: Switch LLMs mid-session while preserving context and conversation history
  • Cost Tracking: Built-in cost tracking and token usage monitoring

Enhanced Context Awareness

  • LSP Integration: Uses Language Server Protocol for additional context, just like modern IDEs
  • MCP Support: Extensible via Model Context Protocol (stdio, http, and sse transport types)
  • Project Initialization: Analyzes codebase and creates context files for future sessions
  • Git Integration: Native support for version control workflows with attribution options

Technical Specifications

  • Language: Go (98%) with minimal Smarty templating
  • Installation: Homebrew, NPM, Winget, Scoop, Arch Linux, Nix, Debian/Ubuntu, Fedora/RHEL, or direct binary download
  • Configuration: JSON-based with project-local and global options
  • License: FSL-1.1-MIT (Fair Source License)
  • Repository: 15.4k+ stars, 883+ forks on GitHub
  • Release Cadence: Regular updates with 75+ releases

Installation Methods

Package Managers

bash
# Homebrew
brew install charmbracelet/tap/crush

# NPM
npm install -g @charmland/crush

# Winget (Windows)
winget install charmbracelet.crush

# Scoop (Windows)
scoop install crush

# Arch Linux
yay -S crush-bin

# Nix
nix run github:numtide/nix-ai-tools#crush

System Package Installation

bash
# 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

Direct Installation

bash
# Go install
go install github.com/charmbracelet/crush@latest

Configuration

Quick Setup

Crush runs great with no configuration. Simply set an API key for your preferred provider:

Read More