Heads up This site is currently under heavy development.
← all tools
◆ AI Coding Agents

Crush

v0.91.2 open-source

Glamourous agentic coding for all

Summary

Crush is an open-source terminal-based AI coding assistant that connects to LLMs like Anthropic, OpenAI, Gemini, and Bedrock, giving them tools to read, write, and execute code in your project. It runs as a command-line tool installed via Homebrew, npm, Go, or a platform package manager, and it targets developers who want an AI pair-programmer working directly in their existing terminal workflow rather than an IDE plugin or web chat. It keeps separate sessions and context per project, uses Language Server Protocols for code intelligence, and extends through MCP servers and Agent Skills, with features like Bang Mode for running shell commands mid-session and auto-discovery of local models such as Ollama. Built by Charm, it sits in the growing category of terminal-native coding agents. First committed in 2025, it has drawn 142 contributors and 34 releases in the past year, the latest just three weeks ago.

Glamourous agentic coding for all

What Crush answers

Do I need to run my own infrastructure to use this, or does it work with local models too?

it runs as a single terminal binary talking to a hosted or local LLM endpoint, and can auto-discover local runtimes like Ollama, LMStudio, LiteLLM, or MLX without manual model setup

Can I control what the model is allowed to do to my system?

shell commands with pipes or redirection require a permission prompt, and MCP tools can be restricted to an allow list so the model can't invoke anything outside it

How does it share context across a large or multi-package codebase?

it discovers skills from the git root so a monorepo's packages can share the same skill definitions, and it also loads a user-level context file at session start regardless of project

What happens if my session drops or I want to run more than one at once?

an experimental client-server mode decouples prompts from any single client connection, letting multiple sessions or remote connections attach independently

Will switching providers mess up my billing or cost tracking?

a flat-rate config option lets subscription-based providers skip per-token cost calculation, avoiding misleading zero-dollar charges being reported

Can I run shell commands without leaving my coding session?

typing a bang prefix runs the command inline with streamed real-time output the model can see, and running commands can be cancelled mid-execution

all 32 features, with the evidence for each →

Features

32 capabilities across 6 areas · 3 backed by code, an API document or a real run

Built from everything we hold on Crush — every release we have summarised, its product documentation and how that documentation has changed, its README, its command-line surface and API, and runs we performed ourselves. Dates are when we first saw a capability, not when the vendor introduced it.

Capability area
AI Model & Provider Access 10 capabilities Crush connects to a wide range of AI model providers, local and cloud-based, so users can choose and switch models without manual configuration. It handles authentication, credential refresh, and provider-specific optimisations transparently.
Model browser verified Shows all available providers and their models, including ones not yet configured, so users can explore options before committing. 1 release · 2 other sources · first seen Jun 2026

release

  • Expands crush models to list all known providers and their models, not just configured ones — unconfigured providers are marked with (not configured). v0.76.0 · Jun 2026 · source · release history

we ran it

  • The output is a truncated list of model identifiers grouped under the aihubmix/ provider namespace, covering models from providers including DeepSeek, Claude, Gemini, GPT, Grok, Kimi, and others. Aug 2026 · the full run

example

  • Browse every available model across all supported providers before committing to one — useful when evaluating which provider to configure. crush models v0.76.0 · Jun 2026 · source
Automatic credential refresh shipped Refreshes expired credentials and retries the current turn automatically, including AWS Bedrock SSO tokens, so sessions are not interrupted. 2 releases · first seen Jul 2026

Shared capability: Single sign-on

release

  • Adds automatic re-authentication UX for AWS Bedrock SSO token expiry, with automatic turn retry after re-auth. v0.88.0 · Jul 2026 · source · release history
  • Adds automatic transparent auth retry so dropped credentials are refreshed without user intervention. v0.85.0 · Jul 2026 · source · release history
Alibaba Cloud provider support shipped Lets users route requests through Alibaba Cloud, including a US-region endpoint, via an API key. 1 release · 1 other source · first seen Jul 2026

release

  • Adds Alibaba (United States) as a supported provider region, configurable via ALIBABA_US_API_KEY. v0.82.0 · Jul 2026 · source · release history

example

  • Use Alibaba's US-region endpoint instead of Singapore for lower-latency access from North America. export ALIBABA_US_API_KEY=<your-key> crush v0.82.0 · Jul 2026 · source
Local model context-window auto-detection shipped Detects the context window size for local model endpoints automatically, preventing misconfiguration when that information is not declared. 2 releases · first seen Jun 2026

release

  • Automatically detects context window sizes for local model endpoints (llamacpp, omlx, lmstudio, litellm, ollama) — no more zero-size window misconfigurations. v0.80.0 · Jun 2026 · source · release history
  • Adds a llamacpp provider enricher, enabling richer model discovery metadata when connecting to llama.cpp servers. v0.80.0 · Jun 2026 · source · release history
Local model auto-discovery shipped Finds and connects to models running on local inference servers automatically, without requiring the user to define them by hand. 1 release · 1 other source · first seen Jun 2026

release

  • Enables auto-discovery of local models (Ollama, LM Studio, LiteLLM, MLX) from OpenAI-compatible endpoints — no manual model definitions required. v0.78.0 · Jun 2026 · source · release history

example

  • Point Crush at a local Ollama instance and let it discover available models automatically — no manual model list needed. { "providers": { "ollama": { "name": "Ollama", "base_url": "http://localhost:11434/v1/", "type": "ollama" } } } v0.78.0 · Jun 2026 · source
LM Studio vision support shipped Enables image input when using LM Studio as the local model provider. 1 release · first seen Jul 2026

release

  • Enables LM Studio vision capabilities (image support) via SupportsImages. v0.85.0 · Jul 2026 · source · release history
Session affinity and prompt cache optimization shipped Attaches session identifiers to requests so supporting providers can pin the session and maximise prompt cache reuse. 1 release · first seen Jul 2026

release

  • Sends x-session-affinity and x-session-id headers with every request, enabling supporting providers to pin sessions to a replica and maximize prompt cache hits. v0.84.0 · Jul 2026 · source · release history
GPT-5 model support shipped Adds GPT-5 as a selectable model, routed through the OpenAI Responses API. 1 release · first seen Jul 2026

release

  • Adds GPT-5.6 model support, routed through the OpenAI Responses API. v0.83.0 · Jul 2026 · source · release history
Provider warning visibility shipped Surfaces warnings returned by the model provider in session output so users are not left guessing why a response behaved unexpectedly. 1 release · first seen Jun 2026

release

  • Logs provider warnings surfaced from agent step results, making model-side issues visible in the session output. v0.80.0 · Jun 2026 · source · release history
Fireworks provider support shipped Lets users route requests through fireworks.ai as an LLM provider. 1 release · first seen Jun 2026

release

  • Adds Fireworks (fireworks.ai) as a supported LLM provider. v0.78.0 · Jun 2026 · source · release history
Configuration & Extensibility 6 capabilities Crush gives users a layered configuration system — system-wide, user-level, and per-project — with a scriptable file format that supports dynamic logic. Hooks, permissions, and skill discovery let teams adapt the tool to their workflows without forking it.
Scriptable shell configuration (crushrc) shipped Replaces static JSON config with a bash-based file that supports conditionals, includes, and environment variables for managing all aspects of Crush. 8 releases · 2 other sources · first seen Jul 2026

release 8 total

  • Adds provider add and model add crushrc builtins for registering custom providers and models (e.g. local Ollama instances). v0.88.0 · Jul 2026 · source · release history
  • Adds mcp add / mcp remove crushrc builtins for managing MCP servers directly from the shell config. v0.88.0 · Jul 2026 · source · release history
  • Adds .crushrc bash-based configuration file, replacing JSON config with a scriptable shell format that supports conditionals, source includes, and environment variable expansion. v0.88.0 · Jul 2026 · source · release history
  • Adds hook add / hook remove crushrc builtins for managing agent hooks from crushrc. v0.88.0 · Jul 2026 · source · release history
  • Applies top-level environment variables from crushrc on startup. v0.88.0 · Jul 2026 · source · release history
  • Adds lsp add / lsp remove crushrc builtins for managing LSP servers from crushrc. v0.88.0 · Jul 2026 · source · release history

example

  • Bootstrap a dotfiles-friendly crushrc that adds a local Ollama provider, auto-approves safe tools, and loads machine-specific overrides that stay out of git. cat ~/.config/crush/crush.sh # Add Ollama. provider add ollama --type ollama --base-url "http://localhost:11434/v1" # Register a model on Ollama. v0.88.0 · Jul 2026 · source
  • Apply different skill paths per hostname using crushrc conditionals and option reset. cat >> ~/.config/crush/crush.sh <<'EOF' if [[ $HOSTNAME == "workstation" ]]; then option skill-path "$HOME/work-skills" else option reset skill-path fi EOF v0.88.0 · Jul 2026 · source
Tool permission management shipped Lets users whitelist safe tools for auto-approval and hide specific tools from the agent entirely, controlling what the agent is allowed to do. 2 releases · first seen Jul 2026

release

  • Adds permissions allow command in crushrc to auto-approve tools without prompting. v0.88.0 · Jul 2026 · source · release history
  • Adds permissions deny command in crushrc to explicitly hide specific tools from the agent. v0.88.0 · Jul 2026 · source · release history
Named hooks shipped Lets each hook be given a name so it is identifiable in CLI output when multiple hooks fire on the same event. 1 release · 1 other source · first seen Jun 2026

release

  • Adds a name field to hook definitions, making individual hooks identifiable in the CLI output. v0.77.0 · Jun 2026 · source · release history

example

  • Name hooks so you can tell them apart when multiple hooks fire on the same event. { "hooks": { "PreToolUse": [ { "name": "lint-before-bash", "matcher": "bash", "command": "./hooks/run-lint.sh" } ] } } v0.77.0 · Jun 2026 · source
User-level (global) configuration shipped Stores a global persona, default preferences, and persistent instructions that apply across every project without per-repo setup. 1 release · 1 other source · first seen Jun 2026

release

  • Adds user-level context files: place ~/.config/AGENTS.md or ~/.config/crush/CRUSH.md to give Crush persistent, cross-project instructions at session start. v0.77.0 · Jun 2026 · source · release history

example

  • Set a global persona or default preferences (e.g., preferred VCS) that Crush picks up in every project without touching per-repo config. mkdir -p ~/.config/crush cat >> ~/.config/crush/CRUSH.md <<'EOF' Always refer to me as Shirley. Default to Jujutsu (jj) for version-control commands unless the project already uses plain git. EOF v0.77.0 · Jun 2026 · source
System-wide configuration shipped Reads a system-wide configuration file so administrators can set defaults for all users on shared or managed machines. 1 release · first seen Jul 2026

release

  • Supports system-wide configuration via /etc/crush/crush.json, improving NixOS and multi-user deployments. v0.87.0 · Jul 2026 · source · release history
Monorepo skill discovery shipped Finds agent skills stored in the repository regardless of which subdirectory Crush is launched from. 1 release · first seen Jun 2026

release

  • Discovers skills from the git repository root in monorepos, so .agents/skills/, .crush/skills/, .claude/skills/, and .cursor/skills/ at the repo root are found even when running from a subdirectory. v0.76.0 · Jun 2026 · source · release history
Interactive Session & TUI 8 capabilities Crush provides a terminal user interface for conducting and inspecting AI sessions, with controls for navigation, attachments, and real-time feedback. Shell execution, tool inspection, and elapsed-time display keep the user informed and in control during long-running work.
Bang Mode (inline shell execution) shipped Runs Bash commands directly inside a session with a leading exclamation mark, streaming output live and feeding results into the LLM's context. 6 releases · 1 other source · first seen Jun 2026

release

  • Improves bang-mode output streaming performance by avoiding quadratic shell output rendering. v0.87.0 · Jul 2026 · source · release history
  • Adds copy-to-clipboard for Bang Mode command results (with ANSI codes stripped). v0.79.0 · Jun 2026 · source · release history
  • Streams Bang Mode command output in real time as long-running commands execute, with a pending spinner while waiting. v0.79.0 · Jun 2026 · source · release history
  • Adds bang mode: type ! in a session to run Bash commands directly, with output fed back into the LLM context for follow-up questions. v0.78.0 · Jun 2026 · source · release history
  • Enables cancelling a running Bang Mode command mid-execution. v0.79.0 · Jun 2026 · source · release history
  • Supports prefixing an arbitrary string with Bang Mode to inline shell output directly into a prompt. v0.79.0 · Jun 2026 · source · release history

example

  • Run a shell command mid-session and immediately ask the LLM to reason about its output — without leaving Crush. !ls -la /etc/cron.d v0.78.0 · Jun 2026 · source
Tool-call inspection in TUI shipped Lets users expand tool-call entries in the TUI to inspect their full content, preserving newlines for readability. 2 releases · first seen Jun 2026

release

  • Preserves newlines in expanded tool content in the chat UI, improving readability of multi-line tool outputs. v0.82.0 · Jul 2026 · source · release history
  • Enables expanding tool-call names in the TUI for easier inspection of long-running or complex tool invocations. v0.81.0 · Jun 2026 · source · release history
Chat scrollbar shipped Adds a scrollbar to the chat view so users can tell where they are in a long session at a glance. 1 release · 1 other source · first seen Jun 2026

release

  • Adds a scrollbar to the chat view, configurable via options.tui.scrollbar (default, always, or never). v0.81.0 · Jun 2026 · source · release history

example

  • Keep the scrollbar permanently visible in long sessions so you always know your position in the conversation. { "options": { "tui": { "scrollbar": "always" } } } v0.81.0 · Jun 2026 · source
Mouse-driven attachment management shipped Adds a clickable remove button on each attachment chip so users can drop attachments with the mouse. 1 release · first seen Jul 2026

release

  • Adds clickable ✕ button on attachment chips to remove attachments with the mouse. v0.86.0 · Jul 2026 · source · release history
Scrollable sidebar shipped Makes the sidebar scrollable with the keyboard and mouse wheel when its content is taller than the visible area. 1 release · first seen Jul 2026

release

  • Enables scrollable sidebar with keyboard (l/h/j/k/g/G/arrows) and mouse-wheel navigation when sidebar content overflows. v0.86.0 · Jul 2026 · source · release history
Interactive question tool for LLMs shipped Gives the LLM a structured way to ask the user questions — single-choice, multiple-choice, free-text, or yes/no — with full mouse support. 1 release · first seen Jul 2026

release

  • Adds a first-class question tool letting LLMs prompt users with single-choice, multiple-choice, free-form text, and yes/no forms — with full mouse support. v0.85.0 · Jul 2026 · source · release history
LLM elapsed-time timer shipped Shows a running elapsed-time counter while the LLM is generating so users know how long they have been waiting. 1 release · first seen Jul 2026

release

  • Displays an elapsed-seconds timer so you can see how long the LLM has been running. v0.85.0 · Jul 2026 · source · release history
Linux clipboard support shipped Provides clipboard read and write on Linux under both X11 and Wayland, including image pasting, without requiring external clipboard utilities. 1 release · first seen Jun 2026

release

  • Improves clipboard support on X11 and Wayland: removes xclip/xsel dependencies, adds TIFF paste support, and enables Super+V / ⌘+V image pasting. v0.78.0 · Jun 2026 · source · release history
Code Intelligence & Editing 2 capabilities Crush integrates with language servers to let the agent perform accurate, project-wide code changes beyond simple text substitution. LSP performance tuning keeps this integration lightweight even in large repositories.
LSP-based code manipulation tools shipped Lets the agent rename symbols across a whole project and replace, insert around, or delete entire functions, methods, or classes using LSP. 2 releases · first seen Jul 2026

release

  • Adds lsp_rename tool: renames a symbol and all its references across the project via LSP. v0.86.0 · Jul 2026 · source · release history
  • Adds lsp_replace_symbol tool: replaces, inserts before/after, or deletes an entire function, method, or class by name via LSP. v0.86.0 · Jul 2026 · source · release history
LSP performance optimization shipped Filters LSP server candidates before searching the system path, reducing CPU and memory overhead in large repositories. 1 release · first seen Jul 2026

release

  • Significant LSP performance improvement: filters servers before searching $PATH, reducing CPU and memory usage in large repositories. v0.87.0 · Jul 2026 · source · release history
MCP & External Integrations 4 capabilities Crush supports the Model Context Protocol for connecting external tools and data sources, including servers that require OAuth authentication or push real-time notifications. It also integrates with third-party notification services so users are alerted when the agent needs attention.
MCP channel support verified Accepts real-time push notifications from MCP servers via the Claude Channels extension, surfacing them inside the active session. 1 release · 1 other source · first seen Jul 2026

release

  • Supports the Claude Channels MCP extension, allowing MCP servers to push real-time notifications into Crush. v0.87.0 · Jul 2026 · source · release history

command line

  • --channels — MCP servers to enable as channels (repeatable), e.g. --channels server:webhook v0.87.0 · Jul 2026 · command-line history
MCP OAuth authentication shipped Authenticates with MCP servers that require OAuth 2.1 so users can connect to a wider range of external tools. 1 release · first seen Jul 2026

release

  • Adds OAuth 2.1 authorization support for HTTP and SSE MCP servers, unblocking MCPs that require authentication. v0.87.0 · Jul 2026 · source · release history
SSH-friendly OAuth authentication shipped Adds a keybinding to copy the OAuth verification URL in the auth dialog, making browser-based login usable over SSH. 1 release · first seen Jul 2026

release

  • Adds <kbd>u</kbd> keybinding in the OAuth dialog to copy the verification URL — enables authentication over SSH where auto-browser-open is unavailable. v0.86.0 · Jul 2026 · source · release history
External notification integration (herdr) shipped Connects to herdr.dev over a socket so the service can send notifications when the agent is blocked or has finished. 1 release · first seen Jun 2026

release

  • Adds herdr.dev socket integration so herdr can receive agent status signals (blocked/finished) and send notifications. v0.81.0 · Jun 2026 · source · release history
Usage Reporting & Platform Support 2 capabilities Crush tracks token consumption and cost across sessions and projects, giving users a quick summary from the command line. It also supports a broad range of operating systems and CPU architectures so teams are not blocked by their infrastructure.
Usage statistics reporting verified Reports total token use and cost for a single session, a project directory, or all known projects from the CLI, without opening the TUI. 1 release · 4 other sources · first seen Jul 2026

release

  • Adds --all and --crawl-dir modes to the stats subcommand. v0.86.0 · Jul 2026 · source · release history

command line

  • --all — Aggregate stats from all known projects (from projects.json) v0.86.0 · Jul 2026 · command-line history
  • --crawl-dir — Crawl a directory recursively for all crush projects and aggregate stats v0.86.0 · Jul 2026 · command-line history

example

  • Scope stats to a particular project directory when working in a monorepo. crush stats --crawl-dir ./services/auth v0.86.0 · Jul 2026 · source
  • Get aggregate token/cost stats across all sessions or a specific directory tree without opening the TUI. crush stats --all v0.86.0 · Jul 2026 · source
illumos platform support shipped Builds and runs on illumos-based systems such as OpenIndiana and OmniOS, extending platform coverage beyond mainstream Linux and macOS. 1 release · first seen Jul 2026

release

  • Supports building and running Crush on illumos (OpenIndiana, OmniOS). v0.88.0 · Jul 2026 · source · release history
Capability
Evidence

Lines in monospace are the tool's own words — help text parsed from its source, or an endpoint from its API document. Everything else is our summary of a dated release or documentation change, linked back to the source it came from.

Release history

  1. v0.91.2 Aug 26, 2026 · issue 009

    Crush v0.91.2 adds three new Hyper models and automatic sessionless MCP support for GitHub MCP.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.91.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.91.2
    Screenshot 2026-08-26 at 11 28 55Screenshot 2026-08-26 at 11 39 35
    • Adds automatic "sessionless": true support for the GitHub MCP server, restoring compatibility without requiring manual config.
    • Adds three new models to the Hyper provider: Qwen3.8-Flash, Qwen3.8-27B, and Qwen3.8-2.4T-A95B.
  2. v0.91.0 Aug 22, 2026 · issue 005

    Crush v0.91.0 adds text selection with keyboard/mouse shortcuts and mouse support in the session picker.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.91.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.91.0
    • Adds text selection in the prompt editor via shift+arrow keys or click-and-drag, with ctrl+shift+a to select all, ctrl+shift+c to copy, ctrl+shift+x to cut, and ctrl+shift+v to paste.
    • Adds mouse wheel scrolling, single-click to select, and double-click to open in the session picker.
  3. v0.89.0 Aug 12, 2026 · issue -007

    Crush v0.89.0 adds bash syntax highlighting, ctrl+end jump-to-bottom, and session ID on exit.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.89.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.89.0
    • Adds ctrl+end keybinding to jump to the bottom of the chat and enable follow mode so new messages auto-scroll.
    • Displays a session ID splash screen on exit, so you can quickly resume the last session on next launch.
    • Adds syntax highlighting to bash commands shown when Crush executes via the Bash tool, improving legibility.
    • Strips redundant cd-to-project prefix from Bash tool command display to reduce visual noise.
  4. v0.89.0 Aug 12, 2026 · issue 001

    Crush v0.89.0 adds session-resume hints on exit, bash syntax highlighting, ctrl+end chat follow, and session model restore.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.89.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.89.0
    Screenshot 2026-08-12 at 16 41 43Screenshot 2026-08-12 at 16 47 25
    • Adds ctrl+end keybind to jump to the bottom of the chat and re-enable auto-follow as new messages stream in.
    • Displays a splash screen on exit with the session ID and the crush -s <id> command needed to resume the session.
    • Adds bash syntax highlighting to the display of commands Crush executes via the Bash tool, improving legibility of long shell invocations.
    • Strips redundant cd-to-project prefixes from Bash tool command display, reducing visual noise in the UI.
  5. v0.88.0 Jul 31, 2026 · issue -019

    Crush v0.88.0 introduces bash-based .crushrc config, permissions deny, option reset, and improved AWS Bedrock SSO re-auth.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.88.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.88.0
    └──▷ USE IT
    Bootstrap a full Crush environment from a dotfiles repo, with a machine-specific override sourced from a gitignored file.
    bash
    # ~/.crushrc
    provider add ollama --type ollama --base-url "http://localhost:11434/v1"
    model add ollama/llama3.3 --name "Llama 3.3" --context-window 128000
    permissions allow view edit
    mcp add github \
      --type http \
      --url "https://api.githubcopilot.com/mcp/" \
      --header Authorization "Bearer $GITHUB_TOKEN"
    source "$XDG_CONFIG_HOME/local-overrides.sh"
    Apply machine-specific skill paths using option and option reset with hostname conditionals.
    bash
    # ~/.crushrc
    option reset skill-path
    if [[ $HOSTNAME == "workstation" ]]; then
        option skill-path "$HOME/work-skills"
    fi
    • Adds .crushrc bash-based configuration file, replacing and coexisting with the legacy JSON config, supporting provider add, model add, permissions allow, permissions deny, mcp add, option, source, and conditional shell logic for machine-specific overrides.
    • Adds permissions deny command in .crushrc to explicitly hide specific tools from the agent.
    • Adds option reset command in .crushrc to wipe shell config list options.
    • Adds provider add and model add as verb-first shell config builtins for registering providers and models from .crushrc.
    • Adds mcp add and mcp remove as verb-first shell config commands configurable from .crushrc, including --type, --url, and --header flags for HTTP MCP servers.
    +7 moreshow less
    • Adds hook add and hook remove as verb-first shell config commands in .crushrc.
    • Adds lsp add and lsp remove as verb-first shell config commands in .crushrc.
    • Exposes CRUSH_VERSION environment variable to .crushrc shell config scripts.
    • Adds a local .crushrc override that takes precedence over the global crush.sh, enabling per-machine config layering.
    • Adds automatic token refresh and re-authentication UX for AWS Bedrock SSO sessions when tokens expire.
    • Adds provider-model builtin to .crushrc for defining provider-specific model entries.
    • Adds top-level environment variable application on startup via crushrc config.
  6. v0.88.0 Jul 31, 2026 · issue 001

    Crush v0.88.0 ships .crushrc bash-based config with new builtins for providers, models, MCPs, hooks, LSPs, and permissions

    └──▷ GET THIS VERSION
    $ git clone --branch v0.88.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.88.0
    Screenshot 2026-07-31 at 18 04 21
    └──▷ USE IT
    Configure a local Ollama provider and model, auto-approve read/edit tools, and add a GitHub MCP server via HTTP — all in a single .crushrc file.
    ~/.config/crush/.crushrc
    # ~/.config/crush/.crushrc
    provider add ollama --type ollama --base-url "http://localhost:11434/v1"
    model add ollama/llama3.3 --name "Llama 3.3" --context-window 128000
    permissions allow view edit
    mcp add github \
      --type http \
      --url "https://api.githubcopilot.com/mcp/" \
      --header Authorization "Bearer $GITHUB_TOKEN"
    Apply machine-specific config conditionally and pull in a separate file kept out of version control.
    ~/.config/crush/.crushrc
    # ~/.config/crush/.crushrc
    source "$XDG_CONFIG_HOME/squid-config.sh"
    
    if [[ $HOSTNAME == "babysquid" ]]; then
        option skill-path "$HOME/squid-skills"
    fi
    Block a specific tool from ever being offered to the agent, using permissions deny in .crushrc.
    ~/.config/crush/.crushrc
    # ~/.config/crush/.crushrc
    permissions deny bash
    • Adds .crushrc bash-based configuration file, discovered and loaded alongside the existing crush.json, enabling shell logic, conditionals, and source to include machine-specific overrides.
    • Adds provider add and provider remove (alias rm) builtins to .crushrc for registering custom providers, including --type and --base-url flags.
    • Adds model add and model remove builtins to .crushrc for registering models with flags including --name and --context-window.
    • Adds mcp add and mcp remove builtins to .crushrc for configuring MCP servers, supporting --type http, --url, and --header flags.
    • Adds lsp add and lsp remove builtins to .crushrc for managing LSP server configuration.
    +7 moreshow less
    • Adds hook add and hook remove builtins to .crushrc for managing agent hook configuration.
    • Adds permissions allow and permissions deny builtins to .crushrc for auto-approving or hiding tools from the agent.
    • Adds option reset builtin to .crushrc to wipe list-type options back to their defaults.
    • Exposes CRUSH_VERSION environment variable to .crushrc scripts, enabling version-conditional configuration.
    • Supports a local .crushrc file as a per-directory override alongside the global config.
    • Adds AWS Bedrock SSO token-refresh UX: Crush now detects expired SSO tokens and presents a re-authentication prompt, then automatically retries the interrupted turn.
    • Adds source support inside .crushrc to load additional shell config files, enabling dotfiles-repo patterns with machine-specific .gitignored overrides.
  7. v0.87.0 Jul 24, 2026 · issue -026

    Crush v0.87.0 adds MCP OAuth 2.1, Claude Channels MCP extension support, and a system-wide config at /etc/crush/crush.json.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.87.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.87.0
    • Adds --channels opt-in flag to enable MCP channel servers (Claude Channels MCP extension), allowing MCPs to push notifications to Crush on events.
    • Loads system-wide configuration from /etc/crush/crush.json, enabling NixOS and multi-user deployments to share a common Crush config.
    • Supports OAuth 2.1 authorization for HTTP MCP servers (including SSE transport), unblocking MCPs that require OAuth.
    • Detects the claude/channel MCP capability and routes incoming channel messages through Crush's event broker.
    • LSP performance boost: filters LSP servers before searching $PATH, significantly reducing CPU and memory usage in large repositories.
    +1 moreshow less
    • Bang mode performance boost: eliminates quadratic shell output rendering, improving streaming throughput.
  8. v0.87.0 Jul 24, 2026 · issue 001

    Crush v0.87.0 adds MCP OAuth 2.1, Claude Channels support, system-wide config at /etc/crush/crush.json, and LSP/bang-mode perf boosts.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.87.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.87.0
    └──▷ TRY IT
    Opt a session into a Claude Channels-capable MCP server so it can push notifications (e.g. CI alerts) into your Crush session.
    $ crush run --channels server:webhook 'Watch for build failures and summarize them'
    • Adds --channels <server>:<name> persistent flag (works on both crush and crush run) to opt individual sessions into Claude Channels MCP extension servers, enabling MCPs to push notifications into a running Crush session.
    • Adds system-wide configuration support: Crush now loads /etc/crush/crush.json as a site-wide config file, improving NixOS and multi-user compatibility.
    • Adds OAuth 2.1 authorization for HTTP MCP servers — on a 401, Crush automatically runs a browser-based PKCE authorization-code flow, persisting tokens (mode 0600) to ~/.config/crush/mcp-oauth-tokens.json; headless/SSH environments receive a printed authorization URL instead.
    • Adds SSE transport OAuth support alongside HTTP MCP OAuth, with metadata fixups and resource parameter stripping.
    • Adds automatic event-stream reconnection in client mode when the connection to a Crush server drops.
    +3 moreshow less
    • Adds UI distinction between a lost server connection and an uninitialized agent.
    • Improves LSP performance via pre-$PATH server filtering, significantly reducing CPU and memory usage in large repositories.
    • Improves bang-mode output streaming performance, eliminating quadratic rendering cost for shell command output.
  9. v0.86.0 Jul 20, 2026 · issue -030

    Crush v0.86.0 adds LSP rename/replace tools, scrollable sidebar, removable attachments, and --all/--crawl-dir stats modes

    └──▷ GET THIS VERSION
    $ git clone --branch v0.86.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.86.0
    └──▷ TRY IT
    Use the new --all flag with the stats subcommand to get project-wide token/cost statistics across all sessions.
    $ crush stats --all
    Use --crawl-dir to compute stats scoped to a specific directory tree.
    $ crush stats --crawl-dir ./src
    • Adds lsp_rename LSP tool — renames a symbol and all its references across the project, with automatic fallback to the edit tool on LSP errors.
    • Adds lsp_replace_symbol LSP tool — replaces, inserts before/after, or deletes an entire function, method, or class by name.
    • Adds --all and --crawl-dir modes to the stats subcommand for broader project-wide statistics.
    • Adds scrollable sidebar with focus-based keyboard navigation: l/right arrow to focus sidebar, j/k or arrow keys to scroll, g/G for top/bottom, h/left arrow to return to chat, tab to return to editor; also supports mouse-wheel scrolling when focused.
    • Adds clickable X remove button on attachment chips to delete attachments with the mouse.
    +3 moreshow less
    • Adds u keybinding in the OAuth dialog to copy the verification URL — useful when running Crush over SSH where automatic browser opening is unavailable.
    • Adds quit-dialog hint informing users they can skip confirmation by pressing ctrl+c twice.
    • Adds graceful recovery from mid-stream provider connection resets.
  10. v0.86.0 Jul 20, 2026 · issue 001

    Crush v0.86.0 adds LSP rename/replace tools, scrollable sidebar, --all/--crawl-dir stats flags, and OAuth URL copy.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.86.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.86.0
    Screenshot 2026-07-20 at 17 26 51Screenshot 2026-07-20 at 17 33 21Screenshot 2026-07-17 at 17 20 12
    └──▷ TRY IT
    Aggregate token/cost stats across every Crush project tracked in your install — useful for a weekly spend review.
    $ crush stats --all
    Discover and aggregate stats from older projects in a directory tree that predate the projects.json registry.
    $ crush stats --crawl-dir ~/src
    • Adds lsp_rename LSP tool to rename a symbol and all its references across the project.
    • Adds lsp_replace_symbol LSP tool to replace, insert before/after, or delete an entire function, method, or class by name.
    • Adds --all flag to the stats subcommand to aggregate usage stats from all known projects (sourced from projects.json).
    • Adds a scrollable sidebar with keyboard focus navigation: l/right arrow to focus, j/k to scroll, g/G for top/bottom, h/left arrow to return to chat, tab to return to editor.
    • Adds mouse-wheel scrolling support to the sidebar when it is focused.
    +5 moreshow less
    • Adds a clickable X button on attachment chips to remove attachments with the mouse.
    • Adds u keybinding in the OAuth dialog to copy the verification URL to the clipboard, enabling authentication over SSH where the browser cannot open automatically.
    • Adds a hint in the quit dialog that pressing ctrl+c twice skips the confirmation entirely.
    • Adds graceful recovery from mid-stream provider connection resets so interrupted responses restart cleanly.
    • Adds fancy diff view rendering for LSP tool operations.
  11. v0.85.0 Jul 16, 2026 · issue -034

    Crush v0.85.0 adds a first-class question tool with single/multi-choice, free-text, and yes/no forms, plus an elapsed-time timer and LM Studio vision support.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.85.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.85.0
    • Adds a question tool supporting single-choice, multiple-choice, free-form text, and yes/no question types, with the ability to chain questions into forms — includes full mouse support, mouse scrolling, paste support in text areas, and keyboard shortcuts for yes/no.
    • Adds an elapsed-seconds timer so you can see how long a running LLM task has been executing.
    • Wires LM Studio vision capabilities to SupportsImages, enabling image-input workflows with LM Studio models.
    • Auto-retries authentication transparently when it fails, via OnAuthRefresh integration.
  12. v0.84.0 Jul 10, 2026 · issue -040

    Crush v0.84.0 adds session-affinity headers so supporting providers can pin cache to a replica.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.84.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.84.0
    • Sends x-session-affinity and x-session-id headers (a PII-free session hash) to enable cache-pinning on supporting providers.
  13. v0.81.0 Jun 29, 2026 · issue -051

    Crush v0.81.0 adds a configurable chat scrollbar, herdr.dev agent status integration, and expandable tool-call names.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.81.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.81.0
    └──▷ USE IT
    Keep the scrollbar always visible during long sessions instead of auto-hiding after 2 seconds.
    json
    {
      "options": {
        "tui": {
          "scrollbar": "always"
        }
      }
    }
    • Adds a scrollbar to the chat view, configurable via options.tui.scrollbar (default, always, or never).
    • Integrates with herdr.dev via a herdr socket, enabling agent status signaling (blocked/finished notifications).
    • Enables expanding tool-call names in the UI for easier inspection of agent activity.
  14. v0.80.0 Jun 25, 2026 · issue -055

    Crush v0.80.0 adds auto-detection of local model context windows and a llamacpp provider enricher.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.80.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.80.0
    • Automatically detects context window sizes for local model endpoints (llamacpp, omlx, lmstudio, litellm, ollama) instead of defaulting to zero.
    • Adds a llamacpp provider enricher for richer local model integration.
    • Logs provider warnings surfaced from tool/step results for better observability.
  15. v0.79.0 Jun 19, 2026 · issue -061

    Bang Mode gains live output streaming, cancellation, copy support, and string-prefix launching in Crush v0.79.0

    └──▷ GET THIS VERSION
    $ git clone --branch v0.79.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.79.0
    • Streams output in real time as a long-running Bang Mode command executes, with a pending spinner while it starts.
    • Supports cancelling a running Bang Mode command mid-execution.
    • Enables copying the Bang Mode command result to the clipboard, with ANSI codes stripped.
    • Allows prefixing a string with Bang Mode to launch a command directly from typed input.
  16. v0.78.0 Jun 19, 2026 · issue -061

    Crush v0.78.0 adds bang mode for inline shell execution, local model auto-discovery, and a new Fireworks AI provider.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.78.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.78.0
    └──▷ USE IT
    Point Crush at a local Ollama instance and let it discover available models automatically instead of listing them manually.
    json
    {
      "providers": {
        "ollama": {
          "name": "Ollama",
          "base_url": "http://localhost:11434/v1/",
          "type": "ollama"
        }
      }
    }
    • Adds Bang Mode: type ! inside a session to run Bash commands directly, with output visible to the model for follow-up chat.
    • Enables auto-discovery of local models (Ollama, LMStudio, LiteLLM, MLX) from OpenAI-compatible endpoints — no manual model declarations needed.
    • Adds Fireworks (fireworks.ai) as a supported AI provider.
    • Improves clipboard support on X11 and Wayland: xclip/xsel no longer required, adds TIFF paste support, and Super+V / ⌘+V now pastes images.
  17. v0.77.0 Jun 14, 2026 · issue -066

    Crush v0.77.0 adds user-level global context files and named hooks for easier hook management.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.77.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.77.0
    └──▷ USE IT
    Name a pre-tool-use hook so it's easy to identify in the CLI when multiple hooks are configured.
    json
    # In your Crush config (e.g. crush.jsonc):
    {
      "hooks": {
        "PreToolUse": [
          {
            "name": "Mr. Hot Hook",
            "matcher": "bash",
            "command": "./hooks/my-hot-hook.sh"
          }
        ]
      }
    }
    • Supports user-level global context files (~/.config/AGENTS.md or ~/.config/crush/CRUSH.md) loaded automatically on session start.
    • Adds a name field to hook definitions, making individual hooks identifiable in the CLI.
  18. v0.76.0 Jun 5, 2026 · issue -075

    Crush v0.76.0 adds monorepo skill discovery from git root and independent server prompts for the experimental client-server mode.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.76.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.76.0
    • Discovers skills from the git root in monorepos, enabling skill reuse across packages in a single repo.
    • Makes server prompts independent of individual client connections in the experimental client-server architecture.
  19. v0.74.0 May 28, 2026 · issue -083

    Crush v0.74.0 adds SSH notifications, diff view for denied tools, and deeper client-server session sharing

    └──▷ GET THIS VERSION
    $ git clone --branch v0.74.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.74.0
    └──▷ TRY IT
    Run the experimental client-server mode to share a workspace across multiple terminal sessions.
    $ CRUSH_CLIENT_SERVER=1 crush
    • Adds diff view for denied tools so practitioners can inspect exactly what a tool was attempting before deciding to allow or block it.
    • Supports notifications over SSH terminals, enabling alerts when running Crush on remote hosts.
    • Adds configurable notification backend with bell support and a backend picker UI.
    • Exposes an in-progress flag and connected-client count on session API responses, enabling richer monitoring of active sessions.
    • Server now shares one workspace per directory across all connected clients, reducing duplication in multi-client setups.
    +4 moreshow less
    • Server broadcasts config changes to all connected clients in real time.
    • Tracks which session each client is currently viewing, enabling per-client session awareness.
    • Auto-closes permission prompts when another client in the same session has already responded.
    • Refuses to open a data directory already in use by another Crush instance, preventing data corruption.
  20. v0.73.0 May 26, 2026 · issue -085

    Crush v0.73.0 adds a dedicated AWS Bedrock Europe (eu-west-1) provider for EU-based users.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.73.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.73.0
    • Adds a 'Bedrock Europe' provider that routes all requests to eu-west-1, alongside the existing 'Bedrock US' (us-east-1) provider.
  21. v0.72.0 May 25, 2026 · issue -086

    Crush v0.72.0 adds ctrl+y YOLO toggle, skill descriptions, session scrollbar, and auto-expanded TODO list.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.72.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.72.0
    • Adds ctrl+y keybinding to instantly toggle YOLO mode (with on-screen notification) without opening the command palette.
    • Displays descriptions alongside user-invocable skill commands in the skill picker for easier discovery.
    • Adds a scrollbar to the sessions list dialog for easier navigation of long session lists.
    • Auto-expands the TODO list by default when terminal height is sufficient; toggle with ctrl+t.
  22. v0.71.0 May 22, 2026 · issue -089

    Crush v0.71.0 adds user-invocable skills, pipe/redirect permission prompts, and a model-list scrollbar.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.71.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.71.0
    • Adds support for user-invocable skills, letting users directly invoke defined skills from the chat interface.
    • Requires a permission prompt whenever the model attempts to run Bash commands containing pipes, redirection, or other chained operators.
    • Adds a scrollbar to the model selection list (dialog and onboarding) for easier navigation of long model lists.
    • Defaults AWS Bedrock integration to the us-east-1 region, making all Bedrock models available out-of-the-box without local region configuration.
    └──▷ BREAKING ON UPGRADE
    • !AWS Bedrock now always uses us-east-1 as the region, ignoring any value set in AWS_REGION or AWS_DEFAULT_REGION.
  23. v0.70.0 May 18, 2026 · issue -093

    Crush v0.70.0 adds Alibaba (Singapore) as a new AI provider and extends retries to cover network-level failures.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.70.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.70.0
    └──▷ TRY IT
    Enable experimental client-server mode to support multiple sessions or remote Crush connections.
    $ export CRUSH_CLIENT_SERVER=1
    crush
    • Adds Alibaba (Singapore) as a new model provider, including access to Qwen models, configurable via the model picker or $ALIBABA_SINGAPORE_API_KEY.
    • Extends retry logic to cover network errors (e.g., transient offline states, DNS failures) in addition to HTTP error codes.
  24. v0.69.0 May 15, 2026 · issue -096

    Crush v0.69.0 adds a -p flag and new styling to the dirs command.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.69.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.69.0
    └──▷ TRY IT
    Use the new -p flag with the dirs command to control directory path output.
    $ crush dirs -p
    • Adds -p flag to the dirs command for additional directory output control.
    • Adds styling improvements to the dirs command output.
  25. v0.68.0 May 14, 2026 · issue -097

    Crush v0.68.0 adds an OAuth logout command, MCP tool allow-listing, and auto-hints for gh/ripgrep in the system prompt.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.68.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.68.0
    • Adds logout command for OAuth sessions.
    • Adds an allow list for MCP tools, letting you restrict which tools the model can invoke.
    • Automatically mentions gh and rg (ripgrep) in the system prompt when they are available, hinting the model to use them.
    • Extends the prompt templating system to cover more prompt types.
    • Removes the legacy long system prompt option (CRUSH_SHORT_TOOL_DESCRIPTIONS=0 no longer accepted).
    └──▷ BREAKING ON UPGRADE
    • !The CRUSH_SHORT_TOOL_DESCRIPTIONS=0 opt-in for the old long system prompt is removed; there is no longer a way to restore the previous prompt.
  26. v0.67.0 May 11, 2026 · issue -100

    Crush v0.67.0 adds a built-in shell interpreter for hooks, shell expansion in config values, and a touch tool for empty file creation.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.67.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.67.0
    └──▷ USE IT
    Pull an API key from Vault at runtime so secrets never live in your Crush config file.
    json
    "api_key": "$(vault kv get my/secret/token)"
    • Hooks now run via the built-in shell interpreter (mvdan/sh) by default, improving portability and Windows support; shebangs are still respected.
    • Shell expansion now works in config values (e.g., "api_key": "$(vault kv get my/secret/token)") via the embedded interpreter, including MCP args, URLs, and LSP args/env.
    • New write tool (via touch) lets the model create empty files, gated by a permission prompt for paths outside the working directory.
    └──▷ BREAKING ON UPGRADE
    • !The Assisted-by Git commit trailer format has changed: it was Assisted-by: {modelName} via Crush <[email protected]> and is now Assisted-by: Crush:{modelID}.
  27. v0.66.1 May 8, 2026 · issue -103

    Crush v0.66.1 adds flat_rate provider config to skip per-token cost tracking for subscription-based providers.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.66.1 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.66.1
    └──▷ USE IT
    Suppress cost tracking for a subscription provider so Crush doesn't report misleading $0.00 per-token charges.
    json
    {
      "providers": {
        "my-favorite-provider": {
          "flat_rate": true
        }
      }
    }
    • New flat_rate provider config option in crush.json lets you skip cost calculation for subscription-based providers where per-token billing doesn't apply.
  28. v0.65.2 May 1, 2026 · issue -110

    Crush v0.65.2 adds first-class support for Hyper, Charm's privacy-focused inference service, with credit balance shown in the sidebar.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.65.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.65.2
    • Adds Hyper integration: Charm's new coding-focused inference service (private beta) is now a first-class provider in Crush.
    • Displays remaining Hypercredits balance in the sidebar so you can track usage at a glance.
  29. v0.63.0 Apr 27, 2026 · issue -114

    Crush v0.63.0 introduces PreToolUse hooks to intercept, deny, or rewrite tool calls before execution.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.63.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.63.0
    • Adds PreToolUse hook that runs before any tool call, enabling deny, halt, rewrite of bash commands, or silent side effects.
    • Introduces built-in crush-hook skill to build, manage, and configure hooks from within Crush.
    • Supports Claude Code hooks for compatibility with existing hook scripts.
  30. v0.62.0 Apr 22, 2026 · issue -119

    Crush v0.62.0 cuts ~120k tokens/session with shorter tool descriptions and auto-renders diffs from any tool output.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.62.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.62.0
    • Automatically detects and renders diff-formatted output from any tool (e.g. GitHub MCP server) with full diff UI, not just the built-in edit tool.
    • Short tool descriptions are now the default, saving ~120k tokens per session and improving behaviour of small/local models with limited context windows.
    └──▷ BREAKING ON UPGRADE
    • !Short tool descriptions are now the default; sessions relying on the verbose system prompt will behave differently unless CRUSH_SHORT_TOOL_DESCRIPTIONS=0 is explicitly set (this opt-out may be removed in a future release).
  31. v0.61.1 Apr 21, 2026 · issue -120

    Crush v0.61.1 adds iTerm2 progress bar support with a progress toggle in crush.json.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.61.1 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.61.1
    └──▷ USE IT
    Disable the agent progress bar in iTerm2 (or any supported terminal) when you find it distracting during long-running tasks.
    json
    {
      "options": {
        "progress": false
      }
    }
    • Adds options.progress key to crush.json (set to false to disable) to control the agent progress bar display.
    • Extends progress bar support to iTerm2, joining Ghostty and Rio as supported terminals.
  32. v0.60.0 Apr 17, 2026 · issue -124

    Crush v0.60.0 adds OpenAI-compatible endpoint support for the Hyper provider.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.60.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.60.0
    • Supports OpenAI-compatible endpoint for the Hyper provider, enabling use of Hyper through standard OpenAI-compatible API tooling.
  33. v0.59.0 Apr 16, 2026 · issue -125

    Crush v0.59.0 adds built-in jq support with a dedicated skill, skills discovery in the sidebar, and Rio Terminal progress bar feedback.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.59.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.59.0
    • Adds built-in jq as a bash builtin so agents can query JSON files without requiring jq installed on the host machine.
    • Includes a built-in jq skill to instruct the model on how to invoke jq during agentic tasks.
    • Shows available skills in the sidebar and landing page for improved discoverability.
    • Enables progress bar feedback when running inside Rio Terminal.
  34. v0.58.0 Apr 15, 2026 · issue -126

    Crush v0.58.0 adds support for OpenCode Zen and OpenCode Go model providers.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.58.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.58.0
    • Adds support for OpenCode Zen and OpenCode Go as model providers.
  35. v0.57.0 Apr 13, 2026 · issue -128

    Crush v0.57.0 adds opt-in ~98% token savings via CRUSH_SHORT_TOOL_DESCRIPTIONS and HYPER_API_KEY auth support.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.57.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.57.0
    └──▷ TRY IT
    Opt in to drastically shorter tool descriptions to slash token usage — especially useful on long sessions or when costs matter.
    $ export CRUSH_SHORT_TOOL_DESCRIPTIONS=1
    crush
    • Adds CRUSH_SHORT_TOOL_DESCRIPTIONS env flag to reduce tool call description sizes by ~98%, saving an estimated 120K tokens per session.
    • Adds support for HYPER_API_KEY environment variable for Hyper authentication.
    • The crush_info tool now displays your attribution settings alongside other configuration details.
  36. v0.56.0 Apr 8, 2026 · issue -133

    Crush v0.56.0 adds crush_info and crush_logs self-diagnostic tools so the AI can inspect its own config and logs.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.56.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.56.0
    └──▷ USE IT
    Prevent the model from ever reading your configuration or logs — useful in shared or locked-down environments.
    json
    {
      "options": {
        "disabled_tools": ["crush_info", "crush_logs"]
      }
    }
    • Adds crush_info tool: exposes the final merged configuration to the model so it can self-diagnose provider, LSP, and MCP setup.
    • Adds crush_logs tool: surfaces Crush's own application logs to the model for in-session debugging.
    • Supports disabling either self-diagnostic tool via the disabled_tools config option to prevent the model from ever calling them.
    • Automatically opens the Hyper auth dialog on unauthorized errors, reducing manual intervention when credentials expire.
  37. v0.55.0 Apr 2, 2026 · issue -139

    Crush v0.55.0 adds a built-in self-configuration skill, skill disabling, and an experimental server-client architecture.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.55.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.55.0
    └──▷ USE IT
    Disable the built-in crush-config skill (or any other skill) for a project that should not allow self-modification.
    json
    {
      "$schema": "https://charm.land/crush.json",
      "options": {
        "disabled_skills": ["crush-config"]
      }
    }
    Opt into the experimental server-client architecture to try the new RPC backend.
    $ CRUSH_CLIENT_SERVER=1 crush
    • Adds built-in 'Crush config' skill so Crush can configure itself — add providers, MCPs, LSPs, or change settings via natural language without manual JSON editing.
    • Supports disabling any skill (built-in, global, or project) via the new disabled_skills array in crush.json.
    • Introduces experimental RPC server-client architecture, enabled with the CRUSH_CLIENT_SERVER=1 environment variable.
    • Serves generated Swagger API docs from the server when running in server-client mode.
  38. v0.54.0 Mar 31, 2026 · issue -141

    Crush v0.54.0 adds skill metadata to session commands and respects custom Git global ignore files.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.54.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.54.0
    └──▷ TRY IT
    Review which skills an AI session exercised — useful for auditing agent behavior after a run.
    $ crush session show
    Check the most recent session's skill usage without knowing its ID.
    $ crush session last
    • Adds skill metadata header to crush session show and crush session last output, listing all skills used by a session.
    • Supports Git's core.excludesfile custom global ignore file when listing project files.
  39. v0.53.0 Mar 27, 2026 · issue -145

    Crush v0.53.0 adds Z.ai GLM-5.1 model support and a dynamic prompt input area that grows up to 15 rows.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.53.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.53.0
    • Adds support for Z.ai's GLM-5.1, a new open-source coding model, as a selectable model in Crush.
  40. v0.52.0 Mar 25, 2026 · issue -147

    Crush v0.52.0 adds project-level skills, agent-detection env vars, and smarter file picker ranking.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.52.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.52.0
    └──▷ TRY IT
    Gate a script's behavior on whether it is being invoked by Crush (or any compatible AI agent) using the new env vars.
    $ if [ "$CRUSH" = "1" ] || [ "$AI_AGENT" = "crush" ]; then echo 'Running inside Crush — skipping interactive prompts'; fi
    • Adds project-scoped skills: Crush now auto-loads skills from .agents/skills, .crush/skills, .claude/skills, or .cursor/skills, making team skill-sharing as simple as committing files.
    • Sets CRUSH=1, AGENT=crush, and AI_AGENT=crush environment variables when running Bash commands, letting tools detect they are running inside Crush.
    • Improves @-triggered file picker with a significantly better completion ranking algorithm, especially useful in large repositories.
    • Expands Windows global skills path to include ~/.config/crush/skills and ~/.config/agents/skills alongside the AppData location.
    • Improves system prompt to enforce model responses and session titles in the same language as the user's prompt.
  41. v0.51.0 Mar 19, 2026 · issue -153

    Crush v0.51.0 adds native Docker MCP Catalog integration and new --continue/--session CLI flags.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.51.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.51.0
    └──▷ TRY IT
    Resume the last AI session non-interactively to continue a scripted or automated workflow without re-entering context.
    $ crush run --continue
    Jump back into a specific named session from the terminal, skipping the session-picker UI.
    $ crush --session <session-id>
    Enable the Docker MCP Catalog so Crush can pull in context-relevant MCPs (e.g. Postgres, ARM) on demand during a conversation.
    📍In Crush, press ctrl+p, then choose "Enable Docker MCP Catalog" (requires Docker Desktop to be running).
    • Integrates the Docker MCP Catalog natively, pulling relevant MCPs on demand during conversations (enable via ctrl+p > 'Enable Docker MCP Catalog' with Docker Desktop running).
    • Adds crush r and crush s as short aliases for crush run and crush session.
    • Adds --continue flag to resume the last session in both TUI (crush --continue) and non-interactive (crush run --continue) modes.
    • Adds --session <session-id> flag to open a specific past session directly from the CLI or TUI.
  42. v0.50.1 Mar 17, 2026 · issue -155

    Crush v0.50.1 adds support for OpenAI GPT-5.4 Mini and GPT-5.4 Nano, with Nano as the new default small model.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.50.1 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.50.1
    • Adds support for OpenAI GPT-5.4 Mini and GPT-5.4 Nano models.
    • Sets GPT-5.4 Nano as the new default small model for OpenAI.
  43. v0.50.0 Mar 16, 2026 · issue -156

    crush run gains --continue and --session flags to resume past sessions non-interactively

    └──▷ GET THIS VERSION
    $ git clone --branch v0.50.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.50.0
    └──▷ TRY IT
    Pick up where you left off in the most recent session without opening the interactive UI.
    $ crush run --continue "tell me more"
    Continue a specific past session by ID — useful in scripts where you track session IDs from crush session list --json.
    $ crush run --session <session-id> "um, can you repeat that?"
    • Adds --continue (-C) flag to crush run to resume the most recent session non-interactively.
    • Adds --session (-s) flag to crush run to resume a specific session by ID non-interactively.
  44. v0.49.0 Mar 13, 2026 · issue -158

    Crush v0.49.0 adds transparent-mode toggle, AWS Bedrock API key pasting, and configurable Bash tool auto-background timing.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.49.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.49.0
    • Adds a command-palette (ctrl+p) toggle to enable/disable background color ('transparent mode'), persisted across sessions.
    • Supports pasting AWS Bedrock API keys directly in the provider input, alongside the existing environment-variable method.
    • Adds auto_background_after parameter to the Bash tool, letting the model specify how many seconds before a command is moved to a background job (default: 60s).
  45. v0.48.0 Mar 12, 2026 · issue -159

    Crush v0.48.0 adds desktop notifications, CLI session management with JSON output, and a user-agent identifier.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.48.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.48.0
    • Adds desktop notifications on turn completion and permission requests, with an in-app toggle.
    • New crush session list command to browse past sessions from the CLI.
    • New crush session <id> command to inspect a former session in full; supports --json for structured output usable by agents and automation.
    • Supports renaming and deleting sessions from the CLI via crush session.
    • Crush now presents a Charm-Crush/<version> User-Agent header on all network requests, making it identifiable in observability and proxy tools.
  46. v0.47.2 Mar 5, 2026 · issue -166

    Crush v0.47.2 adds OpenAI GPT-5.4 and GPT-5.4 Pro model support plus Zhipu and QiniuCloud providers.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.47.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.47.2
    • Adds support for OpenAI GPT-5.4 and GPT-5.4 Pro models (required an explicit Crush update to enable).
    • Adds Zhipu and Zhipu Coding (bigmodel.cn) as new AI providers.
    • Adds QiniuCloud as a new AI provider.
  47. v0.47.0 Mar 4, 2026 · issue -167

    Crush v0.47.0 adds a blocking wait: true parameter to job_output to eliminate polling on background jobs.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.47.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.47.0
    • Adds wait: true optional parameter to the job_output tool, letting the model block until a background job finishes instead of polling for output.
  48. v0.46.0 Feb 26, 2026 · issue -172

    Crush v0.46.0 adds MiniMax China provider and granular Anthropic reasoning levels for Opus/Sonnet 4.6.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.46.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.46.0
    • Adds MiniMax China as a new provider, using the China-specific endpoint for Chinese users.
    • Adds granular reasoning/thinking effort levels for Anthropic Opus 4.6 and Sonnet 4.6, replacing the previous on/off toggle with adaptive level selection.
  49. v0.45.0 Feb 24, 2026 · issue -174

    Crush v0.45.0 adds GPT-5.3 Codex support and granular Gemini 3 thinking-level controls.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.45.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.45.0
    • Adds GPT-5.3 Codex as a selectable model via the model picker.
    • Adds granular thinking-level selection for Gemini 3 and 3.1 (replaces the previous on/off toggle).
  50. v0.44.0 Feb 22, 2026 · issue -176

    Crush v0.44.0 adds visual confirmation when skills are loaded so you know the LLM isn't improvising.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.44.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.44.0
    • Adds UI indicator showing when a skill is actively loaded, distinguishing real skill execution from LLM improvisation.
  51. v0.43.0 Feb 13, 2026 · issue -185

    Crush v0.43.0 adds a toggle todos/pills menu item and glob-based gitignore for faster monorepo handling.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.43.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.43.0
    • Adds a toggle todos/pills menu item to the UI.
    • Replaces regex-based gitignore parsing with glob-based matching, reducing CPU and disk usage on large repositories.
  52. v0.42.0 Feb 11, 2026 · issue -187

    Crush v0.42.0 adds GLM 5 via z.AI and surfaces user-configured LSP servers in the UI before they start.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.42.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.42.0
    • Adds GLM 5 model support via z.AI as a new provider option.
    • Shows user-configured LSP servers in the UI with an 'unstarted' status before they are invoked.
  53. v0.41.0 Feb 9, 2026 · issue -189

    Crush v0.41.0 adds in-TUI editing of API keys and OAuth re-authentication via ctrl+e.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.41.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.41.0
    └──▷ HOW TO FIND IT
    Rotate or correct an API key for a configured model without leaving the TUI.
    📍# Inside crush TUI: # Press ctrl+m to open the models dialog # Select the model whose key you want to update # Press ctrl+e to edit the API key
    • Adds ability to edit API keys directly in the TUI: open the models dialog (ctrl+m), select a model, and press ctrl+e — no more manual edits to crush.json.
    • Supports OAuth2 re-authentication via the same ctrl+e shortcut for OAuth providers, triggering the full OAuth2 flow in-app.
  54. v0.40.0 Feb 9, 2026 · issue -189

    Crush v0.40.0 adds on-demand LSP startup, MiniMax provider support, MCP resources, and clipboard image paste.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.40.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.40.0
    • Adds on-demand LSP server startup — servers launch only when the model interacts with a file of that language, and are shut down between sessions.
    • Supports MiniMax as a new AI provider, including the MiniMax Coding Plan.
    • Adds MCP resources support.
    • Enables clipboard image paste via Ctrl+V.
  55. v0.39.0 Feb 3, 2026 · issue -195

    Crush v0.39.0 adds prompt history navigation, session rename/delete, collapsible chat blocks, and a transparent UI mode.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.39.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.39.0
    • Adds Up/Down arrow key history navigation to cycle through past prompts, similar to Bash and VSCode.
    • Enables renaming sessions with Ctrl+R and deleting sessions with Ctrl+X from the session dialog.
    • Supports click-to-expand/collapse for code blocks, diffs, and thinking blocks in the chat.
    • Shows last-updated time for each session in the sessions dialog.
    • Displays the active provider name in the sidebar, panel, and message footers.
    +2 moreshow less
    • Adds transparent mode for the UI.
    • Adds a configurable timeout for LSP initialization.
  56. v0.38.0 Feb 2, 2026 · issue -196

    Crush v0.38.0 adds Vercel as a native provider with broader model support.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.38.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.38.0
    • Adds Vercel as a dedicated provider (previously treated as an OpenAI provider), enabling access to Vercel's full model catalog.
  57. v0.37.0 Jan 30, 2026 · issue -199

    Crush v0.37.0 adds LSP auto-discovery, MCP server-side instructions, prompt history, and more Copilot models including Gemini 3 Pro/Flash.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.37.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.37.0
    └──▷ TRY IT
    Try the new experimental UI without changing any config permanently.
    $ CRUSH_NEW_UI=1 crush
    • Adds automatic LSP discovery — Crush detects and configures installed language servers without manual setup.
    • Supports MCP server-side instructions for richer model-context-protocol integrations.
    • Adds prompt history so previous inputs can be recalled during a session.
    • Expands available Copilot models, including Gemini 3 Pro (Preview) and Gemini 3 Flash (Preview).
    • Opens the commands dialog by pressing / for faster command access.
    +3 moreshow less
    • Adds per-session file tracking to scope file awareness to the current session.
    • Enables disabling the indeterminate progress bar via configuration.
    • Previews a new UI, accessible by setting CRUSH_NEW_UI=1 in the environment.
  58. v0.36.0 Jan 27, 2026 · issue -202

    Crush v0.36.0 adds crush stats usage dashboard, session deletion, session title editing, and multi-file drag & drop.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.36.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.36.0
    └──▷ TRY IT
    View a breakdown of your Crush token usage and session history for the current project at a glance.
    $ crush stats
    • New crush stats command displays a per-project usage dashboard with token and session statistics.
    • Adds ability to delete sessions directly from the UI.
    • Enables renaming/updating session titles.
    • Supports drag & drop of multiple files at once, including on Windows.
  59. v0.35.0 Jan 23, 2026 · issue -206

    Crush v0.35.0 adds Vercel AI Gateway support, an LSP restart command, and a keybinding to copy chat messages.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.35.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.35.0
    └──▷ TRY IT
    Try the in-progress UI refactor to get faster rendering and provide early feedback.
    $ CRUSH_NEW_UI=1 crush
    • Supports Vercel AI Gateway as a new AI provider integration.
    • Adds lsp_restart command to restart the language server from within Crush.
    • Adds a keybinding to copy chat message content to clipboard.
    • Previews a new UI refactor accessible via CRUSH_NEW_UI=1, including an onboarding flow.
  60. v0.34.0 Jan 21, 2026 · issue -208

    Crush v0.34.0 adds --model flag for non-interactive runs, a crush models listing command, file attachments, paste-as-file, and a new opt-in UI.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.34.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.34.0
    └──▷ TRY IT
    Run a headless prompt against a specific provider and model in CI — no interactive session needed.
    $ echo 'Summarize the diff below' | crush run --model 'openai/gpt-5.2-codex'
    Discover which models are configured, then narrow to a provider before scripting against it.
    $ crush models | grep openai
    Preview and test the new UI overhaul without affecting your default workflow.
    $ CRUSH_NEW_UI=1 crush
    • Adds --model flag to crush run for specifying a provider/model in non-interactive/CI mode using {model} or {provider}/{model} format.
    • New crush models command lists all configured models and providers, composable with grep.
    • Supports sending prompts with file attachments even when the text body is empty.
    • Adds attachment support: files can be attached to prompts in interactive mode.
    • Adds paste-as-file capability, turning large pastes into attachments automatically.
    +5 moreshow less
    • New completions menu for the editor input.
    • Expandable thinking display for assistant responses in chat.
    • File picker dialog with image preview and Kitty graphics protocol support (including inside tmux).
    • Terminal tab title is now set automatically to reflect the working directory.
    • New opt-in overhauled UI available via CRUSH_NEW_UI=1 environment variable.
  61. v0.33.2 Jan 16, 2026 · issue -213

    Crush v0.33.2 adds clipboard image paste directly into the chat editor.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.33.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.33.2
    • Supports pasting images from the system clipboard directly into the Crush chat editor.
  62. v0.32.0 Jan 12, 2026 · issue -217

    Crush v0.32.0 adds a config option to disable default providers and allows sending prompts with attachments but no text.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.32.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.32.0
    └──▷ TRY IT
    Suppress all default cloud providers so only locally configured models are available — useful in air-gapped or local-only setups.
    $ CRUSH_DISABLE_DEFAULT_PROVIDERS=1 crush
    • Adds disable_default_providers config setting to suppress all built-in cloud providers, useful when running exclusively with local models.
    • Enables sending a prompt that contains only file/text attachments with no typed text.
  63. v0.31.0 Jan 7, 2026 · issue -222

    Crush v0.31.0 adds cross-tool skills loading from ~/.config/agents/skills and removes Claude Code support.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.31.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.31.0
    • Supports loading skills from a shared ~/.config/agents/skills directory, enabling reuse across multiple agent tools.
    └──▷ BREAKING ON UPGRADE
    • !Claude Code support has been removed; any workflow relying on Claude Code integration will no longer function after upgrading.
  64. v0.30.3 Jan 5, 2026 · issue -224

    Crush v0.30.3 adds five new models for GitHub Copilot users: Claude Opus 4.5, GPT 5.2, GPT 5.1, GPT 5.1 Codex, and GPT 5.1 Max.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.30.3 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.30.3
    • Adds Claude Opus 4.5 as a selectable model for GitHub Copilot users.
    • Adds GPT 5.2, GPT 5.1, GPT 5.1 Codex, and GPT 5.1 Max as selectable models for GitHub Copilot users.
  65. v0.30.0 Dec 27, 2025 · issue -233

    Crush v0.30.0 adds Agent Skills support, letting you extend the AI agent with on-demand capabilities via the open agentskills.io format.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.30.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.30.0
    • Supports the Agent Skills open format, enabling on-demand agent capability extensions that load automatically without cluttering context.
  66. v0.29.0 Dec 19, 2025 · issue -241

    Crush v0.29.0 adds drag-and-drop and paste-as-attachment support for images and large text blobs.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.29.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.29.0
    • Supports dragging and dropping attachments of all kinds directly into the terminal UI.
    • Automatically treats large pasted text as an attachment instead of inline input.
  67. v0.28.0 Dec 18, 2025 · issue -242

    Crush v0.28.0 adds env-var overrides for config directories and Hyper/Copilot login via onboarding.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.28.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.28.0
    • Adds ability to set environment variables to override config directories.
    • Enables Hyper and GitHub Copilot login directly through the onboarding flow.
  68. v0.27.0 Dec 17, 2025 · issue -243

    Crush v0.27.0 adds GitHub Copilot as a supported AI backend with a new crush login copilot auth command.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.27.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.27.0
    └──▷ TRY IT
    Authenticate with GitHub Copilot when it isn't already detected on the machine.
    $ crush login copilot
    • Adds GitHub Copilot as a supported model provider, auto-detecting existing logins or prompting via TUI.
    • New crush login copilot command for explicit GitHub Copilot authentication.
  69. v0.26.0 Dec 16, 2025 · issue -244

    Crush v0.26.0 adds Hyper terminal integration.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.26.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.26.0
    • Adds Hyper terminal integration.
  70. v0.25.0 Dec 16, 2025 · issue -244

    Crush v0.25.0 adds crush projects command for centralized project tracking with JSON output support.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.25.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.25.0
    └──▷ TRY IT
    Enumerate all known Crush projects in machine-readable JSON to feed into scripts or CI pipelines.
    $ crush projects --json
    • Adds crush projects command to list all projects where Crush has been used, with --json flag for programmatic consumption.
  71. v0.24.0 Dec 12, 2025 · issue -248

    Crush v0.24.0 adds a first-class to-do list tool and pipe/redirect support for crush run.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.24.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.24.0
    └──▷ TRY IT
    Pipe a file into Crush and redirect its output — useful for automated summarization or review tasks in CI.
    $ crush run "Summarize this project" > summary.md
    Chain both stdin and stdout redirection to process a file and capture the result in one shot.
    $ crush run "Rate my Pokémon collection" < Pokedex.md > Pokerating.md
    • Adds a built-in to-do list tool so Crush can create and manage task lists during complex multi-step operations.
    • Enables input/output redirection and piping in crush run non-interactive mode, allowing integration with shell pipelines.
  72. v0.23.0 Dec 11, 2025 · issue -249

    Crush v0.23.0 adds GPT-5.2 and GPT-5.1 Codex Max support, plus MCP disabled_tools config.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.23.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.23.0
    └──▷ USE IT
    Suppress noisy or dangerous MCP tools from being offered to the model without removing the whole server.
    yaml
    # In your MCP server config block, add:
    disabled_tools:
      - bash
      - write_file
    • Adds support for OpenAI GPT-5.2 as a selectable model.
    • Adds support for GPT-5.1 Codex Max model.
    • New disabled_tools list in MCP config lets you suppress specific MCP tools without removing the server.
    • Shows a / hint in the TUI editor when the input field is empty, surfacing command discovery.
  73. v0.22.2 Dec 10, 2025 · issue -250

    Crush v0.22.2 sorts sessions by recent activity and improves Claude token refresh for long sessions.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.22.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.22.2
    • Sorts sessions by most recently used activity instead of creation time in the Ctrl+S session dialog.
  74. v0.22.0 Dec 8, 2025 · issue -252

    Crush v0.22.0 adds DuckDuckGo web search and image-returning tool/MCP support via agentic fetch.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.22.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.22.0
    • Adds DuckDuckGo-powered web search: tell Crush what you're looking for and it uses agentic fetch to search and retrieve results while keeping search context out of the main session.
    • Supports image results returned by tools and MCPs (e.g., Playwright), enabling visual web agentic workflows.
  75. v0.21.0 Dec 4, 2025 · issue -256

    Crush v0.21.0 adds parallel tool call execution and progress bar support for iTerm2 and Rio terminals.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.21.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.21.0
    • Enables parallel tool calls so multiple tools can execute simultaneously, reducing wait time on multi-step tasks.
    • Adds progress bar display for iTerm2 and Rio terminal emulators.
  76. v0.20.1 Dec 1, 2025 · issue -259

    Adds crush login claude CLI command for authenticating with Claude Code Max in SSH/tmux environments.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.20.1 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.20.1
    └──▷ TRY IT
    Authenticate with Claude Code Max over SSH or inside tmux where opening a browser or copying a URL to the clipboard isn't possible.
    $ crush login claude
    • Adds crush login claude command to authenticate with Claude Code Max via the CLI, enabling use in SSH, tmux, and other headless environments where browser-based auth isn't viable.
  77. v0.19.0 Nov 26, 2025 · issue -264

    Crush v0.19.0 adds Claude Code Max subscription support for Anthropic model access.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.19.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.19.0
    • Supports Claude Code Max subscriptions — select an Anthropic model and Crush will prompt you through the authentication flow.
  78. v0.18.4 Nov 19, 2025 · issue -271

    Crush v0.18.4 adds support for Kimi's coding subscription plan as a model provider.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.18.4 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.18.4
    • Adds support for Kimi Coding (kimi.com coding subscription) as a model provider.
  79. v0.18.3 Nov 19, 2025 · issue -271

    Crush v0.18.3 adds full Google Gemini 3 support and in-app new-version notifications.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.18.3 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.18.3
    • Adds support for Google Gemini 3 across models hosted on Google and OpenRouter.
    • Notifies users in-app when a new version of Crush is available.
  80. v0.18.2 Nov 17, 2025 · issue -273

    Crush v0.18.2 adds Mode 2026 terminal sync for smoother rendering and defaults attribution to assisted-by.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.18.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.18.2
    • Supports Mode 2026 terminal rendering synchronization via Bubble Tea v2, delivering smoother UI updates in compatible terminals.
    • Defaults commit/output attribution to 'assisted-by' mode.
  81. v0.18.1 Nov 13, 2025 · issue -277

    Crush v0.18.1 adds support for GPT-5.1, GPT-5.1-Codex, and GPT-5.1-Codex-Mini models.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.18.1 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.18.1
    • Adds support for gpt-5.1, gpt-5.1-codex, and gpt-5.1-codex-mini as selectable models.
  82. v0.18.0 Nov 13, 2025 · issue -277

    Crush now defaults to AGENTS.md for new projects, aligning with the emerging agents.md convention.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.18.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.18.0
    • Defaults to creating AGENTS.md (instead of CRUSH.md) for new projects, with a new config setting to customize the filename.
  83. v0.17.0 Nov 12, 2025 · issue -278

    Crush v0.17.0 adds a recent-models picker and opt-in AI attribution trailers to git commits.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.17.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.17.0
    • Adds a 'recent models' section at the top of the model picker so frequently used models are surfaced automatically.
    • Adds trailer_style config option to append an Assisted-by git trailer (e.g. Assisted-by: Claude Sonnet 4.5 via Crush) to commits, following Fedora Council AI-disclosure guidelines.
    • Migrates the deprecated co_authored_by config setting to the new attribution scheme.
  84. v0.16.0 Nov 7, 2025 · issue -283

    Crush v0.16.0 adds background jobs so the LLM can spawn and manage parallel processes like servers and builds.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.16.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.16.0
    • Adds background jobs support, enabling Crush to spawn and manage long-running processes (servers, parallel builds) asynchronously.
    └──▷ BREAKING ON UPGRADE
    • !Persistent shell has been removed.
  85. v0.15.2 Nov 6, 2025 · issue -284

    Crush v0.15.2 adds Ctrl+L/Ctrl+M hotkeys to open the model switcher from anywhere.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.15.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.15.2
    • Adds Ctrl+L and Ctrl+M keyboard shortcuts to open the model switcher without leaving the keyboard.
  86. v0.15.0 Nov 5, 2025 · issue -285

    Crush v0.15.0 adds an agentic fetch tool for reasoning over URL content plus keyboard shortcut UX improvements.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.15.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.15.0
    • Adds an agentic fetch tool that lets subagents pull content from a URL, reason over it, and iterate until they find what they need.
    • Press / in an empty textarea to open the command palette (in addition to the existing ctrl+p shortcut).
    • Use @ to open the file picker in the chat input.
    └──▷ BREAKING ON UPGRADE
    • !The @ key now opens the file picker instead of /; existing muscle memory using / to pick files will no longer work — press / in an empty input to get the command palette instead.
  87. v0.14.0 Nov 4, 2025 · issue -286

    Crush v0.14.0 adds MCP Prompt template support and startup progress feedback on Ghostty/Windows Terminal.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.14.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.14.0
    • Supports MCP stored prompts (templates): access via ctrl+p then the MCP tab in the command prompt.
    • Shows a progress bar loading feedback during startup on Ghostty and Windows Terminal.
  88. v0.13.7 Oct 31, 2025 · issue -290

    Crush v0.13.7 adds Azure reasoning-level support and significantly faster rendering for long sessions.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.13.7 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.13.7
    • Enables full OpenAI feature set for Azure-hosted models, including reasoning effort levels (Low, Medium, High).
    • Significantly faster rendering and lower CPU usage when scrolling through large, long conversations.
  89. v0.13.0 Oct 27, 2025 · issue -294

    Crush v0.13.0 adds an openai-compat provider type for better support of OpenAI-compatible APIs with extra features.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.13.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.13.0
    └──▷ USE IT
    Switch a custom OpenAI-compatible provider to the new type to get improved behavior and access to previously unavailable features.
    json
    {
      "$schema": "https://charm.land/crush.json",
      "providers": {
        "my-custom-provider": {
          "type": "openai-compat"
        }
      }
    }
    • Adds new openai-compat provider type in config for OpenAI-compatible APIs, unlocking extra features previously unavailable to custom providers.
  90. v0.12.0 Oct 21, 2025 · issue -300

    Crush v0.12.0 adds LSP-powered Find References tool and AWS Bearer Token support for Bedrock

    └──▷ GET THIS VERSION
    $ git clone --branch v0.12.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.12.0
    • New Find References tool taps into attached LSPs to locate symbol references with greater speed and precision than the grep tool.
    • Supports AWS_BEARER_TOKEN_BEDROCK environment variable for authenticating with AWS Bedrock.
  91. v0.11.0 Oct 13, 2025 · issue -308

    Crush v0.11.0 adds terminal progress bar support, MCP notifications, and automatic filepath walk limits.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.11.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.11.0
    • Adds application-level progress bar display in supporting terminals (Windows Terminal, Ghostty).
    • Adds MCP notifications support including tools/list_changed events, enabling real-time tool updates to MCP clients like Neovim.
    • Adds automatic filepath walk limits, with lower limits applied automatically when not in a git repository.
  92. v0.10.4 Sep 30, 2025 · issue -320

    Crush v0.10.4 adds crush dirs subcommand to resolve config and data directory paths from the CLI.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.10.4 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.10.4
    └──▷ TRY IT
    Open Crush's main config file directly without manually hunting down the path.
    $ vim "$(crush dirs config)/crush.json"
    Wipe all ephemeral Crush data (sessions, cache) for a clean slate.
    $ rm -rf "$(crush dirs data)"
    • New crush dirs subcommand surfaces the paths to Crush's config and data directories, enabling scripted access to config files and ephemeral data.
  93. v0.10.0 Sep 24, 2025 · issue -326

    Crush v0.10.0 adds Hugging Face inference support, recursive config search, custom Gemini providers, and pseudoanonymous usage metrics.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.10.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.10.0
    • Adds Hugging Face inference provider integration.
    • Supports custom providers of type gemini in config.
    • Searches crush.json recursively up from the working directory.
    • Loads LSP defaults by either name or command.
    • Pretty-prints MCP JSON in permissions output.
    +2 moreshow less
    • Adds alt/option+esc key binding as an alias for the existing esc behavior.
    • Adds pseudoanonymous usage metrics (device hash only; prompts and responses never collected) with opt-out support.
  94. v0.9.0 Sep 17, 2025 · issue -333

    Crush v0.9.0 overhauls LSP via Power Nap library and adds configurable attribution in commit messages.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.9.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.9.0
    • Rewrites LSP implementation using the Power Nap library, reducing codebase complexity and improving LSP experience.
    • Adds attribution settings to config and bash tool, allowing users to disable Crush attribution in commit messages.
  95. v0.8.0 Sep 12, 2025 · issue -338

    Crush v0.8.0 adds in-app OpenAI reasoning controls, offline mode, tool disabling, and a new crush update-providers command.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.8.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.8.0
    └──▷ TRY IT
    Lock Crush to fully offline operation in air-gapped or restricted environments — no outbound calls to catwalk.charm.sh.
    $ export CRUSH_DISABLE_PROVIDER_AUTO_UPDATE=1
    Manually refresh provider/model definitions when internet access is available, or seed from a vetted local file.
    $ crush update-providers /path/to/local-providers.json
    Restrict the AI agent to read-only tools by disabling shell execution and write capabilities in the config.
    json
    {
      "options": {
        "disabled_tools": [
          "bash",
          "write",
          "edit",
          "multiedit",
          "download"
        ]
      }
    }
    • Adds in-app reasoning level selector for OpenAI models that support reasoning, previously only configurable by manually editing crush.json.
    • New crush update-providers command lets practitioners manually pull provider/model updates from Catwalk, a custom URL, a local file, or the embedded bundle.
    • New disable_provider_auto_update option in crush.json (or CRUSH_DISABLE_PROVIDER_AUTO_UPDATE env var) enables a fully offline mode, preventing outbound fetches to catwalk.charm.sh.
    • New disabled_tools config option lets users selectively block individual agent tools (e.g., bash, fetch, write) from being available to the model.
    • Model chooser now supports multi-word search and matches on provider name, making it easier to locate a specific model by provider.
  96. v0.7.9 Sep 10, 2025 · issue -340

    Crush v0.7.9 cuts LSP file descriptors by 99% for dramatically faster multi-LSP workflows.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.7.9 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.7.9
    • Optimizes LSP file watcher with 99% reduction in file descriptors, improving performance when using multiple LSPs.
  97. v0.7.8 Sep 9, 2025 · issue -341

    Crush v0.7.8 adds multiline paste support on Windows and enables SQLite secure_delete for safer data handling.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.7.8 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.7.8
    • Enables bracketed paste on Windows, allowing multiline text to be pasted correctly.
    • Enables SQLite secure_delete pragma so deleted database records are securely overwritten.
  98. v0.7.5 Sep 5, 2025 · issue -345

    Crush v0.7.5 shows the persistent shell path in the permission dialog for better shell-action transparency.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.7.5 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.7.5
    • Displays the persistent shell path in the permission dialog so users can see exactly which shell session is being granted access.
  99. v0.7.2 Aug 27, 2025 · issue -354

    Crush v0.7.2 adds Anthropic custom base URL support and shows current path on project initialization.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.7.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.7.2
    • Supports configuring a custom Anthropic base URL option for routing API traffic through proxies or compatible endpoints.
    • Displays the current directory path when prompting to initialize a new project.
  100. v0.7.0 Aug 20, 2025 · issue -361

    Crush v0.7.0 adds a --data-dir flag and git-style parent-directory discovery for the .crush state folder.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.7.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.7.0
    └──▷ TRY IT
    Point Crush at a shared data directory on a per-invocation basis, useful when you want to keep project state outside the default location.
    $ crush --data-dir /path/to/project/.crush
    • Adds --data-dir (-D) flag to specify a custom path for the .crush data directory at runtime.
    • Automatically discovers a .crush directory in any parent directory, similar to how git locates .git, so subdirectory work reuses the project's data dir.
  101. v0.6.3 Aug 18, 2025 · issue -363

    Crush v0.6.3 adds LSP custom env vars, auto-.gitignore for workspace dir, and tighter shell command restrictions.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.6.3 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.6.3
    • Supports setting custom environment variables for LSP servers via config.
    • Automatically creates a .crush/.gitignore so the workspace directory is excluded from Git without manual intervention.
    • Removes go from the list of safe programs the model is allowed to run, narrowing the permitted command surface.
    • Compiled with Go's GreenTea Garbage Collector, reducing memory footprint and CPU usage.
  102. v0.6.2 Aug 15, 2025 · issue -363

    Crush v0.6.2 adds Android/Termux support for on-the-go use.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.6.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.6.2
    • Adds official Android/Termux release, enabling Crush to run on mobile Android terminals.
  103. v0.6.1 Aug 14, 2025 · issue -363

    Crush v0.6.1 adds configurable MCP timeouts, automatic MCP reconnection, and per-filetype LSP scoping.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.6.1 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.6.1
    └──▷ USE IT
    Cap a slow remote MCP server at 30 seconds so it doesn't block your workflow indefinitely.
    json
    {
      "mcp": {
        "example": {
          "type": "http",
          "url": "https://example.org/mcp/",
          "timeout": 30
        }
      }
    }
    Restrict gopls to only activate on Go-related files, keeping the LSP from interfering with other file types.
    json
    {
      "lsp": {
        "Go": {
          "command": "gopls",
          "filetypes": ["go", "mod", "sum", "work"]
        }
      }
    }
    • Adds configurable per-MCP timeout in config (default 15 seconds) so unreliable MCP servers don't hang Crush indefinitely.
    • Enables automatic MCP client ping and reconnection when an MCP server becomes unresponsive.
    • Supports restricting LSP servers to specific file types via a filetypes config key for improved efficiency.
    • Ships built-in filetype associations for 17 popular language servers (gopls, rust-analyzer, pyright, typescript-language-server, and more), so no manual scoping is needed for common LSPs.
  104. v0.6.0 Aug 13, 2025 · issue -363

    Crush v0.6.0 adds Power Steering, letting you queue messages to the model mid-task without interrupting its tool calls.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.6.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.6.0
    • Adds Power Steering: queue messages for the model to pick up between tool calls or after task completion, with Esc to clear the queue.
  105. v0.5.0 Aug 11, 2025 · issue -363

    Crush v0.5.0 adds configurable default diff mode (unified or split) via the TUI config.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.5.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.5.0
    └──▷ USE IT
    Set your preferred diff mode so every session opens in split view without manual toggling.
    json
    {
      "options": {
        "tui": {
          "diff_mode": "split"
        }
      }
    }
    • Adds diff_mode config option under options.tui to set the default diff view to unified or split.
  106. v0.4.0 Aug 8, 2025 · issue -363

    Crush v0.4.0 adds in-session Yolo Mode toggle, diff view mouse scrolling, built-in coreutils on Windows, and CRUSH_-prefixed env vars.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.4.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.4.0
    └──▷ TRY IT
    Start a session with all permission dialogs bypassed from the command line.
    $ crush --yolo
    Toggle Yolo Mode on or off mid-session without restarting.
    📍Press ctrl+p, then select 'Toggle Yolo Mode' from the menu.
    • Adds in-session Yolo Mode toggle via ctrl+p menu, so you can enable/disable permission bypass without restarting Crush.
    • Enables mouse scrolling in the diff view.
    • Ships built-in coreutils (base64, gzip, mktemp, shasum, tar) on Windows — and speeds them up on all platforms by eliminating shell-outs.
    • Supports CRUSH_-prefixed environment variables (e.g. CRUSH_ANTHROPIC_API_KEY) to scope secrets to Crush without clobbering default env vars.
  107. v0.3.0 Aug 7, 2025 · issue -363

    Crush v0.3.0 adds mouse text selection, drag-and-drop image input, GPT-5 support, and OpenAI reasoning model improvements.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.3.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.3.0
    • Adds mouse-based text selection in chat messages, including double-click to select and copy.
    • Supports drag-and-drop image input into the chat from almost any terminal, including Apple Terminal.
    • Adds out-of-the-box support for GPT-5 as an OpenAI provider.
    • Supports minimal reasoning mode for OpenAI reasoning models.
    • Available on Nixpkgs unstable for easier installation.
  108. v0.2.2 Aug 6, 2025 · issue -363

    Crush v0.2.2 adds JetBrains rendering support, Scoop distribution for Windows, and LSP/MCP status indicators in the UI.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.2.2 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.2.2
    └──▷ TRY IT
    Install Crush on Windows using Scoop when you need a package-managed install that stays up to date.
    $ scoop bucket add charm https://github.com/charmbracelet/scoop-bucket.git && scoop install crush
    • Adds vastly improved rendering support for JetBrains terminals (JediTerm) used in GoLand, IntelliJ, PyCharm, and similar IDEs.
    • Adds Scoop package distribution for easy installation on Windows.
    • Adds LSP and MCP status indicators in the UI showing offline, starting up, online, and error states; full details viewable via crush logs.
    • Adds Escape key as an additional way to deny prompts in the UI.
  109. v0.2.0 Aug 2, 2025 · issue -363

    Crush v0.2.0 adds .crushignore support and enhanced debug logging with provider response capture.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.2.0 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.2.0
    └──▷ TRY IT
    Capture full provider request/response traffic to diagnose unexpected model behaviour or prompt issues.
    $ crush --debug && crush logs
    • Adds .crushignore file support to exclude files from Crush's context without removing them from version control; uses .gitignore syntax and works in the project root and subdirectories.
    • Extends --debug mode to also log provider request/response details, stored in .crush/logs/crush.log and viewable via crush logs.
    • Applies .crushignore and .gitignore rules to the built-in grep tool, scoping searches consistently with context exclusions.
  110. v0.1.6 Jul 29, 2025 · issue -364

    Crush v0.1.6 is the first public release of Charmbracelet's AI coding assistant for the terminal.

    └──▷ GET THIS VERSION
    $ git clone --branch v0.1.6 https://github.com/charmbracelet/crush.git
    # already have the repo? check out this version:
    $ git checkout v0.1.6
    • Introduces Crush, a new terminal-native AI coding assistant CLI from Charmbracelet.
    • Supports release artifact verification via cosign and sha256sum for supply-chain integrity.
my-toolchain — 0 tools
paste an install list to detect your tools

A brew list, a Brewfile, requirements.txt, a Dockerfile — or just the product names, free-form. Nothing leaves your browser.

    browse all tools →