
Oh My Pi (omp) 是终端 AI 编程代理中功能最全的一个,GitHub 17.7k+ stars,MIT 协议。32 个内置工具、LSP/DAP 集成、子代理、浏览器控制、55k 行 Rust 原生核心。本文覆盖安装配置、日常使用、高级技巧和真实案例。
什么是 Oh My Pi
Oh My Pi(简称 omp)是一个终端 AI 编程代理,fork 自 Mario Zechner 的 Pi,由 Can Bölük 重写为编码优先的工具。和 Claude Code、Codex CLI 是竞品。
核心特性:
- 开源(MIT),~55k 行 Rust 核心,跨平台原生
- 32 个内置工具(读写文件、搜索、shell、LSP、调试器、浏览器、子代理……)
- 40+ 模型 provider,自定义 models.yml 接入任何 OpenAI 兼容端点
- Hashline 编辑格式:基于内容哈希锚点,编辑精准、省 token
- 子代理(subagents):并行任务分发,隔离工作区
- LSP 深度集成:重命名、引用查找、诊断——IDE 知道的它都知道
- DAP 调试器:lldb、dlv、debugpy,直接附加进程调试
- 浏览器驱动:Puppeteer 控制 Chromium 或 Electron 应用
- MCP 支持:标准化外部工具接入
- 25 个搜索后端:auto 模式自动链式查找
和竞品对比:
| 开源 | MIT | 闭源 | Apache-2.0 | MIT |
| 语言 | TypeScript + Rust | TypeScript | TypeScript | Go |
| 内置工具 | 32 个 | ~15 个 | ~10 个 | ~12 个 |
| LSP 集成 | 14 个操作 | 有限 | 无 | 基础诊断 |
| 调试器 | DAP (28 ops) | 无 | 无 | 无 |
| 浏览器 | 内置 Puppeteer | 无 | 无 | 无 |
| 子代理 | 内置 task | 无 | 无 | 有 agent 工具 |
| 编辑方式 | Hashline(哈希锚点) | str_replace | apply_patch | edit/patch |
| 原生性能 | Rust N-API in-process | Node | Node | Go native |
简单说:omp 是功能最全的——别人需要装插件的东西它出厂自带。代价是体积更大、配置项更多。
安装
各平台安装命令
# macOS / Linux(推荐)
curl -fsSL https://omp.sh/install | sh
# Homebrew
brew install can1357/tap/omp
# Bun(推荐,最快)
bun install -g @oh-my-pi/pi-coding-agent
# Windows PowerShell
irm https://omp.sh/install.ps1 | iex
WSL 用户推荐用 bun 安装(避免权限问题,安装到 ~/.bun/bin):
bun –version || npm install -g bun
bun install -g @oh-my-pi/pi-coding-agent
hash -r; omp –version # 应显示 omp/16.x
⚠️ 别装在 /mnt/c 等 Windows 挂载盘上,I/O 慢。
配置 API 接入
omp 通过 ~/.omp/agent/models.yml 配置自定义模型 provider。以七牛云为例:
providers:
qiniu:
baseUrl: https://api.qnaigc.com/v1
api: openai–completions
apiKey: sk–your–api–key
authHeader: true
models:
– id: gpt–5.5
name: GPT–5.5
reasoning: true
input: [text, image]
contextWindow: 400000
maxTokens: 128000
– id: openai/gpt–5.6–sol
name: GPT–5.6 Sol
reasoning: true
input: [text, image]
contextWindow: 400000
maxTokens: 128000
获取 API Key:
验证配置:
omp models find qiniu # 应显示你配的模型
omp –model gpt-5.5 -p "你好"
日常使用
启动方式
# 交互模式(默认)
cd my-project
omp
# 指定模型
omp –model "DeepSeek-V4-Pro"
# 单次命令
omp -p "解释这个项目的架构"
# 继续上次会话
omp -c
omp –resume # 选择历史会话
核心快捷键
| Ctrl+P | 切换模型(在配置的模型间循环) |
| Ctrl+G | 查看子代理状态 |
| Esc Esc | 会话树/分支 |
| Ctrl+C | 中断当前生成 |
常用斜杠命令
/model # 切换模型
/mcp # 查看 MCP server 状态
/review # 代码审查
/collab # 协作分享会话
/debug # 调试面板
/advisor # 开启/查看 advisor 模型状态
单次命令示例
# 理解项目
omp -p "解释这个项目的架构,列出核心模块依赖关系"
# 写代码
omp -p "实现一个 LRU Cache,支持 TTL 过期"
# 修 Bug
omp -p "运行测试,分析失败用例,修复它们"
# 重构
omp -p "把这个文件的回调地狱改成 async/await"
# Git 操作
omp -p "看 main..HEAD 的 diff,写一个清晰的 PR 描述"
模型角色系统
omp 有独特的模型角色设计,按任务意图路由不同模型:
| default | 正常对话/编码 | –model |
| smol | 廉价子代理 fan-out | –smol |
| slow | 深度推理 | –slow |
| plan | 规划模式 | –plan |
实用配置策略:
# 默认用 DeepSeek V4 Flash(快、便宜)
# 复杂任务切 GPT-5.6 Sol
# 子代理用 GPT-5.4 Mini
omp –model "DeepSeek-V4-Flash" –slow "gpt-5.6-sol" –smol "gpt-5.4-mini"
Ctrl+P 在当前角色的模型间循环切换。
高级玩法
1. 子代理(Subagents)
omp 的杀手锏之一。把任务拆分成多个并行 worker:
> 帮我重构 src/services/ 下的 5 个文件,每个文件转成 TypeScript 并加类型注解
omp 会自动用 task 工具 spawn 多个子代理,每个处理一个文件,互不干扰。
2. Plan 模式
先规划再执行:
omp –plan-yolo "把这个项目从 CommonJS 迁移到 ESM"
agent 先用 plan 模型制定方案,确认后切到执行模型实施。
3. Advisor(顾问模型)
开启后,一个独立模型实时审阅主 agent 的每一步:
omp config set advisor.enabled true
顾问发现问题会内联提示(concern/blocker),主 agent 看到后自行修正。
4. LSP 深度操作
不只是诊断——支持重命名、查找引用、跳转定义、代码操作:
> 把 getUserName 重命名为 getUsername,确保所有引用都更新
omp 调用 lsp 工具的 workspace/willRenameFiles,barrel files、re-exports 全部自动更新。
5. 调试器集成
> 这个程序段错误了,帮我用 lldb 附加调试找到问题
omp 通过 DAP 协议驱动 lldb/dlv/debugpy,能设断点、单步、查看变量、评估表达式。
6. 浏览器控制
> 打开 http://localhost:3000,截个图看看页面渲染是否正确
内置 Puppeteer 驱动,隐身模式默认开启。还能控制 Electron 应用(如 Slack)。
7. 协作会话
/collab # 生成共享链接 + 二维码
/collab view # 只读分享
别人用 omp join <link> 或浏览器加入,实时协作。端到端加密,relay 看不到内容。
8. 记忆系统(Hindsight)
omp config set memory.backend hindsight
agent 跨会话记住你的项目:用 retain 写入事实,recall 检索,reflect 综合分析。项目级隔离。
9. MCP 扩展
~/.omp/agent/mcp.json 注册外部工具:
{
"mcpServers": {
"imagegen": {
"command": "npx",
"args": ["-y", "tsx", "~/projects/imagegen-mcp/src/server.ts"],
"env": { "SILICONFLOW_API_KEY": "sk-xxx" }
}
}
}
10. 自动继承其他工具配置
omp 自动读取 .claude/、.cursor/、.codex/、.cline/、.vscode/ 等目录的规则和 MCP 配置。不需要迁移。
性能调优
Thinking Level
omp –thinking high # 复杂任务
omp –thinking low # 简单问答
omp –thinking max # 最深度推理
Prewalk 模式
规划完成后自动切到便宜模型执行:
omp –prewalk –prewalk-into "gpt-5.4-mini"
Fallback 链
模型 429 时自动降级:
# 在 config.yml 中
retry:
fallbackChains:
"gpt-5.6-sol": ["gpt-5.5", "gpt-5.4-mini"]
真实案例
案例 1:大规模重构
omp –model "gpt-5.6-sol" –thinking high
> 这是一个 Express + JS 项目,帮我:
> 1. 分析模块依赖
> 2. 从底层开始逐个转 TypeScript
> 3. 每转完一个文件就跑测试确认没破坏
omp 会用 subagents 并行处理独立模块,用 LSP 确保类型正确。
案例 2:调试 segfault
omp –model "DeepSeek-V4-Pro"
> 编译运行 src/main.c,程序 segfault 了。
> 用 lldb 附加调试,找到崩溃位置和原因,修复它。
案例 3:PR Review
omp
/review main..feature-branch
spawn 专门的 reviewer subagent,按 P0-P3 分级输出问题和 verdict。
常见问题
omp 免费吗?
omp 本身开源免费。需要 API(按量付费)。用七牛云/SiliconFlow 等国内中转即可。
启动后默认是 gemma4:31b-cloud?
models.yml 没放对位置。必须在 ~/.omp/agent/models.yml。用 omp config path 确认。
和 Claude Code 选哪个?
omp 工具最全(调试器、浏览器、子代理都内置),适合重度终端用户。Claude Code 推理强但功能少。建议都装。
支持哪些模型?
40+ provider 内置,任何 OpenAI/Anthropic 兼容端点都能通过 models.yml 接入。
Tip: Please use nerdfont?
运行 omp config set symbolPreset nerd,终端字体设为 Nerd Font。

![[特殊字符]DeepSeek‑Harness(DSH)小白保姆教程-171主机测评](https://www.171host.com/wp-content/uploads/2026/08/20260816085112-6a817a009aabf-220x150.png)
