omp 使用指南:把 IDE 装进终端的全能 Coding Agent
Sakura1618前言
在之前的两篇文章里,我分享过自己用 RooCode 和 OpenCode + OMO 搭的 Vibe-coding 工作流(半自动篇、全自动篇)。它们解决的是”让 AI 持续帮我写代码”,但用得越久,越能感觉到几类反复出现的问题:
- 工具链是拼的:编辑器、终端、浏览器、调试器各管一摊,agent 想看运行时状态就得来回倒腾;
- 模型被绑死:换一家模型往往等于换一套工具链;
- 子代理是黑盒:派出去的子任务只能等结果,不能中途看、不能纠偏,失败只能重开;
- 长会话会失忆:上下文一满,要么截断丢信息,要么全靠模型自己总结;
- 会话是消耗品:换项目、换机器,积累的上下文和协作方式带不走。
最近我把日常主力换成了 omp(仓库名 oh-my-pi),用下来它恰好在这几个点上给了解法。这篇文章按「它是什么 → 相比其他 agent 的优势 → 怎么用 → 特色功能」的顺序完整介绍一遍。内容基于 omp 官方文档与我的使用体验整理,不是跑分对比。
别和之前提过的 OMO(oh-my-openagent)搞混:omp 是 oh-my-pi 项目的命令行工具名,两者不是同一个东西。
omp 是什么
omp 是一个终端优先(terminal-first)的 coding agent,官方定位是 “A coding agent with the IDE wired in”——把 IDE 级别能力直接内置进 agent,而不是靠外挂插件一点点补。几个硬信息:
- 官网 omp.sh,文档 omp.sh/docs,开源仓库 can1357/oh-my-pi(MIT),由 Stencil Labs 开发;
- 原生 Rust 核心,Windows 原生支持,不需要 WSL;
- macOS / Linux / Windows 一条命令安装(见下文);
- 它不是绑定某家模型的客户端,而是一个可换模型、可扩展、可编程的 agent harness。
相比其他 agent 的优势
1. IDE 能力内置,不用自己拼插件
omp 开箱自带且默认可用:
- LSP 代码智能:跳定义、查引用、重命名、诊断、格式化,按项目自动发现语言服务器;
- DAP 真机调试:对运行中的进程下断点、单步、看变量;
- 结构化编辑:codemod、符号级重命名,带”预览 → 接受 / 拒绝”确认,不怕大规模误改;
- 浏览器自动化:默认受管 Chromium;也可用 Browser Relay 接管你自己 Chrome 的标签页;
- 桌面控制:截图 + 无障碍树操作真实桌面应用;
- GitHub / 提交 / 安全扫描:读 issue / PR、生成 commit、
/security扫描。
很多 agent 这些能力要靠 MCP / 插件逐个装,omp 是同一套上下文里的内置工具。
2. 模型自由 + 角色分工
供应商层面,omp 可以同时接入:订阅 OAuth(Claude、ChatGPT 等)、各家 API Key、自建 OpenAI 兼容网关(new-api / one-api / Sub2API 这类)、本地模型(Ollama、llama.cpp、LM Studio、vLLM)。
更重要的是模型角色(model roles),把不同工作分给不同模型:
| 角色 | 用途 |
|---|---|
default |
主会话模型 |
smol / tiny |
轻量任务(会话标题、快速子代理) |
slow |
深度推理 |
plan |
规划模式 |
task / advisor / judge |
子代理 / 顾问审查 / 批量判定 |
vision / image / speech |
看图 / 生图 / 语音 |
配合 @smol、@slow 这类别名和 /modelpreset(整套角色一键切换),成本和质量可以精细控制——单模型绑定的 agent 做不到这一点。
3. 真正的多代理:可观察、可接管、可复活
- 一次
task调用可以批量派发多个子代理,默认并发上限 32,后台异步执行; - 内置专家:
scout(只读调研)、designer、reviewer、security-reviewer、librarian(查外部库/API)、task、sonic(机械性修改); - Agent Hub(
Alt+A)是实时控制台:看每个 worker 的状态(running / idle / parked / aborted)、用量、当前工具;可以进去接管对话、发指令纠偏、复活已休眠的代理,或 kill; - 子代理能跑在隔离工作区(worktree / overlay 等),完成后按补丁或分支合并,互不干扰。
很多工具的”子代理”发出去就只能等;omp 更像一个你随时能介入的团队。
4. 长任务有”工作模式”,不只是聊天
- Plan 模式(
/plan):只读规划,产出 Markdown 计划,进入 Plan Review 逐节审阅、批注、删改;批准时可选”全新会话执行 / 压缩上下文后执行 / 保留全部上下文执行”; - Goal 模式(
/goal):给一个持久目标,跨多轮自动推进,带 token 预算,可暂停、恢复、查看; - Vibe 模式(
/vibe):主会话退居只读的”导演”,并行指挥多个 worker(fast 档用sonic,good 档用task)推进多条独立工作流。
再配合 /loop(重复任务)、/force(强制某次工具调用)、/fast(优先服务)等回合控制,长任务不容易”跑偏了只能重开”。
5. 上下文工程与记忆
- 自动压缩按顺序尝试多种策略:provider 原生压缩 → snapcompact(把旧历史渲染成 PNG 交给视觉模型,省 token 又保信息)→ handoff 结构化交接 → shake(大块输出换成可恢复引用)→ soft 摘要;
- 手动入口:
/compact、/handoff、/shake; - 记忆后端可选:
local(项目总结 + 经验)、Mnemopi(本地 SQLite + 向量检索)、Hindsight(远程)、Sharpshooter(决策文件),用/memory管理。
对比”截断 / 总结”两招打天下的方案,omp 是真把上下文当工程问题在做。
6. 会话是一等公民
- 自动保存;
omp -c/omp -r恢复;/resume选择器支持跨项目搜索; /fork、分支、会话树(/tree),可以大胆试错;/export导出 HTML,/share生成端到端加密分享链接;/collab实时协作:把正在跑的会话分享给别人,对方在自己终端或浏览器(my.omp.sh)里看直播、发指令、打断;omp stream还能把会话直播到 live.omp.sh(需登录 Stencil 账号);- 兼容导入:
--from-claude/--from-codex把 Claude Code / Codex 的历史会话导进来接着用。
7. 可扩展、可编程
- Skills:
SKILL.md技能包,官方市场 skills.omp.sh,/skill:<name>调用; - 插件与市场:
/marketplace兼容 Claude Code 的插件市场格式(如/marketplace add anthropics/claude-plugins-official),插件可包含 skills、命令、agent、hooks、MCP、LSP/DAP 适配器; - Hooks / 自定义工具 / MCP / 扩展 API:事件钩子能拦截、改写工具调用,扩展用 TypeScript 编写;
- 程序化接入:
omp -p一次性输出、--mode json机器可读、RPC / ACP(编辑器集成)、SDK(@oh-my-pi/pi-coding-agent); - 内置 eval 内核:持久 Python / JS 运行时,直接调
judge()批量判定、agent()派子代理、workpool()起工作池。
怎么使用
安装
macOS / Linux:
1 | curl -fsSL https://omp.sh/install | sh |
Windows(PowerShell):
1 | irm https://omp.sh/install.ps1 | iex |
验证与更新:
1 | omp --version |
第一次启动
1 | cd ~/code/my-project |
首次启动进入设置向导:
- Set up your providers:选 “Sign in” 用浏览器登录订阅账号(可登录多个);习惯 API Key 的话,先在终端
export ANTHROPIC_API_KEY=...这类环境变量,再按 Esc 跳过; - Choose your default model:搜索并选定默认模型;
- 完成后每次启动直接进对话。
后续用 /model(或 Alt+M)换模型,/login 重新登录。
基本交互
| 操作 | 按键 |
|---|---|
| 发送;工作中插话(steer) | Enter |
| 排队”做完再说”的消息 | Ctrl+Q / Ctrl+Enter |
| 打断当前回合 | Esc(不会退出) |
| 展开 / 收起工具卡片 | Ctrl+O |
| 只看文字,隐藏工具活动 | Ctrl+Shift+O |
| 搜索历史提示词 | Ctrl+R |
| 引用项目文件 | 输入 @ 模糊搜索 |
| 粘贴图片 | Ctrl+V |
| 外部编辑器写长 prompt | Ctrl+G |
| 继续上一意图 | 发送 . 或 c |
| 重试失败的回合 | Alt+R |
一个可以直接复制的首任务:
1 | 通读这个项目,找出一个能在本地验证的小 bug 或小不一致; |
常用斜杠命令
| 命令 | 用途 |
|---|---|
/settings |
设置面板 |
/model、/modelpreset |
选模型 / 角色预设 |
/plan、/plan-review |
规划模式 / 重开计划评审 |
/goal |
目标模式(set / show / pause / resume / drop / budget) |
/vibe |
导演模式,并行指挥 worker |
/compact、/handoff、/shake |
手动压缩 / 结构化交接 / 去冗余 |
/memory |
记忆查看与维护 |
/resume、/fork |
恢复 / 派生会话 |
/export、/share |
导出 HTML / 加密分享 |
/collab、/join |
实时协作 |
/marketplace、/plugins |
插件市场 |
/skill:<name> |
调用技能 |
/security |
安全扫描 |
/agents、/jobs |
子代理定义 / 后台任务快照 |
/advisor |
顾问模型开关与配置 |
/context、/usage |
上下文用量 / 用量统计 |
/loop、/force、/fast |
回合控制 |
常用 CLI
1 | omp # 交互式会话 |
配置与接入自建号池
- 全局配置:
~/.omp/agent/config.yml;项目级:<项目>/.omp/config.yml; - 模型 / 供应商定义:
~/.omp/agent/models.yml; - 会话内用
/settings,命令行用omp config,两者等价。
以我 自建 AI 号池 里的 Sub2API 网关为例,在 models.yml 里加自定义供应商:
1 | providers: |
然后 omp models refresh,/model 里就能看到号池模型。想把角色分配到号池模型,在 config.yml 里写:
1 | modelRoles: |
特色功能详解
模型角色与预设
在 /model(或 Alt+M)里进入 Roles 页,可以给每个角色单独指定模型和思考等级;在 Roles 页按 s 把当前整套分配存成预设,之后用:
1 | /modelpreset save cheap # 保存当前角色分配与思考等级 |
预设写在 config.yml 的 modelPresets 里,适合准备”日常省钱”和”攻坚高质量”两套配置来回切。
子代理与 Agent Hub
让 omp 并行干活时,它会派发具名 worker(也可以点名,比如”用 librarian 核实上游重试语义”)。按 Alt+A 打开 Agent Hub:
- 列表里能看到每个代理的状态、模型、开销、请求数、token 数;
Enter进入某个代理的会话,直接输入消息就是 steer;r复活 parked(已休眠)的代理,x杀掉;t切换平铺 / 树形视图,/过滤;- 输入框上方常驻 Subagents 小面板,实时显示每个 worker 正在做什么。
配合隔离工作区(task.isolation),几个 worker 可以同时改代码而互不打架;子代理的产出还能用 agent://<id>(最终产物)和 history://<id>(对话记录)随时回看。
Plan / Goal / Vibe 三种工作模式
- Plan:
/plan 把内存队列换成 Postgres,保持公共 API 不变。只读调研后产出计划,Plan Review 里可以逐节批注、删改,批准时选择实现方式(新会话 / 压缩后 / 保留上下文)。适合跨文件重构、迁移这类”先想清楚再动手”的任务。 - Goal:
/goal 修复所有 flaky 测试。omp 会跨多轮自动推进,空闲片刻自动继续下一轮;/goal show看进度和 token 用量,/goal budget 500000设预算,超预算自动收尾而不是无限烧钱。 - Vibe:
/vibe后主会话变成导演,只读 + 派活,用fast(sonic)和good(task)两档 worker 并行推进多条工作流,你来审阅和纠偏。适合”三条独立支线同时开工”的场景。
三种模式互斥,Plan 还有暂停态,切换前先完全退出。
魔法关键词
在 prompt 里写一个特定单词,就能改变这一次回复的执行方式(只影响当次,不进入会话状态):
| 关键词 | 效果 |
|---|---|
ultrathink |
这一轮强制最认真的多步推理;自动思考模式下会拉到当前模型支持的最高推理档 |
orchestrate |
把任务里相互独立的部分拆给子代理并行做,再汇总验证 |
workflowz |
更显式的多代理工作流(并行 + 分阶段 + 综合),适合大范围调研、审查、迁移 |
jevify |
面向批量判定的工作流:先冻结标准,再用 eval 内核的 judge() 批量分类,只读被判为有问题的条目 |
示例:
1 | orchestrate 把这三个独立包的构建失败分别修掉 |
匹配规则很克制:必须小写、独立成词,代码块 / 行内代码里的同名文字不会触发,避免误伤正常讨论。
上下文压缩与记忆
omp 的自动压缩是一条策略链:provider 原生压缩(OpenAI Responses / Anthropic 自带的服务端压缩)→ snapcompact → handoff 交接文档 → shake → soft 摘要,前一个不可用就顺延下一个。
其中 snapcompact 最有意思:它把即将被丢弃的历史序列化后渲染成 PNG 图片交给视觉模型——本地完成、不额外调用模型,用”看图”的方式保留比纯文本更便宜的长历史。会话太长时也可以手动压缩:
1 | /compact # 常规压缩 |
记忆(跨会话的长期知识)是可插拔的:local 把每个项目的会话总结成记忆文件,Mnemopi 是本地 SQLite + 向量检索,Hindsight 走远程服务,Sharpshooter 维护决策文件;/memory 查看、同步、清理。
协作与分享
/share:把当前会话打包成端到端加密链接(密钥放在 URL fragment 里,服务端只见密文),对方浏览器打开就能看完整对话;/collab:实时分享正在跑的会话。对方可以omp join到自己终端,或直接用浏览器打开 my.omp.sh 加入——能看直播、发指令、按 Esc 打断(只读链接则只能看);适合结对排障或”远程指挥”;omp stream:把终端画面单向直播到 live.omp.sh/<用户名>,适合演示、教学;/export:导出为自包含 HTML,便于归档。
代码智能、调试与守卫
- 在项目根目录启动后,omp 会按
package.json/Cargo.toml/go.mod等标记自动拉起语言服务器,跳转、引用、重命名、诊断都是原生体验; - 结构化编辑(codemod)有”预览 → 接受 / 拒绝”三步,符号重命名会沿引用、作用域、导入/导出传播,而不是文本替换;
- 需要看运行时状态时,它可以用 DAP 直接调试进程,不用你手工加 print;
- TTSR(Time-Traveling Stream Rules):在
.omp/rules/里放一条规则,就能在模型”正在生成”时拦截——比如禁止在 Rust 里写Box::leak:
1 | --- |
匹配时 omp 会立刻打断这次生成,把规则正文喂给模型重新生成——是”工具调用执行前的拦截”,不是事后补救。规则可以用 omp ttsr test / list / scan 单独验证。
- Advisor(顾问模型):让一个独立模型在旁边被动审查每一轮工作,发现问题就注入提醒;用项目里的
WATCHDOG.md定制审查重点(比如”绕过队列的写入””未转义的用户输入”),/advisor开关和配置。
可编程与集成
- eval 内核:会话内直接跑持久化的 Python / JS,状态跨调用保留,还能把函数注册成工具给子代理用:
1 | data = read("package.json") |
judge() / judge_batch() 做批量判定,agent() / workpool() 起子代理和工作池,completion() 做无工具的单次模型调用——写自动化脚本不用离开会话。
- Browser Relay:
omp browser-relay install后把~/.omp/browser-relay/extension加载进 Chrome,omp 就能直接操作你自己的浏览器标签页(保留登录态);也可以让它用受管的无头 Chromium。 - 桌面控制:开启后能截图、点按真实桌面应用(macOS 需要屏幕录制 / 辅助功能权限),处理那些没有 API 的老软件。
- MCP / Hooks / 插件:既支持标准 MCP 服务器,也有事件钩子和 TypeScript 扩展;插件市场兼容 Claude Code 格式,生态可以直接复用。
- 程序化:
omp -p适合 CI / 脚本,--mode json输出结构化事件流,omp acp给编辑器做集成,SDK 可以把 agent 嵌进自己的程序;官方还有个robomp,能拿 GitHub webhook 自动分诊 issue 并提修复 PR。
总结
什么样的人适合 omp:
- 习惯在终端里干活,希望一个工具覆盖”调研 → 编码 → 调试 → 验证 → 提交”全流程;
- 手里有多个模型来源(订阅、API、自建网关、本地模型),想做精细化分工和成本控制;
- 经常跑长任务、开多项目并行,需要子代理可观察、会话可恢复、上下文可控;
- 需要分享、协作、审计会话的团队场景。
两个上手提醒:
- omp 默认是 Yolo 审批模式(读写执行不弹确认)。敏感项目建议在
/settings→ Interaction → Approvals 改成 Always ask,或用omp --approval-mode always-ask启动; - 成本上善用模型角色和
/goal预算:重活给slow/plan,轻活交给smol,别让主模型干所有事。
相关链接:

