Loading...
Loading...
Register a custom or variant model (e.g. an OpenRouter ":nitro" / ":floor" / ":exacto" slug) in the Pi Agent so it can be set as the global default. Use when Pi silently falls back to a different model (e.g. moonshotai/kimi-k2.6) after setting defaultModel, or when a model slug isn't in Pi's bundled list. Triggers on "Pi reset my model", "Pi won't use this model", "add a model to Pi", "Pi default keeps reverting".
npx skill4agent add davidondrej/skills pi-custom-modelprovider/id:nitro:floor:exactomoonshotai/kimi-k2.6find(provider, id)~/.pi/agent/settings.jsondefaultProviderdefaultModeldefaultThinkingLevel~/.pi/agent/models.json~/.pi/agent/auth.jsonauth.jsonOPENROUTER_API_KEYmodels.jsonproviders.<provider>.modelsapibaseUrl{
"providers": {
"openrouter": {
"models": [
{
"id": "z-ai/glm-5.2:nitro",
"name": "Z.ai: GLM 5.2 (nitro)",
"reasoning": true,
"thinkingLevelMap": { "xhigh": "xhigh" },
"input": ["text"],
"cost": { "input": 0.95, "output": 3, "cacheRead": 0.18, "cacheWrite": 0 },
"contextWindow": 1048576,
"maxTokens": 32768,
"compat": { "supportsDeveloperRole": false, "thinkingFormat": "openrouter" }
}
]
}
}
}costcontextWindowcompat<pi-pkg>/node_modules/@earendil-works/pi-ai/dist/providers/<provider>.models.jssettings.jsondefaultProviderdefaultModeldefaultThinkingLevelpi --list-models | grep <id>pi --provider <p> --model "<id>" "which model are you?"find()provideridsettings.jsonmodels.jsonsettings.jsondefaultModelmodels.jsonenabledModels"enabledModels": ["<provider>/<id>:<thinking>"].pi/settings.json