一、项目介绍
用 AI 写代码时,多数人都在同一条流水线上反复下坠:终端里跑着一个 Agent,编辑器里开着另一个 LSP,语言服务器、调试器、Git 操作全靠另开窗口补。想让 Agent 真正理解工程,绕不开 IDE 这一层;而把 IDE 直接塞进 Agent,又几乎总是让它变成一个只会读文件、不会真正动手的聊天框。
Oh-My-Pi 由 Stencil Labs 打造,是 badlogic/pi-mono 的分支项目,目标就一句话:把 IDE 完整地接进编码 Agent。它用约八万行 Rust 重写了核心,提供 31 个内置工具、14 个 LSP 操作、28 个调试适配操作,并把 ripgrep、glob、find 这些常用检索直接编译进进程,bash 也被移植为进程内实现——因此在 macOS、Linux、Windows 上是同一个二进制,不需要 WSL 桥接。
它同时提供四种入口:交互式 TUI、单次问答的 -p、可嵌入 Node 的 SDK,以及走 stdio 的 RPC 与 ACP 协议。你可以让 IDE 编辑器直接驱动它,也可以让它自己去拉起真实浏览器、读取 PR、提交原子化的 Git commit。
理解 Oh-My-Pi 的关键,是接受一个前提:编码 Agent 之所以经常"看起来会写、实际改不对",根因往往不是模型能力,而是它缺少工程上下文。IDE 恰好握有这些上下文——符号表、类型信息、调用关系、运行时状态。这些东西如果靠人手动喂给 Agent,效率极低;接进 Agent 内部,则每一次读文件、每一次改动都能自动带上。
项目用 Proxy 拦截与作用域劫持实现 JS 沙箱,把 bash 与常用 Unix 工具移植进 Rust 进程,让"读代码、跑命令、找文件"这些高频动作不必反复 fork 外部进程。在 Windows 上尤其明显:很多机器压根没有 ripgrep、grep、find,没有 bash,别的 Agent 只能退化成"用 PowerShell 硬凑",而 omp 把这些能力直接做进了二进制。
四个入口共用同一引擎这一点很值得留意。日常用 TUI,需要塞进 Node 服务时用 SDK,需要跨进程时用 RPC 或 ACP——意味着你在本地交互调试好的那套能力,原样可以搬到自动化脚本或编辑器里,不必为两种形态维护两套提示词与配置。
二、项目基本信息
| 信息项 | 详情 |
|---|---|
| 项目名称 | Oh-My-Pi |
| GitHub地址 | https://github.com/can1357/oh-my-pi |
| 项目描述 | ⌥ Coding agent with the IDE wired in. Built by Stencil Labs. |
| 作者 | can1357 |
| 开源协议 | MIT License |
| 开源状态 | 公开 |
| Languages | TypeScript |
| 支持平台 | Windows / macOS / Linux |
| 最后更新 | 2026-10-30 |
三、核心优势
- 真正把 LSP 接进每一次写入:符号定义、引用跳转、诊断信息直接进入 Agent 的决策链,而不是另开一个语言服务器去猜
- 进程内实现的 ripgrep / glob / find 与移植版 bash,省掉大量 fork-exec 往返,Windows 上尤其明显
- 28 个调试适配操作,Agent 可以驱动真实调试器下断点、看栈、读变量,而不是只能靠日志猜
- 60 多家模型供应商、约一千个模型,用
/model一个命令切换,也能配 OpenAI 兼容的自定义端点 - Hashline 按内容哈希编辑文件,多人或多 Agent 同时改同一处时能给出明确冲突提示
- 四种入口共用同一引擎:TUI、
-p单次、Node SDK、RPC/ACP,脚本化与交互式体验一致 - 内置代码评审能力,能按优先级给出问题清单与明确结论,而不是笼统地列出所有可疑点
- 支持从命令行读取 GitHub PR、把结构化 JSON 交给子 Agent 处理,适合批量整理评审意见
- 记忆由 Agent 自行整理维护,不必手工维护一份越来越庞大的项目说明文件
- 支持"预览后接受"的改动模式,Agent 的每次编辑先给出 diff 再落盘,误改可回退
四、适用场景
适合重度使用终端编码 Agent、但受够了 IDE 与 Agent 两套割裂工作流的开发者;也适合需要 Agent 直接驱动浏览器、拉取 PR、跑 CI 的自动化场景。若你每天要在编辑器、终端、调试器之间来回切换,Oh-My-Pi 提供的整合收益最明显。
是否适合你,主要看两件事。第一,你是否已经在终端里用编码 Agent——如果你的工作流是"编辑器写代码 + 终端跑 Agent",这个项目能显著减少两边的信息割裂;如果你坚持只在 IDE 里点按钮,收益会被打折扣。第二,你的项目是否复杂到需要 LSP 与调试器介入:单体小项目用普通 Agent 也够用,而涉及多模块引用、类型推导、运行时断点的工程,LSP/DAP 接进来之后差别是质变。
风险提示有两条。其一,项目处于快速迭代期,版本号跳得很快(当前已是 v18.14.0),建议在团队内统一版本,否则不同成员的 Agent 行为会出现难以解释的差异。其二,代理权限越大越要配合版本控制:omp 自带 Hashline 与冲突提示这类机制,但真正兜底的还是完善的 Git 流程与代码评审。
如果你正被同类问题反复绊住——要么是人肉重复劳动没完,要么是工具装不上跑不通、要么是产出的结果根本没法用——那这个项目值得先花十分钟装一遍试试。
五、安装教程
当前最新版本 v18.14.0。下面是可直接执行的安装方式:
# macOS / Linux:官方安装脚本(无 bun 时会自动拉取预编译二进制并校验 SHA-256)
curl -fsSL https://omp.sh/install | sh
# 需要锁定版本时(Windows PowerShell 用 -Binary -Ref v<version>)
curl -fsSL https://omp.sh/install | sh -s -- --binary --ref v18.14.0
# Homebrew
brew install can1357/tap/omp
# Bun(官方推荐)
bun install -g @oh-my-pi/pi-coding-agent
# Nix:免安装直接运行
nix run github:can1357/oh-my-pi
# Windows(PowerShell)
irm https://omp.sh/install.ps1 | iex常见报错与处理:依赖缺失时先确认运行时版本(Node、Python、Rust、PHP 等)是否满足项目要求;网络超时多半是镜像或代理问题,可换源重试;权限类报错请检查当前账号是否已登录对应平台,以及脚本是否需要管理员权限执行。
六、使用示例
下面这段是可以直接参照的真实用法:
# 交互式 TUI:在项目目录直接启动
omp
# 单次问答模式:问完就退出,适合脚本化
omp -p "扫描 src 目录,找出所有未捕获的 Promise 异常"
# 生成 shell 补全脚本(bash / zsh / fish)
eval "$(omp completions zsh)"
# 以 RPC 模式把会话交给别的程序驱动
omp --mode rpc
# 用 ACP 协议接入支持该协议的编辑器
omp acp七、常见问题
问:Windows 需要 WSL 吗?答:不需要。项目内建了进程内 bash 与检索实现,同一个二进制在 macOS、Linux、Windows 上行为一致,不必走 WSL 桥接。
问:Alpine 装不上怎么办?答:官方预编译的 musl 二进制动态链接 libstdc++ 与 libgcc,而 Alpine 默认不带,先执行 apk add libstdc++ libgcc 再安装即可。
问:怎么接入自己的模型?答:除内置供应商外,支持配置 OpenAI 兼容的自定义端点,配置入口在模型面板里,切换用 /model 命令。
问:和普通 Agent CLI 相比,核心差别在哪?答:差别集中在"能不能真正操作工程"——LSP 与调试器是内置能力,不是外挂脚本,因此不需要在多个终端之间手工搬运状态。
问:版本更新这么快,会不会不稳定?答:确实迭代很快,建议先用一两个非核心项目试跑,固定版本后再推广。
问:需要自己配 API Key 吗?答:内置 60 多家供应商与约一千个模型,用 /model 选择即可;也支持配置 OpenAI 兼容的自定义端点。
以上是实际使用中最常被问到的几个问题。若遇到文档未覆盖的情况,可以先翻项目的 Issues 与 Discussions 区,那里有更多真实踩坑记录。
八、总结
Oh-My-Pi 在把高频动作压缩成一条命令这件事上做到了足够扎实的程度:它不追求大而全,而是把一个具体环节做透,让原本要靠人盯的流程变成可以交给工具执行的流程。
从上面的安装步骤和使用示例可以看出,它的接入成本并不高:一条命令装好,按提示完成配置,然后就能把它放进你原有的工作流里。如果你正在被同类问题困扰,不妨先在自己的一小块任务上试一轮,确认顺手了再推广到日常流程中。
评论 0
还没有评论,来说两句吧。