Docs · Guide
Every magpie model in Paseo
Paseo (getpaseo/paseo) is an app that runs Claude Code, Codex and others for you. It starts the same Claude Code, so a Claude Code connected to magpie goes through magpie in Paseo too. But Paseo lists models itself, and most of the models magpie serves aren't in its picker. magpie writes them into Paseo's own additionalModels, so Paseo's Claude model picker offers every model you have in magpie: DeepSeek, GLM, Kimi, Qwen, GPT or a ChatGPT subscription.
Set up Paseo
- Connect Claude Code to magpie firstOn magpie's Agents page, pick a magpie model for Claude Code. The ids Paseo lists are served by a Claude Code that is on magpie.
- Switch Paseo's row onWith a
~/.paseofolder, magpie has a Paseo row. Pick magpie: every magpie model in Paseo's Claude model picker. - Restart Paseo's daemonPaseo reads its model list when its daemon starts; after a restart magpie's models are there.
magpie claude deepseek/deepseek-v4-pro # Claude Code on magpie first magpie paseo magpie # every magpie model in Paseo's picker
Why Paseo needs its own switch
Claude Code's own /model reads modelPicker in ~/.claude/settings.json, where magpie writes every model when it connects Claude Code. Paseo never reads modelPicker: its list is its own first-party models plus settings.json's model and a few ANTHROPIC_*_MODEL tier variables. So with only Claude Code connected, magpie's models other than the main one and the tiers aren't in Paseo's picker. Paseo also appends agents.providers.claude.additionalModels from its own config, each id passed to Claude Code as written, and that is where magpie writes.
What magpie writes
Paseo's folder is PASEO_HOME, else ~/.paseo. In config.json magpie adds one {id, label, description} entry per model to agents.providers.claude.additionalModels: the same ids, [1m] marks and names as Claude Code's /model, with a description ending via magpie, which is how magpie knows its own entries.
// ~/.paseo/config.json
{"agents": {"providers": {"claude": {"additionalModels": [
{"id": "my-own-model", "label": "…", "description": "…"},
{"id": "…", "label": "…", "description": "via magpie"},
{"id": "…", "label": "…", "description": "1M context · via magpie"}
]}}}}Your own entries keep their place and come first. An id you listed yourself stays yours, and magpie doesn't add it again. A list magpie can't read is left as it is. When magpie's models change, magpie updates its entries.
When it takes effect
Paseo reads its model list when its daemon starts, so restart Paseo's daemon to see magpie's models; magpie says so while Paseo is running. Claude Code itself must be connected to magpie too, for those ids to be served.
Switching back
Set Paseo's row back to default in magpie: magpie takes out only the entries whose description ends via magpie, and yours stay; with none left, additionalModels goes.
magpie paseo default
FAQ
Why doesn't Paseo's model picker show magpie's models?
Paseo doesn't read Claude Code's modelPicker; it lists its own models, settings.json's model and a few ANTHROPIC_*_MODEL variables. Switch Paseo's row on in magpie and magpie writes every model into Paseo's additionalModels.
Does Claude Code need to be connected first?
Yes. Paseo passes those ids as written to the Claude Code it starts, and magpie serves them once Claude Code is connected to magpie.
I switched it on and still see nothing. Why?
Paseo reads its model list when its daemon starts. Restart Paseo's daemon.
Will my own additionalModels be changed?
No. magpie adds and removes only entries whose description ends via magpie; yours come first and keep their place.
More agents on the same models: Models in Claude Code, T3 Code on any model and Craft Agents on any model. Something fails? See Fixing common errors, or ask on Discord.