Crush Integration Guide
Crush Integration Guide
Crush is a powerful programming agent. The experience is somewhat similar to the Cline
plugin for VS Code
, but notably, as of September 22, 2025, it leverages models' native tool-calling capabilities.
📋 Prerequisites
Before getting started, please ensure you have completed the following steps:
- Ensure Chatspeed is installed
- Added the necessary models according to Quick Start
- Completed CCProxy Basic Configuration
- Added the required proxy models
- Configured the proxy key
For
Crush
, you can create a separate proxy group, but proxy groups are not a requirement.
🖥️ Crush Installation
Installation via package managers:
# Homebrew
brew install charmbracelet/tap/crush
# NPM
npm install -g @charmland/crush
# Arch Linux (btw)
yay -S crush-bin
# Nix
nix run github:numtide/nix-ai-tools#crush
For Windows users:
# Winget
winget install charmbracelet.crush
# Scoop
scoop bucket add charm https://github.com/charmbracelet/scoop-bucket.git
scoop install crush
For more installation methods, please refer to Crush
🔌 Integrating CCProxy with Crush
The simplest way to integrate CCProxy models with Crush is by editing the configuration file. Crush configuration files can be project-based or global, typically named crush.json
or .crush.json
. For global configuration, on macOS
or Linux
the file is $HOME/.config/crush/crush.json
, and on Windows
it is %USERPROFILE%\AppData\Local\crush\crush.json
For model configuration, I recommend using the global approach so you can use it in any project. The following example is for macOS
users.
- Edit
$HOME/.config/crush/crush.json
, create it if it doesn't exist - Add the model configuration to the file and save:
{
"$schema": "https://charm.land/crush.json",
"providers": {
"Chatspeed": {
"name": "Chatspeed",
"base_url": "http://localhost:11434/compat_mode/v1",
"type": "openai",
"api_key": "{API_KEY}",
"models": [
{
"name": "gemini2.5-flash",
"id": "gemini2.5-flash",
"context_window": 1000000,
"default_max_tokens": 8192
},
{
"name": "deepseek-r1-0528",
"id": "deepseek-r1-0528",
"context_window": 64000,
"default_max_tokens": 4096
},
{
"name": "deepseek-v3.1",
"id": "deepseek-v3.1",
"context_window": 128000,
"default_max_tokens": 8192
}
]
}
}
}
Where:
base_url
: I used the tool compatibility modecompat_mode
, which is very useful for some open-source platforms or models deployed withOllama
. If your configured model doesn't support native tool calling,crush
's tool calls might not function correctly. You can click Tool Compatibility Mode to understand its function. You can also check Proxy API to understand the proxy URL structure.API_KEY
: Please go to theChatspeed
menuProxy
and then selectProxy Access Key
. Please copy from the list. You can copy an existing key or create a dedicated one forCrush
.- All models added to the
models
array must be configured inChatspeed
. Please go to theChatspeed
menuProxy
and then enter theProxy Services
interface to configure.
🧪 Usage Testing
Following the above configuration, Crush
should now function correctly. Execute the crush
command in your project root directory to enter the crush
interface. Common shortcuts are as follows:
ctrl+p
Show command tool interfaceNew Session
Create a new sessionSwitch Session
Switch sessionSwitch Model
Switch modelToggle Yolo Mode
Toggle Yolo modeToggle Help
Toggle help mode—show more/fewer shortcut operation information at the bottomInitialize Project
Initialize project
ctrl+n
Create a new sessionshift+enter
Used for line breaks when entering in command line