Crush

Crush is an open-source terminal coding agent created by Charm (Charmbracelet), the team behind popular Go terminal UI libraries like Bubble Tea and Lip Gloss. Designed specifically for command-line native development, Crush provides an interactive terminal user interface that handles multi-turn code generation, repository navigation, and automated shell command execution directly within the developer's terminal. In daily use, Crush operates as an interactive CLI/TUI agent that inspects repository structures, edits files, and executes shell tasks via built-in tools and custom agent skills. It uses context-aware tool execution—such as built-in shell filters and process handling—to execute code and inspect project status while preventing hanging operations through strict timeouts and signal interruptions. Crush differentiates itself through Charm's signature terminal interface design, offering structured interactive displays, session resumption capabilities, and modular agent skill definitions stored directly within repository workflows. Rather than relying on heavyweight GUI environments or Electron wrappers, it stays fully integrated into standard Unix terminal pipelines and Go-based CLI tooling. Crush is distributed as open-source software under the Charmbracelet GitHub repository with active community contribution, Nix flake support for reproducible development environments, and standard API key configuration for backend LLM providers.

Tags: ai agent, cli, coding agent, OpenSource, terminal

Visit Crush

Key features

  • Charm TUI Interface — Features a polished, keyboard-driven terminal user interface built on Charm's terminal ecosystem. - Extensible Agent Skills — Supports custom repository-level and modular agent skills defined in .agents/skills. - Context-Aware Shell Execution — Includes native shell filtering tools and timeout-aware process execution to handle long-running commands safely. - Session Resumption — Allows developers to detach and resume coding sessions with interactive status banners. - Nix Flake Integration — Provides native Nix development environment configuration for reproducible local setups. - Direct Workspace Modification — Reads, patches, and creates project files directly within the local Git working tree.

Use cases

Use Case: Interactive Terminal Refactoring A developer working entirely in Neovim and tmux launches Crush to refactor an existing Go module across multiple packages. Crush inspects the directory tree, modifies the relevant source files, runs go test, and presents the diffs inside the terminal for interactive approval.

Use Case: Script and Command Automation A DevOps engineer needs to generate complex data extraction pipelines using CLI tools. Crush uses its built-in context-aware shell utilities to craft and test commands safely, avoiding unbounded stdin locks or unresponsive background processes.

Use Case: Resumable Task Execution A developer working on a long migration task initiates a session in Crush, detaches to handle other terminal workflows, and later resumes the active task using session resume banners without losing execution context.

Who it is for

Crush is designed for terminal-centric developers, DevOps engineers, and Go developers who prefer keyboard-driven TUIs over web or IDE-embedded coding assistants. It is less suitable for teams looking for deep visual IDE integrations like VS Code sidebars or browser-only interfaces.

Install guide

Installation Install Crush using Go or your preferred package manager (or build directly from source using the repository): bash # Install via Go go install github.com/charmbracelet/crush@latest # Or clone and build with Nix / Go git clone https://github.com/charmbracelet/crush.git cd crush nix develop

First Run Configure your model provider API key in your shell environment before launching: bash export OPENAI_API_KEY="your-api-key-here" # or configure your preferred provider credentials

Example Session Start Crush in your project directory: bash crush Inside the interactive prompt, issue a task: text Find all unhandled error returns in internal/server and add proper context wrapping using fmt.Errorf.

Part of CLI Coding Agents

Categories: AI Coding Agents, Code Assistants, Developer Tools

Related CLI agents

  • Gemini CLI — Gemini CLI is an open-source terminal coding agent maintained under the Google Gemini organization (google-gemini/gemini-cli). It provides a command-line and…
  • Open Interpreter — Open Interpreter is an open-source terminal coding agent maintained by Killian Lucas and the Open Interpreter community. It is designed…
  • Hax — Hax is a minimalist, native CLI coding agent created by Oleksandr Chekhovskyi. Written in C and designed for POSIX-compliant environments,…
  • amux — amux is an open-source agent harness and session multiplexer developed by Mixpeek. Built in Rust, it is designed to manage,…
  • San — San is an open-source terminal coding agent developed by the genai-io organization on GitHub. Built natively in Go, San is…
  • Pi Boss — Pi Boss is an open-source multi-agent orchestration extension developed by skyfallsin for the pi terminal coding agent ecosystem. It provides…
  • AI Tools
  • Categories
  • Industries
  • CLI Coding Agents
  • MCP Servers
  • MCP Categories