5.7k Stars!oh-my-pi(omp)终端AI编程神器深度解析
- 免费干货
- 14小时前
- 17热度
- 0评论
oh-my-pi(命令行工具名omp)是一个开源的终端AI编码Agent,GitHub地址github.com/can1357/oh-my-pi,专为解决现有AI编码工具(Claude Code、Cursor、Copilot等)的痛点而生。它不依赖特定模型,深度集成终端工作流,高度可扩展。
它到底解决了什么问题?
说实话,现在市面上的AI编码工具,真的有不少让工程师抓狂的地方。我随便列几个你感受下——
1. 编辑失败率高
模型生成的diff或者patch,经常因为空白字符、缩进、上下文对不上这些细节直接挂掉。然后呢?就开始无意义的重试循环……你说这token浪费得心疼不心疼?时间也全搭进去了。
2. 读文件效率低
直接整个文件dump出来塞进上下文,对大文件来说,这操作简直是在浪费宝贵的context窗口。模型也找不到重点,对吧?
3. 模型绑定严重
你换个模型试试?工具表现立马打折扣。这就逼着用户非得在好用的工具和想用的模型之间选一个,我觉得这太不自由了。
4. 终端体验割裂
很多AI工具要么是IDE插件,要么是Web界面。但像我这种深度依赖终端的工程师,用起来体验断层特别明显。你猜怎么着?就是那种“明明有工具,但用着就是不顺手”的感觉。
话说回来,oh-my-pi就是为了系统性地解决这些痛点而生的。它是一个面向终端的AI编码Agent,在pi-mono的基础上做了大幅扩展。目标嘛,就是要把编码工作流里所有关键环节都做到极致。我觉得这方向挺对的,你觉得呢?
它到底是什么?
oh-my-pi 这玩意儿是个开源的终端AI编码Agent,GitHub地址在这:github.com/can1357/oh-my-pi,命令行工具叫omp。
一句话给你说清楚:一个不依赖特定模型、深度集成终端工作流、还高度可扩展的AI编程助手。
核心亮点,我挑几个说说
🔒 Hashline编辑系统 —— 编辑失败?这招直接搞定
我觉得这是omp最有技术含量的创新之一。传统的str_replace编辑方式要求模型精确复现原文,你说这多坑——稍微空格、换行不对就废了。omp给每一行内容生成一个短哈希锚点,模型通过引用锚点来定位编辑位置,根本不用复现原文。
效果怎么样?你猜怎么着:
- Grok Code Fast 1:任务通过率从6.7%直接蹦到68.3%,差不多提升了10倍
- Gemini 3 Flash:比Google自己的最佳实现还高出5个百分点,这你敢信?
- Grok 4 Fast:输出token少了61%,重试循环?彻底消失了
- MiniMax:通过率直接翻倍
话说回来,如果文件在上次读取后被修改了,哈希不匹配,编辑会被直接拒绝,防止你手滑误操作……很稳对吧。
🧠 模型角色系统 —— 什么活用什么模型
omp把模型拆成了好几个角色,每个干不同的事:
| 角色 | 用途 |
|---|---|
default |
日常实现工作,中规中矩 |
smol |
快速探索、轻量任务,省钱省token |
slow |
深度推理,复杂调试或者重构这种硬骨头 |
plan |
开启/plan模式的时候用 |
commit |
生成commit信息和changelog,偷懒专用 |
每个角色你可以独立配置任意模型——Claude、GPT、Gemini、Grok、本地模型都行。还能通过Ctrl+P在slow/default/smol之间快速切换,感觉挺方便的。
🤖 子Agent并行框架 —— 让AI自己调度AI,这操作绝了
/task工具支持并行启动多个专门化子Agent,老实讲这功能我第一次看到的时候还挺震惊的:
- 内置6种Agent:
explore(探索)、plan(规划)、designer(设计)、reviewer(审查)、task(执行)、quick_task(快速任务) - 支持git worktree隔离,子Agent的修改不会干扰主工作区
- 实时流式输出,不用等到全部完成才能看结果
- 最多100个后台并发任务……你想想这得多快
⚡ TTSR —— 零消耗的时间旅行规则,这名字挺酷的
Time Traveling Streamed Rules(TTSR)是一种节省context的规则注入机制。规则定义一个正则触发器,平时完全不占用context。只有当模型输出流匹配到该正则时,才及时注入提醒。注入后请求重试,每条规则只触发一次。
举个例子:你设一条别用废弃API的规则,它只在模型真的要写废弃API时才触发,而不是每次对话都把规则塞进prompt。这真的有用吗?试过就知道,省context省到飞起。
🔧 LSP集成 —— 终端里也能有IDE级的代码智能
完整的Language Server Protocol支持,包含11种操作:诊断、跳转定义、类型定义、实现、引用、悬停信息、符号搜索、重命名、代码动作……支持40+语言开箱即用,写完自动格式化(rustfmt、gofmt、prettier这些),每次编辑后立即反馈语法或类型错误。感觉就像在终端里装了个迷你IDE。
🦀 Rust原生引擎 —— 不靠外部命令,速度拉满
约7500行Rust代码编译为N-API原生模块,提供这些功能:
- grep:基于ripgrep内核,并行正则搜索,快得离谱
- shell:内嵌bash,根本不用fork进程
- text:ANSI感知的文本处理,UTF-16优化
- glob:尊重.gitignore的文件系统发现
🔌 通用配置发现 —— 无缝继承你已有的AI工具配置
首次运行时,omp自动从.claude、.cursor、.windsurf、.gemini、.codex、.cline、.github/copilot、.vscode这些目录继承规则、技能、MCP服务器配置。你要是从其他工具迁移到omp……零迁移成本。这感觉也太香了吧?
怎么用?
安装
推荐方式(Bun,得>=1.3.7):
bun install -g @oh-my-pi/pi-coding-agent
一键脚本(Linux/macOS):
curl -fsSL https://omp.sh/install.sh | sh
Windows(PowerShell):
irm https://omp.sh/install.ps1 | iex
配置API Key
export ANTHROPIC_API_KEY=sk-ant-xxx
export OPENAI_API_KEY=sk-xxx
export GEMINI_API_KEY=xxx
或者直接交互式登录(支持OAuth的那种):
omp
/login
支持的提供商挺多的,Anthropic、OpenAI、Google、Groq、Mistral、xAI、Cursor、GitHub Copilot、Ollama(本地跑)、LM Studio(也是本地的)……加起来30多个吧。
快速上手(头15分钟够用了)
第一步:配置模型角色
启动omp之后,敲/model,给default、smol、slow、plan、commit这几个角色分别指定模型就行。
第二步:大改动前记得用/plan
/plan
帮我规划一下这个认证模块的重构方案呗
(跟AI来回聊,敲定方案后)
好,开始吧
第三步:常用快捷键了解一下
| 快捷键 | 功能 |
|---|---|
Ctrl+P |
切换slow/default/smol模型 |
Ctrl+R |
搜索历史prompt |
Ctrl+T |
展开/收起Todo列表 |
Shift+Tab |
切换思维深度(就是thinking level) |
!git status |
执行shell命令,结果自动注入上下文 |
@path/to/file |
在prompt里内联注入文件内容 |
AI辅助Git Commit
说实话,这个功能我觉得挺亮眼的:
omp commit
# 支持参数:--push --dry-run --no-changelog
omp会帮你做这些事:
- 分析git diff,按关注点自动拆成多个原子commit
- 生成符合Conventional Commits规范的提交信息
- 自动更新
CHANGELOG.md - 过滤掉那些空洞词汇,就像"fix bug"、"update code"这种说了等于没说的描述
代码审查
/review
交互式选择审查范围——比如跟某分支对比、看未提交的改动、或者翻某次commit。AI会给你一个结构化的审查报告,按P0到P3优先级标出问题,最后给个结论:approve、request-changes还是comment。
自定义扩展
自定义Slash命令(用Markdown写就行):
# ~/.omp/agent/commands/refactor.md
---
description: 重构指定模块
---
请分析$1中的代码,识别可以重构的部分,
遵循SOLID原则给出重构建议并实现。
之后在omp里直接敲/refactor src/auth/就能用了,很方便吧?
自定义工具(用TypeScript写):
// .omp/tools/notify/index.ts
export default () => ({
name: "notify",
description: "Send desktop notification",
parameters: Type.Object({ message: Type.String() }),
async execute(_id, { message }) {
await exec(`notify-send "${message}"`);
return { content: [{ type: "text", text: "Sent" }] };
},
});
Hook拦截(举个sudo确认的例子):
omp.on("tool_call", async (event, ctx) => {
if (event.toolName === "bash" && /sudo/.test(event.input.command)) {
const ok = await ctx.ui.confirm("Allow sudo?", event.input.command);
if (!ok) return { block: true, reason: "Blocked by user" };
}
});
总结
说实话,oh-my-pi(omp)是我目前在终端AI编码Agent里看到的,工程化程度最高的开源项目之一。它不是那种套个壳的ChatGPT,你懂吧?它把AI编码流程里的每一个环节——文件编辑、代码搜索、LSP集成、Git工作流、多模型调度、子Agent并发——都做了有针对性的工程优化。我觉得这点真的很关键。
适合人群:
- 那种深度依赖终端工作流的工程师,简直量身定做
- 对AI编码工具的编辑成功率和token效率有较高要求的人——你猜怎么着?omp在这方面表现挺亮眼的
- 希望在多个AI模型之间灵活切换、不想被单一厂商锁定的团队
- 已经有Claude Code或Cursor配置、想平滑迁移的用户,这个迁移过程我倒是觉得挺顺的
不那么适合:
- 纯图形界面用户——这真的有用吗?可能不太行
- 只需要简单代码补全的轻度用户,感觉杀鸡用牛刀了
目前项目在GitHub上已经有近4k Star了,更新超活跃——CI记录显示每天都有好几次提交,Discord社区也在快速增长。话说回来,如果你平时在终端里写代码,真的值得认真试一试。
官网:https://omp.sh/
项目地址:https://github.com/can1357/oh-my-pi
安装命令:bun install -g @oh-my-pi/pi-coding-agent
Discord:https://discord.gg/4NMW9cdXZa