Why Do We Need oh-my-pi?当编码 Agent 终于把 IDE 的能力带了进来
Pi 说「提供原语,不提供功能」。这个哲学很酷,但意味着你得自己搭子 Agent、装 MCP 适配器、配权限系统、加调试支持……配完 20 个包才能开始写代码。
oh-my-pi(omp)的回答是:不需要。 它是 Pi 的 fork,保留了所有扩展能力,但把开发者真正需要的东西直接内置——LSP 代码智能、调试器驱动、浏览器控制、结构化子 Agent、代码审查、冲突解决。32 个工具,开箱即用。
GitHub 7.4k star,MIT 协议,~27,000 行 Rust 原生核心。
这篇文章涵盖什么
- 为什么需要 oh-my-pi
- 18 个开箱即用的核心能力
- Hashline 编辑:精准到锚点的 patch
- Rust 原生核心:不 shell out
- 和 Pi 的关系与定位差异
为什么需要 oh-my-pi
用三个数字说明问题:
| Pi | oh-my-pi | |
|---|---|---|
| 内置工具 | 基础 5-6 个 | 32 个 |
| 需要额外安装的包 | 子 Agent、MCP、权限、TODO、浏览器…… | 0 个 |
| LSP 支持 | 扩展(需安装) | 13 个操作内置 |
Pi 的哲学是极简主义——你喜欢自己搭,Pi 是完美的底盘。但大多数开发者不想花一天配置工具链,只想开箱写代码。omp 就是给这些人准备的。
18 个开箱即用的核心能力
01. 代码执行 + 工具回调
不只是 Python 沙盒。omp 运行持久的 Python 和 Bun 内核,内核可以回调 Agent 自己的工具——在 Python 里用 tool.read 加载 CSV,用 JavaScript 画图表,全程不离开 cell。
02. LSP 接入每次写入
让 Agent 做重命名,它走 workspace/willRenameFiles——re-export、barrel file、别名导入全部同步更新。你的 IDE 知道的,Agent 也知道。
13 个 LSP 操作:诊断、导航、符号、重命名、代码操作、原始请求。
03. 驱动真实调试器
C 二进制 segfault?attach lldb,步进到坏指针。Go 服务挂起?attach dlv 遍历 goroutine。Python 进程卡住?debugpy 暂停、检查、求值。
27 个 DAP 操作。其他 Agent 还在撒 print 语句。
04. 时间旅行流规则(Stream Rules)
你的规则平时沉默,模型跑偏时才触发。正则匹配到违规内容,立刻中断输出流,注入规则作为系统提醒,从断点重试。不需要每个 turn 都付上下文税。注入后 survives compaction,修正是持久的。
05. 一等子 Agent
task 并行分发到隔离的 worktree,每个 worker 拥有独立的工具面,返回的是 schema-validated 的类型化结果——父 Agent 直接读取字段,不用解析自然语言。
06. 内置网页搜索 + URL 读取
web_search 链式调用 14 个搜索供应商,返回的 URL 直接用 read 工具读取。arxiv PDF、GitHub 页面、Stack Overflow 帖子全部转成结构化 Markdown,锚点完整保留。引用、跟进、引用,不会迷路。
07. 原生实现,不 shell out
其他 Agent 用 rg、grep、find、bash——每个调用都是 fork-exec。omp 把 ripgrep、glob、find、shell 全部链接进进程内。同一个 omp 二进制在 macOS、Linux、Windows 上运行,不需要 WSL。
08. 优先级代码审查
/review 生成 P0-P3 优先级排序的审查结果,每个问题带置信度分数。专用的 reviewer 子 Agent 并行扫描分支、单 commit 或未提交的工作。先解决阻碍发布的问题,重要的不会淹没在文本墙里。
09. Hashline 编辑:内容锚点 patch
模型用锚点指向要改的行,不需要重打整行。空白冲突和 string-not-found 循环消失了。编辑过期文件时锚点会偏移——patch 在破坏任何东西之前被拒绝。
Grok 4 Fast 在同样的工作上输出 token 减少 61%。
10. GitHub 就是文件系统
不需要 gh_issue_view、gh_pr_view 等一堆工具。read pr://1428 返回和 read src/foo.ts 相同的结构。一个接口教给模型,一个面保持正确。
11. Hindsight 记忆系统
Agent 跨会话记忆你的代码库。运行中用 retain 写入事实,用 recall 拉回,会话结束时压缩成心智模型,下次启动第一轮就加载。按项目隔离。
12. ACP 编辑器集成
在 Zed 里跑 omp,Agent 读你正在看的 buffer,通过编辑器的 save path 写入,在编辑器的终端里 spawn shell。破坏性工具暂停等待权限确认。无桥接、无插件、无第二大脑同步。
13. 继承已有规则
不需要迁移脚本。omp 直接读取 8 种格式的规则文件——Cursor MDC、Cline .clinerules、Codex AGENTS.md、Copilot applyTo 等。你团队上季度写的配置今晚仍然有效。
14. 原子化 commit
omp commit 读取工作树,把不相关的变更拆成原子 commit,按依赖排序。循环依赖被拒绝。源文件排在测试和文档前面,headline commit 是最重要的那个。Lock 文件完全排除在分析之外。
15. 内部 URL 方案
10 种内部 scheme——pr://、issue://、agent://、skill://、rule:// 等——在每个 FS 形状的工具里透明解析。read pr://1428 和 read src/foo.ts 返回相同结构。search 可以遍历 diff 像遍历目录。agent://<id>/findings.0.path 按 path 拉取子 Agent 的输出字段。
16. 冲突解决
每个 merge conflict 变成一个 URL。Agent 写 @theirs、@ours 或 @base 到 conflict://N,文件干净解决。批量:conflict://*。
17. 预览再接受
ast_edit 返回带替换计数的 (proposed) 卡片。变更暂存。Agent 调用 resolve 并附理由,TUI 变成 Accept 卡片,磁盘写入——原子操作,全有或全无。
18. 真实浏览器
默认开启 Stealth,页面看到的是正常用户而非 headless bot。同一个 API 可以驱动任何 Electron 应用——指向 Slack,Agent 像读网页一样读你的 DM。
40+ 模型供应商
直连 API + 网关 + 编码计划订阅 + 本地模型,全部混用:
| 类别 | 供应商 |
|---|---|
| 前沿 API | Anthropic、OpenAI、Google、xAI、Mistral、Groq、Cerebras、Fireworks 等 |
| 编码计划 | Cursor、GitHub Copilot、Kimi Code、MiniMax、Alibaba、Z.AI 等 |
| 本地 | Ollama、LM Studio、llama.cpp、vLLM |
四种角色路由:default(普通对话)、smol(便宜子 Agent)、slow(深度推理)、plan(计划模式)。支持 fallback chain 和 round-robin 凭证轮转。
27,000 行 Rust 原生核心
三个 crate,一个平台标记的 N-API addon。搜索、shell、AST、高亮、PTY、图片解码、BPE 计数——全部进程内运行,热路径上零 fork-exec。
| 模块 | 行数 | 功能 |
|---|---|---|
| shell | 3,700 | 嵌入式 bash、持久会话、超时/中断 |
| grep | 1,900 | 正则搜索、并行/串行、glob 过滤 |
| keys | 1,490 | Kitty 键盘协议 |
| text | 1,450 | ANSI 感知宽度、截断、SGR 保留换行 |
| summarize | 1,040 | tree-sitter 结构化源码摘要 |
| ast | 1,000 | ast-grep 模式匹配和结构重写 |
| 其他 12 个模块 | ~6,000 | 文件缓存、高亮、PTY、glob、workspace、图片、BPE 等 |
和 Pi 的关系
omp 是 Pi 的 fork,关系类似于 oh-my-zsh 和 zsh:
| 维度 | Pi | oh-my-pi |
|---|---|---|
| 哲学 | 极简,提供原语 | 开箱即用,batteries included |
| 内置工具 | 基础 5-6 个 | 32 个 |
| LSP | 扩展(安装) | 13 个操作内置 |
| 调试器 | 无 | 27 个 DAP 操作内置 |
| 子 Agent | 扩展(安装) | 内置,类型化结果 |
| 浏览器 | 扩展(安装) | 内置,Stealth 模式 |
| 代码审查 | 无 | /review,P0-P3 优先级 |
| Rust 核心 | 无 | ~27k 行原生实现 |
| 扩展兼容 | ✅ | ✅ 继承 Pi 的扩展系统 |
| 规则兼容 | Pi only | 8 种格式(Cursor/Codex/Copilot/...) |
| 包生态 | 3143 个社区包 | 继承 Pi 包 + 自有扩展 |
选择逻辑:喜欢从零搭建,选 Pi。想要开箱写代码,选 omp。
安装
# macOS / Linux
curl -fsSL https://omp.sh/install | sh
# Bun(推荐)
bun install -g @oh-my-pi/pi-coding-agent
# Windows PowerShell
irm https://omp.sh/install.ps1 | iex适用场景
- 想要开箱即用的开发者:32 个工具、LSP、调试器、子 Agent 全部内置
- 多模型用户:40+ 供应商,角色路由,fallback chain
- 代码审查:自动化 P0-P3 审查,不是格式化建议墙
- 跨平台:macOS/Linux/Windows 同一份二进制,不依赖系统工具
- IDE 集成:ACP 协议直接在 Zed 里跑
作者: itech001 来源: 公众号:AI人工智能时代 网站: https://www.theaiera.cn/ 每日分享最前沿的AI新闻资讯和技术研究。
本文首发于 AI人工智能时代,转载请注明出处。