oh-my-pi:内置 LSP 与调试器的终端 AI 编程智能体,从安装到并行子代理实操全解
【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in. Built by Stencil Labs.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi
你在终端里跑 AI 编程 Agent 时,多半自己拼过这套东西:LSP 诊断单独接、调试器手动挂、子代理自己写调度。oh-my-pi 把这些部件收进了一个二进制,命令行名omp,LSP、真实调试器、子代理全部内置。
先看硬数据:oh-my-pi 内置了什么,量级如何
一句话定位:omp是一个终端原生 AI 编程智能体,IDE 的语言服务器与调试器不靠外部脚本,直接编译在进程内。
| 数据 | 量级 |
|---|---|
| 内置工具 | 31 个,含lsp、debug、task、eval、grep、bash |
| Rust 核心 | 约 8 万行,6 个 crate,搜索/shell/AST 全部进程内,零 fork/exec |
| 模型接入 | 60+ 供应商,oauth 账号登录、plan 订阅、local 本地推理三种认证 |
| LSP / DAP 操作 | 14 种 LSP 操作、28 种 DAP 操作 |
| 内置 shell 命令 | 58 个移植进 builtins crate(ls、sed、sort、jq等) |
平台覆盖 macOS、Linux、Windows,不需要 WSL 桥接。
从安装到第一条真实修改:oh-my-pi 的首次运行流程
macOS / Linux 用官方脚本:
curl -fsSL https://omp.sh/install | sh omp --version--version打出版本号即装好;脚本没有可用 bun 时会拉预编译二进制并校验 SHA-256。备选方式:
- Homebrew:
brew install can1357/tap/omp - 已有 Bun 环境(官方推荐):
bun install -g @oh-my-pi/pi-coding-agent - Windows PowerShell:
irm https://omp.sh/install.ps1 | iex - Nix:
nix run github:can1357/oh-my-pi
裸跑omp进入首次引导:选供应商、登录或填 API Key、定默认模型。配置完成后,到项目根目录下第一条真实指令:
omp "给 src/utils.ts 的 formatDate 函数加一个时区参数,保持向后兼容"验证信号:每个read、grep、edit渲染成独立工具卡片;编辑以提案卡片预览,你确认后原子落盘。
跑三个真实任务:LSP 重命名、eval 绘图、task 子代理并行
任务一:重命名一个被到处引用的符号。旧做法是全局文本替换,re-export 和别名导入全靠运气。直接说"把 X 改名为 Y",调用走语言服务器的willRenameFiles通道:re-export、桶文件、别名导入在文件移动之前就已同步更新。改动仍以提案卡片出现,确认后原子应用。
任务二:让 Python 常驻运行并读项目文件画图。eval工具提供 Python 和 JavaScript 两个常驻内核,一次调用是一个 cell,状态跨调用保留,代码里还能通过tool.read({...})回调 Agent 自己的read工具——读项目里的 CSV,就地画完图,图片直接渲染回终端。
任务三:把大任务拆给并行子代理。task把父任务 fan out 到多个隔离 worker,各 worker 独立跑自己的工具栈,返回的是 schema 校验过的结构化结果,父会话直接消费,不解析散文,也没有兄弟任务间的合并冲突。运行中按Alt+A打开 Agent Hub,查看每个子代理的实时活动。
常用操作速查:会话、模型与评审
| 场景 | 操作 | 预期结果 |
|---|---|---|
| 跨天续接上次开发 | omp --continue | 直接接上一个会话 |
| 翻历史会话 | omp --resume | 打开选择器,按 ID 前缀恢复 |
| 会话内换供应商 | /login | 登录另一供应商账号 |
| 会话内换模型 | /model;Ctrl+P循环已配置模型 | 下一轮用新模型 |
| 本地推理免 API Key | ~/.omp/agent/models.yml配置 Ollama / LM Studio / llama.cpp | 不填 key 直接跑 |
| 评审未提交改动 | /review | 评审子代理并行扫描,问题按 P0–P3 分级并给出结论 |
| 加载新写的扩展 | /reload-plugins | 扩展即刻生效 |
| 接入 CI 脚本 | omp -p "任务" | 处理完退出,不进 TUI |
| 一次性会话不落盘 | omp --no-session "任务" | 结束即弃,不可--resume |
| shell 补全 | eval "$(omp completions zsh)" | 子命令、模型名、会话 ID 均可补全 |
避坑与边界:Alpine 依赖、过期锚点与临时会话
- 🐳Alpine / musl 上二进制起不来。原因:预编译 musl 二进制动态链接
libstdc++/libgcc,发行版默认不带。处理:先apk add libstdc++ libgcc,再执行安装脚本。 - ⚠️ 补丁被拒绝,提示锚点过期。原因:hashline 编辑用内容哈希做锚点,文件在读取之后被改过,哈希对不上。这是设计行为——拒绝比写坏文件安全。处理:让 Agent 重新
read后再编辑。 --no-session的会话无法找回。该标志使会话不落盘,--continue、--resume、--fork都要求持久化,与它互斥。处理:需要留痕就去掉该标志。
适合谁与不适合谁
- 每天在终端里改代码,希望智能体带上语言服务器与调试器,而不是每次自己接。
- 有 Ollama、LM Studio 一类本地推理环境,想不填 API Key 跑起来。
- 需要并行分析多个包、用 LSP 做安全重命名的人。
- 反向条件:如果你只是想要一个浏览器里的云端 Agent,或者你的工作流重度依赖 IDE 插件生态,omp 的终端 TUI 加 ACP 路线就不是最短路径。
延伸阅读
- 全部 CLI 参数与子命令:docs/cli-reference.md
- edit 工具的 hashline 编辑机制:docs/tools/edit.md
- 模型与供应商配置:docs/models.md
- LSP 配置:docs/lsp-config.md
- task 子代理参数详解:docs/tools/task.md
- 核心 CLI 与 SDK 源码:packages/coding-agent/
核心闭环是:装好、跑通一次修改、跨天续会话、评审拿到结论。下一步:加--smol指定轻量模型先跑首轮扫描,再用task派两个子代理并行分析两个包目录,跑完/review看 P0–P3 清单。
【免费下载链接】oh-my-pi⌥ Coding agent with the IDE wired in. Built by Stencil Labs.项目地址: https://gitcode.com/GitHub_Trending/oh/oh-my-pi
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考