Lyber
Request access
DocsCrush

Agents

Markdown

Crush

Charm's terminal agent, as an OpenAI-compatible provider.

Easy setup

Copy this prompt into Crush itself or any coding agent you use, such as Claude Code, Codex or Cursor. It adds Lyber to Crush's settings, keeps your key out of every file, and checks the connection without spending credit.

crush-lyber-setup.txt
Set up Crush on this computer to use Lyber, an OpenAI-compatible API.

Lyber:
- Base URL: https://lyber-paid-acceptance-gateway-production.up.railway.app/v1
- Models: minimax-m3.1-flash-abliterated (default; 1,048,576-token context, 32,768-token output) and deepseek-v4.1-flash-1017-abliterated (1,048,576-token context, 262,144-token output)
- API key: in the LYBER_API_KEY environment variable. Never print it, never write it into a file, and never ask me to paste it into this chat.

Do this:
1. Open ~/.config/crush/crush.json. If it exists, copy it to ~/.config/crush/crush.json.bak first, then merge these settings into it and keep everything else. If it doesn't exist, create it with exactly this:

{
  "$schema": "https://charm.land/crush.json",
  "providers": {
    "lyber": {
      "name": "Lyber",
      "type": "completions",
      "base_url": "https://lyber-paid-acceptance-gateway-production.up.railway.app/v1",
      "api_key": "$LYBER_API_KEY",
      "models": [
        { "id": "minimax-m3.1-flash-abliterated", "name": "MiniMax M3.1 Flash", "context_window": 1048576, "default_max_tokens": 32768 },
        { "id": "deepseek-v4.1-flash-1017-abliterated", "name": "DeepSeek V4.1 Flash 1017", "context_window": 1048576, "default_max_tokens": 262144 }
      ]
    }
  },
  "models": {
    "large": { "provider": "lyber", "model": "minimax-m3.1-flash-abliterated" },
    "small": { "provider": "lyber", "model": "deepseek-v4.1-flash-1017-abliterated" }
  }
}

2. If Crush isn't installed, tell me to run: npm install -g @charmland/crush
3. If LYBER_API_KEY isn't set in my shell, tell me to add export LYBER_API_KEY="…" to my shell profile myself and open a new terminal.
4. Check the key without spending credit. This should print 200:
curl -s -o /dev/null -w "%{http_code}\n" https://lyber-paid-acceptance-gateway-production.up.railway.app/v1/models -H "Authorization: Bearer $LYBER_API_KEY"
5. Tell me what you changed and how to start Crush on Lyber: crush
Don't send a chat request through Lyber unless I ask.

Manual setup

1. Install Crush

terminal
npm install -g @charmland/crush

2. Put your key in your environment

Add this to your shell profile (~/.zshrc or ~/.bashrc) and open a new terminal.

terminal
export LYBER_API_KEY="lyber_prepaid_…"

3. Add Lyber to ~/.config/crush/crush.json

Keep any settings already in the file; add these beside them.

crush.json
{
  "$schema": "https://charm.land/crush.json",
  "providers": {
    "lyber": {
      "name": "Lyber",
      "type": "completions",
      "base_url": "https://lyber-paid-acceptance-gateway-production.up.railway.app/v1",
      "api_key": "$LYBER_API_KEY",
      "models": [
        { "id": "minimax-m3.1-flash-abliterated", "name": "MiniMax M3.1 Flash", "context_window": 1048576, "default_max_tokens": 32768 },
        { "id": "deepseek-v4.1-flash-1017-abliterated", "name": "DeepSeek V4.1 Flash 1017", "context_window": 1048576, "default_max_tokens": 262144 }
      ]
    }
  },
  "models": {
    "large": { "provider": "lyber", "model": "minimax-m3.1-flash-abliterated" },
    "small": { "provider": "lyber", "model": "deepseek-v4.1-flash-1017-abliterated" }
  }
}

4. Start Crush

terminal
crush

Notes

  • $LYBER_API_KEY is read from your environment when Crush starts.
  • The small model handles titles and summaries on the other Lyber model, so it never waits for the large one.
  • Crush sends 26 tools of its own. Lyber accepts up to 32 per request, so add MCP servers sparingly.