guide
Crush
Charmbracelet’s terminal agent. Provider is openai-compat in crush.json.
Three fields. Copy, don’t type
url
https://cheapai.lol/v1
model
claude-opus-4.8
terminal
{
"$schema": "https://charm.land/crush.json",
"providers": {
"cheapai": {
"type": "openai-compat",
"base_url": "https://cheapai.lol/v1",
"api_key": "sk-…",
"models": [
{ "id": "claude-opus-4.8", "name": "claude-opus-4.8", "context_window": 200000 }
]
}
}
}
Do it in order. Don’t skip
Install Crush from the Charmbracelet site.
Create crush.json — either in your project folder or your home one: ~/.config/crush/crush.json on macOS and Linux, C:\Users\YourName\.config\crush\crush.json on Windows.
Windows Explorer won't create a folder starting with a dot — do it in PowerShell: mkdir "$env:USERPROFILE\.config\crush" -Force
Paste the block from the card below and replace sk-… with your full key.
The provider type must be openai-compat and the address must end with /v1.
Run crush, pick the cheapai provider and model claude-opus-4.8, type “hi”.
Check
Crush replied in the terminal.
If it didn’t start
- “401 / unauthorized / invalid api key” — the key was not copied whole. It starts with sk- and has no space at either end.
- “model not found” / “named models unavailable” / model in red — the name must match exactly: claude-opus-4.8. Not “Opus 5”, not opus, not claude-3, not gpt-4.
- The app shows no models — reopen its settings page: the model list is served from our address and appears once the Base URL and key are right.
- “Connection error” / spinner and silence — wrong Base URL. Almost every app wants the address with a /v1 tail.
- “/v1/v1” in the error — the app appends /v1 itself. Drop the tail, leave the site address.
- It replied, then stopped — you ran out of tokens. The balance is in your dashboard. Topping up on FunPay from the same nick lands on the same key.