Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/attentiondotnet-pi-custom-model
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/pi-custom-model
What's inside
- Skill name
pi-custom-model- Description
- 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".
- License
- MIT
- Instructions
- 48 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Pi custom / variant model
## When to use
Pi's saved default only loads if the exact `provider/id` exists in its model registry. Pi ships a static bundled list per provider — so OpenRouter **routing-shortcut variants** (`:nitro` = sort by throughput, `:floor` = cheapest, `:exacto` = quality tool-use) and any brand-new slug are NOT in it. When the default doesn't resolve, Pi silently falls through to its built-in per-provider default (for openrouter that's `moonshotai/kimi-k2.6`) — looking like Pi "reset" your model. Fix = register the slug as a custom model so `find(provider, id)` matches.
## Files (global)
- `~/.pi/agent/settings.json` — `defaultProvider`, `defaultModel`, `defaultThinkingLevel`
- `~/.pi/agent/models.json` — custom models, keyed by provider
- `~/.pi/agent/auth.json` — provider credentials (check the provider key exists)
## Steps
1. **Confirm the slug is real** before adding it (e.g. check the OpenRouter model/variant exists). A typo'd id also silently falls back.
2. **Confirm auth.** The provider must have a key in `auth.json` (or an env var like `OPENROUTER_API_KEY`). No auth → the model is registered but unavailable → still falls back.
3. **Add the model to `models.json`** under `providers.<provider>.models`. For a **built-in provider** (openrouter, anthropic, etc.) you only supply metadata — `api`, `baseUrl`, and auth are inherited from the bundled defaults. Example:
```json
{
"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" }
}
]
}
}
}
```
Copy `cost`/`contextWindow`/`compat` from the base model (the variant shares them) — find the bundled entry in `<pi-pkg>/node_modules/@earendil-works/pi-ai/dist/providers/<provider>.models.js`. Don't hardcode generic 128k/16k if the real model is bigger.
4. **Set the default** in `settings.json`: `defaultProvider` + `defaultModel` = the exact id. Leave `defaultThinkingLevel` as the user has it.
5. **Verify:** `pi --list-models | grep <id>` shows it, and JSON parses. Optionally smoke-test: `pi --provider <p> --model "<id>" "which model are you?"`.
## Quirks
- **Exact match only.** `find()` is exact `provider`+`id` — no fuzzy/colon-stripping for the *saved default* path. The slug in `settings.json` and `models.json` must be byte-identical.
- **Silent fallback.** Pi prints no error when the default doesn't resolve; it just shows a different model in the footer. That's the tell.
- **Don't edit `settings.json` alone.** Setting `defaultModel` to an unregistered slug does nothing — `models.json` is the actual fix.
- **`enabledModels`** (optional) pins the model picker so Ctrl+P cycling can't drift back: `"enabledModels": ["<provider>/<id>:<thinking>"]`.
- **Project override.** A repo's `.pi/settings.json` overrides global. If a default reverts only inside one project, check that file first.
- Restart Pi fully — the registry loads at startup.From attentiondotnet/davidondrej-skills, MIT.
More from attentiondotnet/davidondrej-skills
- 0.542score
folder-specific-claude-and-agents-md
attentiondotnet
Create a specialized CLAUDE.md (+ AGENTS.md symlink) inside a specific folder to give future agents folder-scoped context.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
brain-to-docs
attentiondotnet
Use when the user wants to extract project vision, decisions, and preferences from his head into clear documentation (README + ADRs) through a back-and-forth…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
setup-help
attentiondotnet
Walk the user through setting up anything step by step.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
research-prompt
attentiondotnet
Write a single-paragraph Deep Research prompt to hand to a human researcher (or a deep-research AI).
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
youtube-transcript
attentiondotnet
Use whenever the user needs the transcript of a YouTube video — fetching, extracting, downloading, or pulling captions/subtitles/transcript text from a…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
distribute-skill-to-all-agents
attentiondotnet
Distribute a skill across the 4 agent skill folders (Codex, Claude Code, Pi, Hermes) so all agents see it.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
push-skill-to-github
attentiondotnet
Commit and push agent-skill changes to the user's private skills GitHub repo (your-org/private-skills, rooted at ~/.agents).
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
fable-safe-prompt
attentiondotnet
Rewrite a user's prompt to reduce the chance it trips Claude Fable 5's server-side safety classifiers (cyber/bio guardrails that force-route to Opus 4.8 or…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
goal-loop
attentiondotnet
Explain and write effective instructions for the `/goal` feature — the persistent self-checking agent loop (plan → act → test → review → iterate), available…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
markdown-rendering
attentiondotnet
How to reliably open a markdown file in a cmux right pane without it rendering blank.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
run-deep-swe
attentiondotnet
Score any AI model on the DeepSWE coding-agent benchmark via the OpenRouter API.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
anti-sleep
attentiondotnet
Keep the user's MacBook awake with macOS caffeinate — prevent sleep, screen dimming, or both, for a set duration or while a process runs.
SkillCFreshness: C★ 11Claude Code +9
Signals
- Stars
- 11
- Forks
- 0
- Open issues
- 0
- Last commit (this folder)
- Jul 6, 2026 (3 months ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- MIT
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from attentiondotnet
- 0.542score
anti-sleep
attentiondotnet
Keep the user's MacBook awake with macOS caffeinate — prevent sleep, screen dimming, or both, for a set duration or while a process runs.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
fable-safe-prompt
attentiondotnet
Rewrite a user's prompt to reduce the chance it trips Claude Fable 5's server-side safety classifiers (cyber/bio guardrails that force-route to Opus 4.8 or…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
goal-loop
attentiondotnet
Explain and write effective instructions for the `/goal` feature — the persistent self-checking agent loop (plan → act → test → review → iterate), available…
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
run-deep-swe
attentiondotnet
Score any AI model on the DeepSWE coding-agent benchmark via the OpenRouter API.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
markdown-rendering
attentiondotnet
How to reliably open a markdown file in a cmux right pane without it rendering blank.
SkillCFreshness: C★ 11Claude Code +9 - 0.542score
setup-help
attentiondotnet
Walk the user through setting up anything step by step.
SkillCFreshness: C★ 11Claude Code +9
Cite this page
pi-custom-model skill. Agent Mart. https://agentmart.dev/skills/attentiondotnet-pi-custom-model (last updated 2026-10-24)