oh-my-open-pi

Pi Coding Agent extension package for model routing, tools, background tasks, and safety hooks.

Package details

extensionskillprompt

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 里可用,或在本配置文件里注册。

全量模型路由配置

下面是一份完整的 agentscategories 路由示例,可以按你的团队模型策略直接调整:

{
  "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: 模型档位,例如 lowhighxhighmax
  • reasoningEffort: 推理强度。OpenAI Codex 使用 minimallowmediumhighxhigh;DeepSeek 使用 highmax;Anthropic 使用 minimallowmediumhighxhigh,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