01
🐍 双核代码执行 + 工具回调桥
持久化 Python + Bun(JavaScript) 双内核,任一内核可直接回调Agent自身的工具(read/search/task),无需离开执行单元。Agent在Python里加载CSV,在JavaScript里画图表,一个session搞定。
🎯 解决场景
数据分析:Python读CSV → pandas处理 → JS画ECharts图表,全程不离开Agent
数据处理流水线:Python清洗 → JS转换 → Agent写入文件,一条龙
科学计算:numpy/scipy计算 → Agent用read查看结果 → 写入报告
🔧 怎么用
omp
> 用pandas读取data.csv并做describe统计
> 然后用JavaScript画一个柱状图
# eval工具自动选择Python/JS内核
# Python中可直接调用 tool.read("data.csv")
# JS中可直接调用 tool.read("result.json")
eval
02
🔗 LSP 接入每次写入
LSP(语言服务协议)直接接入Agent的每次文件操作。重命名走workspace/willRenameFiles,re-export、barrel文件、别名import全部自动更新。你的IDE知道什么,Agent就知道什么。
🎯 解决场景
安全重命名:重命名一个导出函数,所有引用自动更新,不会漏改
跨文件重构:移动文件后import路径、re-export、barrel文件全部自动修正
类型检查:写入代码后LSP实时诊断,类型错误立即发现
🔧 怎么用
omp
> 把 formatBytes 重命名为 formatSize
# Agent调用 lsp references 找到5处引用
# 调用 lsp rename 自动修改3个文件
# 确认 Search formatBytes → 0 matches
lsp
03
🐛 驱动真实调试器(DAP)
Agent直接attach调试器:C/Rust二进制→lldb,Go服务→dlv,Python进程→debugpy。设断点、单步、读变量、看调用栈——不是print调试,是真正的debugger。
🎯 解决场景
段错误定位:C/Rust程序crash → Agent attach lldb → 读帧 → 定位坏指针
Go服务挂死:attach dlv → 遍历goroutine → 找到死锁
Python进程卡住:debugpy → pause → inspect → evaluate表达式
🔧 怎么用
omp
> 我的C程序在demo.c第6行段错误了,帮我调试
# Agent调用 debug 工具
# adapter=lldb-dap → 设断点 → 单步执行
# 读取变量 x=57351 → 确认数学运算错误
debug
04
⏳ 时间旅行流式规则(TTSR)
规则平时休眠,当模型输出匹配正则时,立即中断流式输出、注入规则作为系统提醒、从同一点重试。不占上下文税,注入在压缩后仍然存活。
🎯 解决场景
禁止危险API:模型要写Box::leak → 流式中断 → 注入规则"不要用Box::leak" → 改用Arc<str>
强制安全模式:检测到unsafe代码 → 中断 → 提醒必须review
编码规范约束:检测到console.log → 注入规则"生产代码不要留debug log"
🔧 怎么用
# 在 .omp/rules/ 下定义规则
# regex匹配流式输出 → 中断 → 注入 → 重试
# .omp/rules/no-box-leak.md
---
match: "Box::leak"
inject: "Don't reach for Box::leak in production"
---
# Agent写到Box::leak时自动中断
# ⚠ Injecting rule: no-box-leak
# Agent改用 Arc<str> 并确认
TTSR
05
🔀 一等子Agent(task)
task将工作分发到隔离的worktree,每个worker有自己的工具面,最终yield是schema验证的typed对象。不解析散文,不合并冲突,不遗留孤儿编辑。
🎯 解决场景
并行重构:同时让3个子Agent分别重构auth模块、api模块、db模块
多文件搜索:子Agent并行搜索不同目录,结果typed汇总
CI/CD流水线:子Agent并行跑测试、检查lint、生成文档
🔧 怎么用
omp
> 同时重构auth、api、db三个模块
# Agent调用 task 工具
# task → 3个隔离worktree
# worker-1: 重构auth (独立工具面)
# worker-2: 重构api (独立工具面)
# worker-3: 重构db (独立工具面)
# yield → schema验证的typed结果
task
06
👁️ Advisor:第二个模型监督每轮
配对一个reviewer模型到advisor角色,它读取主Agent每轮的操作,内联注入note——轻声提醒、担忧、或硬阻断。独立上下文+独立模型,捕获主Agent匆忙略过的错误。
🎯 解决场景
代码Review:主Agent写代码 → Advisor发现catch太宽 → 注入concern
安全审计:主Agent修改权限 → Advisor硬阻断 → 必须人工确认
质量守门:主Agent赶进度 → Advisor提醒"这不符合用户的验收标准"
🔧 怎么用
omp --advisor openai-codex/gpt-5.5
> 帮我修改错误处理逻辑
# 主Agent: 修改catch为ENOENT
# Advisor 1 note (concern):
# "fix不再匹配用户的字面验收标准"
# 主Agent: 看到note → 修正方案
advisor
07
🤝 实时协作(/collab)
/collab把你的session放到relay上,返回链接+二维码。队友用omp join加入,或直接浏览器打开。读写共享配对,/collab view只读旁观。帧在客户端密封,relay看不到你的key。
🎯 解决场景
结对编程:你驱动Agent,队友实时观看并提建议
团队Review:分享只读链接,团队围观Agent的工作过程
远程协助:发QR码给同事,对方手机扫码即看
🔧 怎么用
omp
/collab # 读写共享
/collab view # 只读旁观
# 输出:
# Collab session started!
# omp join https://my.omp.sh/xxx
# QR: [二维码]
# "Anyone with this link can watch"
/collab
08
🌐 Web搜索 + PDF/论文阅读
web_search串联14个排名供应商,URL直接交给read。arxiv PDF、GitHub页面、StackOverflow线程返回结构化markdown+锚点——和本地文件一样的工具面。
🎯 解决场景
论文研读:搜索arxiv论文 → 直接read PDF → 总结核心结论
技术调研:搜索最佳实践 → read多个URL → 对比分析
问题排查:搜索报错信息 → read StackOverflow → 应用解决方案
🔧 怎么用
omp
> 搜索inference-time compute scaling的最新论文
# web_search → 10个Perplexity结果
# Agent选择arxiv论文
# read https://arxiv.org/pdf/2604.10739v1
# → 总结论文核心结论+具体数字
web_searchread
09
⚙️ 原生实现,零外部依赖
其他Agent调用rg/grep/find/bash——这些二进制可能不存在,每次调用都是fork-exec开销。omp把ripgrep、glob、find链接进进程内执行。brush是内建bash。同一二进制跑在macOS/Linux/Windows,无需WSL。
🎯 解决场景
Windows原生:不需要WSL,PowerShell直接跑
性能敏感:搜索大代码库 → 进程内ripgrep比fork快10倍
最小依赖:裸机/CI环境无需安装额外工具链
🔧 怎么用
# 无需额外安装
bun install -g @oh-my-pi/pi-coding-agent
omp # 直接可用
# Windows PowerShell
irm https://omp.sh/install.ps1 | iex
omp # 原生运行,无需WSL
native
10
📋 代码Review:优先级+裁决
/review生成明确裁决(是否可以发布),每个问题P0-P3分级+置信度评分。专用reviewer子Agent并行扫描分支/单commit/未提交工作。先处理阻塞发布的,不遗漏。
🎯 解决场景
发布前Review:/review → P0问题必须修 → P3可以后续
PR Review:扫描整个分支 → 并行review → 裁决+优先级
增量Review:只review未提交的变更 → 快速反馈
🔧 怎么用
omp
/review # review未提交变更
/review --branch main # review整个分支
/review --commit HEAD # review最近commit
# 输出:
# Verdict: BLOCKED
# P0: SQL注入风险 (confidence: 95%)
# P1: 缺少错误处理 (confidence: 80%)
# P3: 命名不规范 (confidence: 60%)
/review
11
📝 Hashline编辑:内容哈希锚定
模型用锚点指向要修改的位置,而不是重打整行。空格战和字符串找不到循环直接消失。编辑过期文件时锚点发散——在破坏任何东西之前拒绝patch。Grok 4 Fast同样工作少61%token。
🎯 解决场景
精确编辑:修改一行 → 只发锚点+新内容,不重打周围代码
防破坏:文件已变 → 锚点不匹配 → 拒绝patch → 不破坏
省Token:同样编辑量,输出token减少61%
🔧 怎么用
omp
> 把第42行的timeout从3000改为5000
# edit工具用内容哈希锚定第42行
# 只发送锚点+新值,不重打整行
# 如果文件已变 → 锚点不匹配 → 拒绝
edit
12
📂 GitHub即文件系统
PR是路径,issue是路径。read pr://1428 和 read src/foo.ts 返回同样的结构。search遍历diff像遍历目录。agent://id/findings.0.path 从子Agent输出中按路径提取字段。一个接口教会模型,一个面保持正确。
🎯 解决场景
读PR:read pr://1428 → 和读文件一样的体验
读Issue:read issue://567 → 结构化内容
搜diff:search遍历PR diff → 像搜目录一样搜变更
🔧 怎么用
omp
> 看看PR #1428改了什么
read pr://can1357/oh-my-pi/1428
read pr://can1357/oh-my-pi/1428/diff/1
search "formatBytes" in pr://1428
# 12种内部scheme:
# pr:// issue:// agent:// skill://
# rule:// conflict:// ...
githubread
13
🧠 Hindsight:Agent自管的记忆系统
Agent跨session记住你的代码库。运行中用retain写入事实,用recall拉回,每个session压缩成心智模型在下次首轮加载。项目级隔离——这个repo学到的不泄漏到那个repo。
🎯 解决场景
跨session记忆:昨天学的架构决策 → 今天自动加载
项目知识积累:retain "这个项目用Zod做验证" → 下次自动遵循
经验沉淀:retain "部署前必须跑migrate" → 不再忘记
🔧 怎么用
omp
> 记住:这个项目部署前必须跑 db:migrate
# Agent调用 retain 写入
# 下次session自动 recall
# reflect → 综合回答
# 或手动:
> recall "部署流程"
> reflect "这个项目的架构决策有哪些?"
retainrecallreflect
14
🖥️ ACP:编辑器内驱动Agent
在Zed编辑器里运行omp,Agent读你正在看的buffer、写通过编辑器的保存路径、在编辑器的终端里起shell。破坏性工具暂停等你授权。无桥接、无插件、无第二大脑同步。
🎯 解决场景
编辑器内编程:在Zed里直接和Agent对话,所见即所得
权限控制:破坏性操作暂停 → 你授权一次 → 后续自动
零配置:同一Agent,终端和编辑器行为一致
🔧 怎么用
# 在Zed编辑器中安装omp扩展
# Agent读取你当前buffer
# 写入通过编辑器保存路径
# 破坏性操作 → 暂停 → 你授权
# 终端和编辑器同一Agent
# 无需同步第二大脑
ACP
15
📦 继承其他Agent的配置
直接读取8种已有配置格式:Cursor MDC、Cline .clinerules、Codex AGENTS.md、Copilot applyTo等。无需迁移脚本、YAML→TOML转换、"支持子集"脚注。团队上季度写的配置今晚还能用。
🎯 解决场景
从Cursor迁移:已有.cursorrules → omp直接读取,零转换
混合团队:部分人用Cline、部分用Codex → omp全兼容
渐进切换:不用一次性迁移,omp读原有配置即可
🔧 怎么用
# 无需任何迁移操作
# omp自动读取:
# .cursor/rules/*.mdc
# .clinerules
# AGENTS.md (Codex)
# .github/copilot/*.md (applyTo)
# 等等... 共8种格式
config
16
✅ omp commit:原子化拆分提交
读取working tree → 按依赖排序拆分无关变更为原子commit → 循环检测拒绝 → 源码优先于测试/文档/配置 → lock文件排除分析。headline commit是最重要的那个。
🎯 解决场景
规范提交:一堆改动 → 自动拆成多个语义清晰的commit
代码Review:每个commit只做一件事 → review更容易
回滚友好:原子commit → 出问题精准回滚单个commit
🔧 怎么用
omp commit
# 自动:
# 1. git_overview → git_file_diff → git_hunk
# 2. 拆分无关变更
# 3. 按依赖排序
# 4. 源码 > 测试 > 文档 > 配置
# 5. 循环检测 → 拒绝
# 6. 逐个commit
commit
17
🔀 12种内部URI Scheme
pr://、issue://、agent://、skill://、rule://、conflict://等12种内部scheme在所有FS形工具中透明解析。read pr://1428和read src/foo.ts返回同样结构。search遍历diff像遍历目录。
🎯 解决场景
统一接口:PR/Issue/Agent输出/技能 → 全部用read读
跨域搜索:search在PR diff里搜 → 和搜文件一样
子Agent结果提取:agent://id/findings.0.path → 按路径取字段
🔧 怎么用
read pr://1428
read issue://567
read agent://worker1/findings.0.path
search "TODO" in pr://1428
read skill://my-skill
read rule://no-box-leak
URI schemes
18
⚡ 冲突解决:一行URL
每个merge冲突变成一个URL。Agent写@theirs/@ours/@base到conflict://N,文件干净解决。批量:conflict://*。
🎯 解决场景
合并冲突:git merge冲突 → Agent逐个选择theirs/ours
批量解决:conflict://* → 全部用同一策略
精细控制:不同冲突不同策略 → 逐个conflict://N
🔧 怎么用
omp
> 解决所有合并冲突,优先用theirs
# read src/session.ts (⚠ 1 conflict)
# write conflict://1 → @theirs
# ✓ Resolved.
# 或批量:
# write conflict://* → @theirs
conflict://
19
👁️🗨️ AST编辑:预览→接受
ast_edit返回(proposed)卡片+替换数。变更暂存。Agent调用resolve确认→TUI变成Accept卡片→磁盘写入——原子性,全有或全无。
🎯 解决场景
结构化重构:AST级替换 → 不破坏代码结构
安全确认:先预览3处替换 → 确认后才写入
批量修改:一次AST模式匹配 → 多文件替换 → 原子写入
🔧 怎么用
omp
> 把所有 console.log($X) 替换为 logger.debug($X)
# ast_edit: console.log($X) → logger.debug($X)
# (proposed) 3 replacements · 1 file
# resolve → Accept
# Applied 3 replacements in src/auth.ts
ast_editast_grep
20
🌍 真浏览器驱动 + Electron应用
Stealth默认开启,页面看到正常用户而非headless bot。同一API驱动任何Electron应用——指向Slack,Agent像读网页一样读你的DM。
🎯 解决场景
网页自动化:驱动浏览器填表单、点按钮、截数据
反爬:Stealth模式 → 网站检测不到是bot
Electron应用:驱动Slack/Discord → 读消息、发消息
🔧 怎么用
omp
> 打开duckduckgo搜索"Rust async runtime对比"
# browser工具自动启动Chromium
# Stealth模式 → 反检测
# 读取搜索结果 → 总结
# 或驱动Electron应用:
> 读取Slack里最近的DM
browser
🏗️
大型项目重构
需要跨多文件安全重命名、移动文件、更新import
LSP references → LSP rename → 验证0残留 → omp commit原子提交
🐛
生产Bug调试
C/Rust段错误、Go死锁、Python卡住
debug attach → 设断点 → 单步 → 读变量 → 定位根因 → 修复
📊
数据分析报告
CSV/Excel → 统计 → 可视化 → 写报告
eval Python读CSV → pandas分析 → JS画图 → write报告
📝
代码Review流水线
PR提交前自动review+优先级裁决
/review → P0必须修 → P1建议修 → P3后续 → Verdict
🔬
技术调研
搜索论文/最佳实践 → 对比分析 → 写文档
web_search → read arxiv → read SO → 对比 → write文档
🔀
并行多模块开发
同时开发auth/api/db三个模块
task → 3个隔离worktree → 并行开发 → typed结果汇总
🤝
团队结对编程
远程协作,实时共享Agent会话
/collab → 分享链接/QR → 队友omp join → 实时协作
🛡️
安全编码守卫
防止Agent写危险代码,实时纠偏
TTSR规则 → 流式匹配 → 中断 → 注入规则 → 重试 → Advisor复核
🧠
跨Session项目知识
记住架构决策、部署流程、团队规范
retain写入 → 下次session自动recall → reflect综合回答