GitHub 上有个叫 oh-my-pi(简称 omp)的项目——8,835 Stars,MIT 协议,定位是 "fork of pi by @mariozechner"。
简单说:作者在 pi 原版基础上,加了大量「开箱即用」的功能。
今天这篇不踩不捧,把两个版本摊开来聊——好在哪、差在哪、你该不该装。
重要的事先说:
omp 是 pi 的 fork,不是竞争者。
两者出自同一作者(Mario Zechner @badlogic),omp 在 pi 基础上加功能,然后再合并回主线。
所以选哪个,不是「非此即彼」,而是「你想要多还是想要少」。
从 GitHub 源码提取的实际数据:
amazon-bedrock · anthropic · azure-openai-responses · cerebras
cloudflare-ai-gateway · cloudflare-workers-ai · deepseek · fireworks
github-copilot · google · google-vertex · groq · huggingface
kimi-coding · minimax · minimax-cn · mistral · moonshotai · moonshotai-cn
openai · openai-codex · opencode · opencode-go · openrouter
together · vercel-ai-gateway · xai · xiaomi · xiaomi-token-plan-ams
xiaomi-token-plan-cn · xiaomi-token-plan-sgp · zai
分为三类:
| 类别 | 数量 | 代表 |
|---|---|---|
| Frontier APIs(直连) | 19 | Anthropic、OpenAI Codex、Gemini、xAI、Mistral、Groq、Cerebras、Fireworks、Together、Hugging Face、NVIDIA、OpenRouter、Cloudflare AI Gateway... |
| Coding Plans(订阅) | 19 | Cursor、GitHub Copilot、GitLab Duo、Kimi Code、MiniMax Coding Plan、阿里 coding plan、Qwen Portal、Z.AI / GLM Coding Plan、小米 MiMo、Qianfan... |
| Run it yourself(本地) | 6+ | Ollama、LM Studio、llama.cpp、vLLM、LiteLLM |
两个版本对国内模型的支持都很全:
| 模型 | pi 原版 | omp |
|---|---|---|
| Kimi (Moonshot) | ✅ | ✅ |
| Kimi Code | ✅ | ✅(Coding Plan) |
| MiniMax | ✅ | ✅(Coding Plan) |
| 阿里通义 | ❌ | ✅(Coding Plan) |
| 字节 Z.AI / 智谱 GLM | ❌ | ✅(Coding Plan) |
| 小米 MiMo | ✅ | ✅(Coding Plan) |
| DeepSeek | ✅ | ✅ |
| 功能 | pi 原版 | omp |
|---|---|---|
| 内置工具 | ~15 个 | 32 个 |
| Provider | 32 个 | 40+ 个 |
| 编辑格式 | 行号锚点 | Hashline(内容哈希锚点) |
Hashline 是什么意思?简单说:AI 改代码时不再靠「猜测行号」,而是根据代码内容生成唯一哈希——改对的可能性更高,减少重复重试。
这是 omp 和 pi 拉开差距最大的地方。
pi 原版的 read/edit 就是读文件和改文件。但 omp 把 LSP(Language Server Protocol)直接接入了 Agent:
相当于给 AI 发了一本项目字典,AI 能「看懂」代码结构,而不是盲目搜索字符串。
大多数 Agent 调代码的方式是「改 → 跑 → 看报错 → 再改」。
omp 支持 DAP(Debug Adapter Protocol):AI 可以直接附加到进程,单步调试,读变量值,看堆栈。
官方有个演示:C 程序 segfault,AI 附加 lldb,跳到出错行,读帧变量,找到 x 从 7 变成了 57351(位运算溢出)。整个过程 AI 自主完成,没有人在旁边盯着。
/task "审查 src/auth 目录"
/task "检查 API 并发问题"
omp 支持用 task 命令并行跑多个子 Agent,每个子 Agent 有独立的工具表面(可以只给它读权限),最后汇总结果。
适合的场景:代码审查时并行扫多个模块;大型重构时分工检查依赖。
eval [1/2] python: pandas.describe()
eval [2/2] js: topScorer(data)
在终端里直接跑 Python 和 JavaScript,不用切换窗口。Python 内核持久化,可以跨调用共享变量。
web_search 内置 14 个搜索后端,自动链式调用。支持的包括:Exa、Brave、Jina、Perplexity、Gemini、Cohere、Kagi,以及国内的 Kimi、Moonshot、MiniMax 等。
搜到的内容直接转成 Markdown,链接结构保留,AI 可以直接引用和追踪。
pi 的 /compact 是压缩会话。omp 加了 Hindsight:
/retain 这是一个支付模块,需要仔细检查并发安全
/recall 支付 模块
/reflect 项目整体架构是什么
Agent 在运行时主动写笔记,下次开新会话还能「想起来」上次做了什么。记忆是项目级隔离的——A 项目的笔记不会污染 B 项目。
omp 底层用 Rust 重写了核心模块(grep、shell、glob、PTY、语法高亮等),不再依赖外部二进制(rg、find、bash)。
这是很多人会混淆的点,两个项目都有「非终端」界面,但实现方式完全不同。
| 项目 | 说明 |
|---|---|
| GitHub | agegr/pi-web,~321 Stars |
| 界面 | 浏览器网页 |
| 实现 | 单独的 Web 项目,通过 RPC 调用 pi 核心 |
| 适合场景 | 不习惯终端、在浏览器里工作的用户 |
缺点:需要额外安装两个包(pi + pi-web),配置略复杂;交互体验和终端版有差异。
| 项目 | 说明 |
|---|---|
| 界面 | 终端内渲染的 TUI(Terminal UI) |
| 特性 | 彩色卡片、图标、交互式按钮 |
| 截图 | 官方 omp.sh 有大量 GIF 演示 |
TUI 不是网页,是在终端里用特殊字符渲染的图形界面。每个工具调用都显示成一张卡片,支持折叠、展开、操作按钮。
缺点:仍是纯文本终端,不是 GUI。
这是 omp 独有的功能,通过 ACP 协议实现:
| 项目 | 说明 |
|---|---|
| 编辑器 | Zed |
| 实现 | omp 跑在 Zed 的终端面板里 |
| 交互 | 读取你正在看的文件,写入通过编辑器保存 |
| 权限 | 破坏性操作会弹确认框 |
相当于把 AI 直接嵌入了编辑器,AI 看到的就是你看到的。
| 界面 | pi 原版 | pi-web | omp | omp + Zed |
|---|---|---|---|---|
| 纯终端 | ✅ | ❌ | ✅ | ✅ |
| 浏览器 UI | ❌ | ✅ | ❌ | ❌ |
| TUI(彩色终端) | ❌ | ❌ | ✅ | ✅ |
| 编辑器集成 | ❌ | ❌ | ❌ | ✅ |
Rust 引擎虽然快,但编译体积大,首次加载比纯 Node.js 的 pi 慢。
建议配置:
- 内存 8GB+(Rust 进程吃内存)
- 磁盘最好用 SSD
功能多意味着要学的东西多。pi 原版装好就能用;omp 那么多工具,刚上手容易懵。
建议先从 eval、task、lsp 开始,其他功能慢慢探索。
omp 是个人维护项目(作者 @can1357),更新节奏依赖个人投入。相比之下,pi 本身社区更大,长期维护的确定性更高。
.omp/config.yml 比 pi 的配置项多很多。想调教到最佳状态,需要花时间看文档。
| 场景 | 推荐 |
|---|---|
| 刚接触 pi | 先装 pi 原版,搞清楚核心用法 |
| 项目代码库大、复杂 | omp 的 LSP + DAP 值得 |
| 需要并行任务处理 | omp 的 task 完胜 |
| 内存吃紧(< 8GB) | pi 原版更轻量 |
| 深度调试、排查复杂 Bug | omp 的调试器是刚需 |
| 想折腾、追求功能全 | omp |
| 追求稳定、简单 | pi 原版 |
| 习惯浏览器操作 | pi-web |
| 习惯编辑器(Zed) | omp + Zed |
两个都装也行,互不冲突。
omp 安装(macOS / Linux)
curl -fsSL https://omp.sh/install | sh
omp 安装(Windows PowerShell)
irm https://omp.sh/install.ps1 | iex
omp 安装(Bun)
bun install -g @oh-my-pi/pi-coding-agent
pi 原版安装
npm install -g --ignore-scripts @earendil-works/pi-coding-agent
pi-web 安装(浏览器 UI)
npx @agegr/pi-web
omp 不是「更高级的 pi」,而是「装了插件的 pi」。
如果你现在用 pi 觉得功能已经够用了,没必要换。如果你遇到大型项目、复杂调试、并行任务这些场景,omp 确实能省不少力。
两个项目都在活跃维护,选哪个取决于你现在卡在哪。
LSP 集成这个太实用了
子 Agent 并行审查代码真的很香
内存不够,先用 pi 原版
两个都装了,看场景换着跑
💬 评论区