on f99f504 help sign in

Glamourous agentic coding for all 💘

git clone https://git.iko.soy/crush.git

🚧 This is a pre-release under heavy, active development. Things are still in flux but we’re excited to share early progress.

Crush

Latest Release Build Status

Crush is a tool for building software with AI.

Installation

Nightly builds are available while Crush is in development.

You can also just install it with go:

git clone git@github.com:charmbracelet/crush.git
cd crush
go install

Note that Crush doesn't support Windows yet, however Windows support is planned and in progress.

Getting Started

For now, the quickest way to get started is to set an environment variable for your preferred provider. Note that you can switch between providers mid- sessions, so you're welcome to set environment variables for multiple providers.

Environment VariableProvider
ANTHROPIC_API_KEYAnthropic
OPENAI_API_KEYOpenAI
GEMINI_API_KEYGoogle Gemini
VERTEXAI_PROJECTGoogle Cloud VertexAI (Gemini)
VERTEXAI_LOCATIONGoogle Cloud VertexAI (Gemini)
GROQ_API_KEYGroq
AWS_ACCESS_KEY_IDAWS Bedrock (Claude)
AWS_SECRET_ACCESS_KEYAWS Bedrock (Claude)
AWS_REGIONAWS Bedrock (Claude)
AZURE_OPENAI_ENDPOINTAzure OpenAI models
AZURE_OPENAI_API_KEYAzure OpenAI models (optional when using Entra ID)
AZURE_OPENAI_API_VERSIONAzure OpenAI models

Configuration

For many use cases, Crush can be run with no config. That said, if you do need config, it can be added either local to the project itself, or globally. Configuration has the following priority:

  1. .crush.json
  2. crush.json
  3. $HOME/.config/crush/crush.json

LSPs

Crush can use LSPs for additional context to help inform its decisions, just like you would. LSPs can be added manually like so:

{
  "lsp": {
    "go": {
      "command": "gopls"
    },
    "typescript": {
      "command": "typescript-language-server",
      "args": ["--stdio"]
    },
    "nix": {
      "command": "alejandra"
    }
  }
}

OpenAI-Compatible APIs

Crush supports all OpenAI-compatible APIs. Here's an example configuration for Deepseek, which uses an OpenAI-compatible API. Don't forget to set DEEPSEEK_API_KEY in your environment.

{
  "providers": {
    "deepseek": {
      "provider_type": "openai",
      "base_url": "https://api.deepseek.com/v1",
      "models": [
        {
          "id": "deepseek-chat",
          "model": "Deepseek V3",
          "cost_per_1m_in": 0.27,
          "cost_per_1m_out": 1.1,
          "cost_per_1m_in_cached": 0.07,
          "cost_per_1m_out_cached": 1.1,
          "context_window": 64000,
          "default_max_tokens": 5000
        }
      ]
    }
  }
}

Whatcha think?

We’d love to hear your thoughts on this project. Feel free to drop us a note!

License

MIT


Part of Charm.

The Charm logo

Charm热爱开源 • Charm loves open source