10k星!把AI编程做到米其林三星 - 能挂lldb调C、能动LSP改import的终端agent
一、项目名称
GitHub: https://github.com/can1357/oh-my-pi | Stars: 10,765 | 语言: TypeScript/Rust | License: MIT
二、项目介绍
用过 Claude Code、Cursor 的人大概都有过这种体验 - 让 AI 重命名一个变量,它改了主文件但忘了改 barrel 导出;让 AI 修一个 C 程序的段错误,它开始 print 调试加 printf 满天飞;想换一个模型试试,要么重新装一个 agent 要么就忍着。每一次"AI 写代码"的背后都有一个 harness 在默默做事,但绝大多数 harness 做得都不够深。
然后独立开发者 can1357 做了一个东西 - oh-my-pi(简称 omp)。基于 Mario Zechner 的开源项目 Pi fork 魔改而来-把 Pi 当骨架,在外面套了一层工程级的"装甲"。
27k 行 Rust 内核、40+ 模型供应商、32 个内置工具、13 个 LSP 操作、27 个 DAP 调试操作-一周涨 2.3k 星。表面是 TypeScript CLI,底下是用 Rust 重写过的真·harness。这不是一个 Claude Code 替代品,这是一个为重度终端用户重做的工程级 AI 编程工具。
三、架构设计
omp 的核心思路是 - 模型再强,没有好的 harness 也发挥不出来。Harness 是模型和真实世界之间的胶水-同样是 GPT-4o 写代码,普通 harness 和精心调优的 harness 之间,成功率能差出几倍。omp 干的就是把 harness 做到极致。
一个具体例子 - Hash-anchored edits。模型编辑代码经常出错的根源是"在错误的位置写了正确的内容",传统的 str_replace diff 没办法精确定位。omp 给每次编辑加哈希锚点,模型在指定位置写错了能精确回滚到正确分支。Grok Code Fast 1 这个模型在别的 harness 上编辑一次成功率只有 6.7%,换 omp 直接干到 68.3%-十倍提升。这不是模型变强了,是 harness 把模型的"半成品"用工程方式修到能用。
另一个杀手锏是LSP 接入到每一次写入。重命名一个变量?omp 通过 workspace/willRenameFiles 协议触发,barrel 文件、re-export、alias 全部联动更新。IDE 知道的,agent 都知道了。这不是"加个 LSP 客户端",是把 LSP 当成编辑操作的第一公民。普通 AI agent 改 import 是字符串替换,omp 改 import 是动 LSP 协议。
最有意思的是 Time-traveling stream rules。模型写到一半跑偏,正则匹配触发拦截,注入规则提示,再从断点重试。上下文税只在出错时收,正常情况零负担。你的规则"dormant"在配置文件里,模型写错才被激活-这种"按需注入"的设计思路,绕开了"规则越多上下文越乱"的传统困境。
还有 40+ 模型针对调优 - Anthropic、OpenAI、Grok、Gemini、Minimax 全接,每个模型都做了 prompt + 工具调用格式 + 错误处理的针对性调优。换模型不需要换 agent,omp 帮你把每个模型的优势都榨出来。同样的代码改写任务,Grok 4 Fast 在 omp 上比在 str_replace 风格的 harness 上少用 61% tokens-输出在错误重试消失后自然塌缩。
四、快速上手
macOS / Linux 一行装 -
curl -fsSL https://omp.sh/install | sh或者用 Bun -
bun install -g @oh-my-pi/pi-coding-agent装好之后 omp 直接启动。第一次跑会问 API key,配置好之后即可使用。模型切换不需要换工具,omp 把每个模型的 prompt、工具调用格式、错误处理都做了针对性调优。Shell completion 也是自动生成的,加 eval "$(omp completions zsh)" 进 .zshrc 就有完整的 tab 补全。一个细节 - omp 启动时还会扫一遍你项目里的 .git/、tsconfig.json、Cargo.toml,自动挂上对应语言的 LSP 服务-这一步是"开箱即用"和"配置两小时"的分水岭。
五、实战场景
• 第一次尝试(基础) - 让 omp 帮我重构 TypeScript 模块里的 formatBytes,改成 formatSize。期望 - 全工程文件批量替换。
• 第一次结果(惊喜) - omp 不是简单 grep + replace。它通过 LSP 调 workspace/willRenameFiles,连 re-export、barrel 文件里的 alias 都联动改了。5 个文件 3 个类型定义全部一致更新,一次成功。
• 第二次尝试(进阶) - 写一个 C 程序,故意留段错误 - int *p = NULL; *p = 42;,让 omp 修。
• 第二次结果(震撼) - omp 挂上 lldb-dap,设断点,跑到段错误那行,读 frame 变量,定位到 p 是空指针。然后给修复方案 - malloc 一块内存再赋值。整个过程没有 print 调试,没有"我猜可能是这里",是真正的 debugger session。其他 AI agent 还在 printf 满天飞,omp 已经在玩 DAP 协议了。
• 第三次尝试(极客) - 让 omp review 同事的 Rust PR,专门检查 Box::leak 这种"生产代码绝对不能用"的反模式。
• 第三次结果(精准拦截) - omp 写到一半识别出模型正要 Box::leak,正则匹配触发拦截,注入规则提示 - "production code paths, don't reach for Box::leak"。模型立刻改用 Arc<str> 重新提案。整个过程上下文零负担,规则只在出错时激活-这种"按需拦截"的设计在传统 agent 框架里根本看不到。
六、总结
27k 行 Rust 内核 + 40+ 模型调优 + LSP 写入联动 + 真 debugger 支持 + 流式规则拦截-这是一个为每天写 8 小时代码的人设计的工具。AI 编程的下半场不是"哪个模型更强",是"哪个 harness 把模型榨得更干"。Claude Code 验证了 AI 编程的市场需求,Cursor 验证了 AI 编程的 GUI 形态,omp 这类项目正在验证另一件事 - 当一个 AI agent 真的能调 debugger、能联动 LSP、能按需注入规则,职业程序员 8 小时工作流里那些"AI 还做不了"的角落,会被一个一个填上。
✅ 适合 - 重度终端开发者;用 Vim/Tmux 不用 IDE;对 IDE 性能/快捷键有洁癖;经常在多模型多语言间切换的工程师;经常调试 C/Go/Rust 这类需要真 debugger 的代码。
❌ 不适合 - 习惯 Cursor/VSCode 完整 GUI 体验;只想要"开箱即用点两下"的轻量用户;完全没碰过 LSP/DAP 协议的人(学习曲线有点陡)。
如果说 Claude Code 是 AI 编程的"大众点评",omp 就是那家只做一道菜、但做到了米其林三星的私厨。一个独立开发者能写出 27k 行 Rust 内核的项目,本身就在说明一件事 - AI 编程工具的护城河正在从"接入了什么模型"迁移到"工程细节做得多深"。接下来的半年里,真正值得关注的不是又出了哪个新 agent,而是哪些团队愿意把 harness 当成核心产品来打磨。
AI 编程的下半场不是"哪个模型更强",是"哪个 harness 把模型榨得更干"。
📌 数据来源 - GitHub Trending, 2026-06-06 | 项目 - can1357/oh-my-pi
⭐ 如果你觉得这个项目有意思,欢迎 Star 支持独立开发者 🧬
作者 - 刘生
夜雨聆风