Docs · Guide

Crush on any model

Crush, Charm’s coding agent for the terminal, runs on the providers in its config. magpie adds itself to Crush as a provider, so Crush can run on any model you have in magpie: DeepSeek, Kimi, GLM, Qwen, an OpenAI key, or a ChatGPT or Copilot subscription, with no key pasted into Crush.

Crush’s config is ~/.config/crush/crush.json (under $XDG_CONFIG_HOME if set; %LOCALAPPDATA%\crush on Windows). magpie adds providers.magpie there, with the gateway’s address, a key of Crush’s own and magpie’s models, and sets the models Crush runs on. The gateway translates each request for the model’s provider, tool calls and reasoning included. A Crush in WSL is set up the same way, reaching the gateway as the distro sees it.

Connect Crush

  1. Add providers in magpieIn the Providers tab, add an API key or sign in to a subscription.
  2. Pick a model on Crush’s rowIn the Agents tab, choose Crush’s large model, and its small one if you like.
  3. Start crushmagpie’s models are in Crush’s own model picker too, under magpie.
Terminal
magpie crush deepseek/deepseek-v4-pro     # Crush's large model on DeepSeek
magpie crush small deepseek/deepseek-v4-flash
magpie crush                              # what Crush runs on now

Large, small and effort

Crush has two model slots: large for the work and small for lighter tasks. Each can be any model, magpie’s or one of your own providers’. The row also sets the large model’s reasoning_effort: low, medium or high.

Terminal
magpie crush effort high
magpie crush effort default    # back to Crush's own

The two files

Crush saves the models its own picker chooses to a data file, ~/.local/share/crush/crush.json (under $XDG_DATA_HOME if set), which wins over the config. So magpie writes the picks there too, where Crush writes them, and its provider stays in the config. When magpie picks a model, settings Crush’s picker saved for the previous model, such as its max_tokens, are dropped, so a limit meant for one model doesn’t reach another. Keys you added to magpie’s provider yourself stay when magpie rewrites the models.

Switch back

Pick one of your own providers’ models for both slots, take the row off magpie, or run magpie crush default. Once neither slot uses a model of magpie’s, magpie removes its provider from crush.json.

FAQ

Can Crush use my ChatGPT subscription?

Yes. Sign in to ChatGPT in magpie and pick a GPT model on Crush’s row. Crush sends its requests to magpie, which uses the subscription.

Which wins, a pick in magpie or one in Crush?

The latest. Both are saved to Crush’s data file, so the last model picked, on Crush’s row or in Crush’s own picker, is the one Crush uses.

What is Crush’s small model for?

Lighter tasks next to the main work. Set it on Crush’s row as small, to any model.

Does it work with Crush in WSL?

Yes. magpie sets up a Crush in a WSL distro too, with the gateway’s address as the distro reaches it.

More agents on the same models: Models in OpenCode, Models in Claude Code and Zed on any model. Something fails? See Fixing common errors, or ask on Discord.