oh-my-open-pi
Pi Coding Agent extension package for model routing, tools, background tasks, and safety hooks.
Package details
Install oh-my-open-pi from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:oh-my-open-pi- Package
oh-my-open-pi- Version
0.1.3- Published
- May 4, 2026
- Downloads
- not available
- Author
- takltc
- License
- MIT
- Types
- extension, skill, prompt
- Size
- 83.6 KB
- Dependencies
- 2 dependencies · 5 peers
Pi manifest JSON
{
"extensions": [
"./src/index.ts"
],
"skills": [
"./skills"
],
"prompts": [
"./prompts"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
oh-my-open-pi
oh-my-open-pi 是一个 Pi Coding Agent 增强包。安装后可以在 Pi 里配置模型路由、agent 默认模型、任务分类模型、备用模型、工具开关、后台任务和安全规则。
安装
pi install npm:oh-my-open-pi
安装后打开配置界面:
pi config
启用 oh-my-open-pi,然后重启 Pi,或在 Pi 里执行:
/oh-my-open-pi-reload
配置文件
全局配置:
~/.pi/agent/oh-my-open-pi.jsonc
项目配置:
.pi/oh-my-open-pi.jsonc
项目配置优先级更高,适合给单个代码仓设置专属模型、agent 和工具策略。配置文件支持 JSONC,可以写注释。
最小模型路由配置
把下面内容放进 ~/.pi/agent/oh-my-open-pi.jsonc 或项目里的 .pi/oh-my-open-pi.jsonc:
{
"model_fallback": true,
"default_run_agent": "build",
"agents": {
"build": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"review": {
"model": "openai-codex/gpt-5.4",
"variant": "high",
"reasoningEffort": "high"
}
},
"categories": {
"quick": {
"model": "openai-codex/gpt-5.3-codex-spark",
"variant": "low",
"reasoningEffort": "low"
},
"deep": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
}
}
}
model 使用 provider/model 格式。provider 需要在 Pi 里可用,或在本配置文件里注册。
全量模型路由配置
下面是一份完整的 agents 和 categories 路由示例,可以按你的团队模型策略直接调整:
{
"model_fallback": true,
"default_run_agent": "build",
"agents": {
"hephaestus": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"oracle": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"librarian": {
"model": "zai/glm-5-turbo",
"variant": "high",
"reasoningEffort": "high"
},
"explore": {
"model": "zai/glm-5-turbo",
"variant": "high",
"reasoningEffort": "high"
},
"multimodal-looker": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"prometheus": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"metis": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"momus": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"atlas": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"sisyphus": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"sisyphus-junior": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
},
"build": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
},
"plan": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"OpenPi-Builder": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
},
"general": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
},
"frontend-ui-ux-engineer": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
},
"document-writer": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
}
},
"categories": {
"visual-engineering": {
"model": "kimi-coding/kimi-for-coding",
"variant": "high",
"reasoningEffort": "high"
},
"ultrabrain": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"deep": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"artistry": {
"model": "kimi-coding/kimi-for-coding",
"variant": "high",
"reasoningEffort": "high"
},
"quick": {
"model": "deepseek/deepseek-v4-flash",
"variant": "max",
"reasoningEffort": "max"
},
"unspecified-low": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
},
"unspecified-high": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"writing": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
},
"visual": {
"model": "kimi-coding/kimi-for-coding",
"variant": "high",
"reasoningEffort": "high"
},
"business-logic": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
},
"data-analysis": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
}
}
}
常用字段:
agents: 给具体 agent 指定模型。categories: 给任务分类指定模型。model: 主模型,格式是provider/model,Pi 内置 Kimi Coding Provider 写作kimi-coding/kimi-for-coding,Z.ai 写作zai/glm-5-turbo。variant: 模型档位,例如low、high、xhigh、max。reasoningEffort: 推理强度。OpenAI Codex 使用minimal、low、medium、high、xhigh;DeepSeek 使用high、max;Anthropic 使用minimal、low、medium、high、xhigh,Claude Opus 4.6 可用max。model_fallback: 开启备用模型策略。default_run_agent: 默认运行使用的 agent。fallback_models: 主模型失败时依次尝试的备用模型。tools: 控制某个 agent 或分类可用的工具。prompt_append: 给某个 agent 或分类追加固定提示。
使用 routing 包裹模型路由
你也可以把模型路由集中放在 routing 里:
{
"routing": {
"model_fallback": true,
"default_run_agent": "build",
"agents": {
"build": {
"model": "deepseek/deepseek-v4-pro",
"variant": "max",
"reasoningEffort": "max"
}
},
"categories": {
"deep": {
"model": "openai-codex/gpt-5.5",
"variant": "xhigh",
"reasoningEffort": "xhigh"
}
}
}
}
顶层写法和 routing 写法可以同时使用。项目配置会覆盖全局配置,同名 agent 或 category 会按项目配置生效。
注册 Provider
如果你要接入 OpenAI-compatible 网关,可以在 providers 里注册:
{
"providers": {
"my-gateway": {
"name": "My Gateway",
"baseUrl": "https://gateway.example.com/v1",
"apiKey": "MY_GATEWAY_API_KEY",
"api": "openai-responses",
"authHeader": true,
"models": [
{
"id": "gpt-5.4",
"name": "GPT-5.4",
"reasoning": true,
"input": ["text", "image"],
"cost": {
"input": 0,
"output": 0,
"cacheRead": 0,
"cacheWrite": 0
},
"contextWindow": 200000,
"maxTokens": 16000
}
]
}
},
"categories": {
"deep": {
"model": "my-gateway/gpt-5.4",
"variant": "high",
"reasoningEffort": "high"
}
}
}
apiKey 可以写环境变量名,运行 Pi 前把对应环境变量设好。
工具和安全规则
{
"disabled_tools": [],
"tools": {
"grep": true,
"glob": true,
"ast_grep": true,
"session": true,
"background": true,
"runtime": true
},
"background_task": {
"command": "pi",
"args": ["-p"],
"maxConcurrent": 4
},
"hooks": {
"bash_deny_patterns": [
"rm\\s+-rf\\s+/"
],
"protected_paths": [
".env",
".env.local",
".git"
],
"truncate_tool_output": {
"enabled": true,
"maxChars": 120000
}
},
"context": {
"enabled": true,
"message": "优先使用项目现有约定,修改前先读取相关文件。"
}
}
工具开关:
grep: 内容搜索。glob: 文件匹配。ast_grep: 结构化代码搜索和替换。session: 会话查看工具。background: 后台任务工具。runtime: 运行时状态工具。
常用命令
查看已安装包:
pi list
更新包:
pi update npm:oh-my-open-pi
查看当前启用的工具:
/oh-my-open-pi-status
重新加载扩展:
/oh-my-open-pi-reload
迁移溯源
迁移依据、Pi native contract、原始 oh-my-openagent 功能映射和验证闸门记录在 docs/migration-trace.md。
推荐配置方式
通用 provider、默认 agent、常用 category 放在全局配置里:
~/.pi/agent/oh-my-open-pi.jsonc
项目专属模型、受保护路径和上下文提示放在项目配置里:
.pi/oh-my-open-pi.jsonc