目录

oh-my-pi:集成IDE的终端AI Coding Agent

项目概览

oh-my-pi(简称 omp)是终端 AI Coding Agent 领域的强力竞争者,将 IDE 完整能力直接接入 Agent。与其他 Agent 不同,它不是简单包装 bash,而是内嵌了真实的编程工具链:LSP 代码补全、真实调试器(DAP)、多语言执行内核。

核心数据:

  • GitHub Stars:5,187(今日增长显著,开源仅 4 个月)
  • 语言:TypeScript + Rust(~27k 行 Rust 核心)
  • 运行时:Bun(推荐)、Node.js
  • 平台:macOS · Linux · Windows
  • 开源协议:MIT
  • 官网:https://omp.sh

为什么值得写:

  • Hashline 编辑让 AI 修改第一次就成功,减少 token 消耗(Grok 4 Fast 节省 61%输出 token)
  • 内置真实调试器(DAP),支持 lldb/dlv/debugpy
  • 子 Agent 系统支持任务并行和类型化结果返回
  • 继承 Cursor MDC、Cline rules、Copilot AGENTS.md 等 8 种格式,零迁移成本

核心特性详解

01 · Hashline 编辑:第一次就做对

传统的 diff 编辑依赖行号/行内容作为锚点,模型容易找错位置导致编辑失败。omp 使用内容哈希锚点定位编辑位置,模型只描述"改哪里"而不重复"写什么",token 消耗大幅降低。

# 模型输出
edit "formatBytes" in src/utils.ts
# omp内部转换为hashline patch,精确匹配内容位置

效果: Grok 4 Fast 相同工作节省 61%输出 token;编辑一次通过率大幅提升。

02 · LSP 完整集成:IDE 知道什么,Agent 就知道什么

通过 workspace/willRenameFiles,重命名操作自动更新所有引用(重导出 barrel 文件、别名导入)。Agent 调用的是 IDE 的 LSP 服务,不是自己的模拟。

# LSP rename示例
LSP rename formatBytes → formatFileSize
# 自动更新 format.ts、report.ts、cli.ts 中的所有引用

03 · 真实调试器支持

omp 通过 DAP(Debug Adapter Protocol)驱动真实的调试器:

  • lldb:C/C++/Rust 原生二进制调试
  • dlv:Go 服务 goroutine 栈追踪
  • debugpy:暂停 Python 进程、inspect 变量、evaluate 表达式

大多数 Agent 还在用 print 调试,omp 已经可以直接 attach 到进程。

04 · 时间旅行式流规则(TTSR)

规则文件平时静默,模型偏离预期时触发:正则匹配中止输出、注入规则到 system reminder、从同一点重试。注入在 context 压缩后依然存活,修复持久有效。

# 模型即将写 Box::leak
→ 规则触发:"Don't reach for Box::leak in production"
→ 模型改用 Arc<str>,询问用户确认

05 · 子 Agent 并行任务

task 将工作分配给隔离的 worker,每个 worker 拥有独立工具表面,最终 yield 是 schema 校验的对象,父 Agent 直接读取字段,无需解析 prose。

task {
  agents: ["ComponentsExports", "RoutesExports"],
  constraints: "IRC DM between peers"
}
→ 子Agent并发执行
→ 结果: { exports: [...], coordination_note: "..." }

06 · 浏览器与 Electron 应用控制

Stealth 模式默认开启,页面看到正常用户而非 headless bot。同一个 API 驱动任意 Electron 应用(Slack、Notion、Figma)。

07 · 跨格式继承

omp 直接读取 8 种已存在的 Agent 规则格式,无需转换:

  • Cursor MDC
  • Cline .clinerules
  • Codex AGENTS.md
  • Copilot applyTo

08 · 原子提交与冲突解决

omp commit 通过 git-overviewgit-file-diffgit-hunk 读取工作树,将无关变更拆分为原子提交,循环依赖在写入前拒绝。合并冲突每个对应一个 URL,写 @theirs / @ours / @baseconflict://N 即可解决。


快速开始

安装(macOS / Linux)

curl -fsSL https://omp.sh/install | sh

Bun(推荐)

bun install -g @oh-my-pi/pi-coding-agent

Windows

irm https://omp.sh/install.ps1 | iex

mise 版本管理

mise use -g github:can1357/oh-my-pi

内置工具一览(32 个)

文件与搜索:

工具说明
read文件、目录、归档、SQLite、PDF、笔记本、URL、内部 scheme
write创建/覆盖文件、归档条目、SQLite 行
edithashline 补丁,含内容哈希锚点和陈旧锚点恢复
ast_edit结构重写,预览后应用(via ast-grep)
ast_grep50+ tree-sitter 语法的结构代码查询
search文件/glob/内部 URL 的正则搜索
findglob 路径查找

运行时:

工具说明
bashworkspace shell,支持可选 PTY 和后台任务调度
eval持久 Python 和 JavaScript 单元格,共享 prelude 和工具重入

内部 scheme(透明解析):

scheme说明
pr://读取 PR 信息
issue://读取 Issue
agent://子 Agent 结果
skill://技能文档
rule://规则文件
conflict://N合并冲突解决

模型性能对比

omp 的编辑格式针对不同模型做了优化调整:

模型效果
Grok Code Fast 1编辑通过率从 6.7%→68.3%(格式优化)
Gemini 3 Flash超过 str_replace 格式,超越 Google 自己的最佳尝试
Grok 4 Fast输出 token 减少 61%(hashline 去除了 retry 循环)
MiniMax通过率提升 2.1 倍(同权重、同 prompt)

ACP:编辑器驱动的 Agent

在 Zed 编辑器中运行 omp,获得与终端相同的 Agent 体验:读取你实际查看的 buffer,通过编辑器 save 路径写入,在编辑器 terminal 中 spawn shell。危险工具暂停等待确认,一次回答即可。无桥接层、无插件、无需要同步的第二大脑。


适用场景

  • 需要高精度编辑(hashline 确保第一次成功)
  • 跨平台开发(macOS/Linux/Windows 同一二进制)
  • 需要真实调试能力(lldb/dlv/debugpy)
  • 已有 Cursor/Cline/Codex 规则,想平滑迁移
  • 子 Agent 并行处理复杂任务

总结

oh-my-pi 把终端 AI Coding Agent 往前推了一步:把 IDE 完整集成进来,而不只是包一层 bash。Rust 核心(约 27k 行)保证了性能,TypeScript 生态保证了可扩展性。

核心差异:

  • Hashline 编辑让 AI 第一次就做对,节省 token 提高效率
  • LSP + DAP 完整集成,真实调试能力而非 print 大法
  • 子 Agent 并行 + 类型化结果,复杂任务分解简单
  • 8 种格式继承,零迁移成本

参考链接:

  • GitHub:https://github.com/can1357/oh-my-pi
  • 官网:https://omp.sh
  • 安装脚本:https://omp.sh/install