Py学习  »  Git

GitHub 7.7k Star 杀疯了!这个能联动 IDE 的终端 AI 编程神器你用了吗?

Java知音 • 2 周前 • 170 次点击  

 

我试过市面上很多的AI编程助手,它们有个共同点:在 demo 里挺牛的,一到我手里就蔫了。

不是给你堆一堆 print 语句假装调试,就是改代码时把整个项目的引用关系搞乱。

最近我又尝试用了一款开源的AI编程助手:oh-my-pi。GitHub上 7.7k Star,有 40 多家模型供应商,32 个内置工具,还把 LSP 和 DAP 直接接进去了。

尝试使用后,感觉这玩意儿确实挺不错的,可以一用,给大家介绍一下。

oh-my-pi 是什么

oh-my-pi(简称 omp)是个开源项目,是基于 Mario Zechner 的 Pi 改的。你别看名字带个“pi”就觉得是树莓派专用——它跟树莓派半毛钱关系没有。

它是个 AI Coding Agent,但跟 Claude Code、Cursor 那些不一样。那些工具像是给你配了个秘书,你得告诉它“去查一下这个文件”,它才慢悠悠去翻。omp 更像是把你整个开发环境——终端、编辑器、调试器、版本控制——全塞进一个壳里,让 AI 在里面随便折腾。

换句话说,它不是一个聊天机器人套了个 Shell 的皮,它更像是一个工程底座。

最狠的是,它把 LSP(语言服务器协议)和 DAP(调试适配器协议)直接接进去了,感觉有点像集成式的东西,但是具体的底层细节我也没怎么了解。

反正使用下来,感觉 omp 可以像 IDE 一样理解你的代码符号,能像你真机调试一样挂进程看堆栈,做的还是挺不错的。

omp的爽点在哪里

我用了两周,发现 omp 解决的不是“AI 会不会写代码”,而是“AI 写的代码能不能用”。

哈希锚点编辑(Hashline)

普通 AI 工具改代码,靠的是行号或者模糊匹配。文件一动,patch 就对不上,然后就开始胡改。omp 用内容哈希定位代码块,文件要是被其他工具动过,哈希对不上,它直接拒绝应用修改。

我试过在它读文件后手贱改了一行,它立马弹提示说“锚点失效,建议重读”。这比大部分AI编程助手那种闷头硬上、最后把代码改烂的做派强多了。

调试能力强

omp 能调 lldb 看 C++ 段错误,能调 dlv 遍历 Go 的 goroutine,能调 debugpy 检查 Python 调用栈。

它不会给你塞一堆 print,而是直接把调试器挂上去,让你看变量、看堆栈、看线程。这感觉就像你带了个会操作调试器的实习生。

DAP 调试会话,显示 lldb 附加到进程
DAP 调试会话,显示 lldb 附加到进程

子代理(Subagents)拆任务

一个大重构,你可以拆成几个子任务,让 omp 启动多个隔离的工作区并行跑。每个子代理干自己的活,最后把结果拼起来。

我拿它做过一次数据库迁移:一个子代理改模型定义,一个子代理改 API 层,一个子代理改测试。二十分钟搞定,中间没冲突。

子代理任务拆分,显示两个子代理状态
子代理任务拆分,显示两个子代理状态

LSP 集成让你少操一半心

重命名一个函数,omp 通过 LSP 把整个项目里的引用全更新了。包括那些  import 别名、re-export 的 barrel 文件。

我以前用别的工具,改个名字得手动检查五个文件,现在敲个回车就行。

LSP 重命名操作,跨文件更新引用
LSP 重命名操作,跨文件更新引用

自带浏览器和搜索,不用切窗口

web_search 能链 14 个搜索后端,抓回来的网页、PDF、GitHub issue 直接转成 Markdown 带链接。我查一个错误信息,它直接把 Stack Overflow 答案和官方文档段落甩我脸上。

web_search 工具显示 arXiv PDF 摘要
web_search 工具显示 arXiv PDF 摘要

和 Claude Code、Cursor 对比

特性
oh-my-pi (omp)
Claude Code
Cursor
开放性
极高,40+ 模型随便换,本地 Ollama 也能用
封闭,只能用 Anthropic 的模型
中等,支持 OpenAI 和 Anthropic
系统提示词
极简(<1k token),响应快,幻觉少
中等
沉重(10k+ token),慢
调试支持
深度集成 DAP/LLDB,真挂进程
基础 Bash,靠 print
插件支持,但得自己配
终端集成
原生 TUI,tmux/Vim 友好
独立界面,切换烦
独立 IDE,吃内存
编辑精度
哈希锚点,拒绝 stale patch
行号匹配,常改错
行号匹配,常改错
适用人群
终端极客、Neovim 用户、讨厌切界面的人
追求稳定、不想折腾的团队
喜欢图形界面、开箱即用的个人

omp 的定位是 AI 界的 Neovim:配置折腾,但一旦配好,效率嘎嘎的。

Claude Code 像 VS Code,开箱能用。Cursor 像 WebStorm,功能全,但笨重。

omp 适合那些经常玩终端的人,你不需要它教你用鼠标,你只需要它把你手头的工具链打通。

安装使用

安装其实简单,就一行:

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

或者用 Bun(推荐):

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

Windows 也有 PowerShell 脚本。

装完跑 omp 进 TUI。第一次会让你配模型,/model 命令切。建议 default 用较高的旗舰 AI 模型,因为最终效果还是靠你接入的模型,smol 用本地 Llama  或 Groq 上的小模型,plan 用长文本模型做规划。

配置文件的路径是 ~/.omp/agent/models.yml,你可以按项目设不同的模型角色。比如给某个老仓库配个 slow 角色用 DeepSeek 慢慢想,给新项目配个 fast 角色用 Gemini Flash 快速补全,具体怎么配置,看你个人需求,可以慢慢尝试,省钱和好用要兼备。

YAML具体配置的话,就几个键值对。实在懒得写,它还能自动继承你已有的 .claude.cursorrules.github/copilot 配置。

omp TUI 显示 eval 会话,Python 和 JavaScript 内核同时运行
omp TUI 显示 eval 会话,Python 和 JavaScript 内核同时运行

还有个 ask 工具,能根据你的问题自动选合适的工具链,不用自己记命令。比如你问“怎么给这个函数加个缓存”,它会先判断该用 read 读代码、用 lsp 找调用点,还是用 web_search 查缓存库。

ask 工具选项选择器
ask 工具选项选择器

几个让我觉得“这玩意确实有用”的场景

重构老项目

我把 omp 扔进一个三年没动的 TS 项目,让它“把所有的 any 换成 unknown,然后加类型断言”。

它先调 LSP 扫了一遍,找出 200 多处 any,然后分批次改。每改一个文件就跑一次类型检查,错了就回滚。最后给我一个报告,哪几个文件因为循环引用没改,建议手动处理。

整个过程我没敲一行代码。

查一个 obscure 的编译错误

一个 Rust 项目在 macOS 上编译通过,Linux 上 segfault。omp 直接调 lldb 挂上去,发现是某个 unsafe 块里的指针在跨平台时没对齐。

它把反汇编和源码对照着列出来,指着说“这里 offset 算错了”,比较准确的指出了问题。

自动生成 CHANGELOG

omp commit 命令能分析 git diff,按 Conventional Commits 规范拆成原子提交,自动写 CHANGELOG。

我的习惯是 git add . 然后 git commit -m "fix",它给我拆成三个提交:feat: 添加用户登录验证fix: 修复密码哈希错误docs: 更新 README

这比我手写规范多了。

使用中感觉存在的一些问题

1、配置散

项目更新快(这个月几乎一天一更),有时候上游一改,你自己的 skill 或者 memory 配置就崩了,你得盯着 changelog。

2、子代理开启容易变成 token 刺客

开子代理并行干活,如果任务拆太细,很消耗token。开始用的时候开多了,俩小时烧掉我平时一周的用量,这里格外注意一点儿。

3、文档零散,社区差点意思

官方文档在 omp.sh/docs,但很多细节藏在 GitHub issue 和 Discord 里,学习这个得自己多摸索。

GitHub传送门:

https://github.com/can1357/oh-my-pi

 

点击下方卡片,关注Java知音

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/196968