can1357/oh-my-pi
GitHub: can1357/oh-my-pi
一个集成 IDE 功能的终端 AI 编码代理,解决代码编辑、调试和自动化任务中的效率问题。
Stars: 10874 | Forks: 918
**一个集成 IDE 的编码代理。**
**omp.sh**
Fork of Pi by @mariozechner
最强大的开箱即用智能体界面。经过真实世界使用场景的持续调优——开箱即用,完全开源。
**40+** 提供商 · **32** 内置工具 · **13** LSP 操作 · **27** DAP 操作 · **~27k** 行 Rust 核心代码。
## 安装说明
**macOS · Linux**
```
curl -fsSL https://omp.sh/install | sh
```
**Bun (推荐)**
```
bun install -g @oh-my-pi/pi-coding-agent
```
**Windows (PowerShell)**
```
irm https://omp.sh/install.ps1 | iex
```
**固定版本 (mise)**
```
mise use -g github:can1357/oh-my-pi
```
macOS · Linux · Windows · bun ≥ 1.3.14
## 所有工具,_经 benchmark 验证_。
首次编辑即可落地。文件阅读进行摘要而非转储内容。搜索瞬间返回结果。选择任意模型——omp 都能搞定。
| 模型 | 指标 | 说明 |
| ------------------ | ------------ | ----------------------------------------------------------------- |
| Grok Code Fast 1 | 6.7% → 68.3% | 当编辑格式不再拖累模型时,性能立即提升十倍。 |
| Gemini 3 Flash | +5 pp | 在 str_replace 上——超越了 Google 自身对该格式的最佳尝试。 |
| Grok 4 Fast | −61% 标记数 | 一旦错误差异的重试循环消失,输出标记数骤降。 |
| MiniMax | 2.1× | 通过率翻倍以上。相同的权重,相同的提示。 |
- `read`:摘要片段 · 理想默认值 · 选择器命中率
- `search`:速度最快
- `lsp`:IDE 知道的一切,代理也知道
- `prompts`:为每个模型不断调整
[阅读完整文章 ↗](https://blog.can.ac/2026/02/12/the-harness-problem/)
## 你喜爱的 Pi,_现在配备全套工具_。
最初基于 [Mario Zechner](https://github.com/mariozechner) 出色的 [Pi](https://github.com/badlogic/pi-mono) 构建,omp 添加了你所需要的一切。
### 01 · 通过工具调用执行代码
大多数框架只给代理一个 Python 沙箱就算完事。我们的系统运行持久化 Python 和 Bun 工作线程,并且任一内核都可以通过回环桥调用代理自身的工具——read、search、task。代理可以从 Python 内部用 tool.read 加载 CSV 文件,用 JavaScript 绘制图表,并且无需离开当前执行环境。
![omp TUI: 单个 eval 会话,包含 `[1/2] pandas describe`(Python)打印真实的 DataFrame.describe() 表格,随后是 `[2/2] top scorer`(JavaScript)运行 reduce 操作。页脚显示:“两个内核在同一会话中运行。”](https://omp.sh/captures/eval.webp)
### 02 · LSP 集成到每次写入操作
请求重命名,就会得到重命名。调用通过 workspace/willRenameFiles,因此重新导出、barrel 文件和别名导入会在文件移动前更新。IDE 知道的一切,代理也知道。

### 03 · 驱动真实的调试器
C 二进制程序段错误:代理连接 lldb,单步执行到错误指针,读取栈帧。Go 服务挂起:它连接 dlv 并遍历 goroutine。Python 进程卡住:debugpy,暂停,检查,评估。大多数代理还在撒 print 语句。

_[观看录屏 ↗](https://omp.sh/clips/dap.mp4)_
### 04 · 时间回溯流规则
你的规则处于休眠状态,直到模型偏离脚本。正则匹配会在流式输出中途中止,注入规则作为系统提醒,并从同一点重试。你可以在不支付每轮上下文税的情况下进行路线修正。注入在压缩后仍然有效,因此修正会持续生效。

_[观看录屏 ↗](https://omp.sh/clips/ttsr.mp4)_
### 05 · 一流的子代理
将任务拆分给多个 worker 并获取类型化的结果。task 分散到隔离的工作树中,每个 worker 运行自己的工具表面,最终产出是父代理直接读取的经过模式验证的对象。无需解析散文,兄弟间无合并冲突,无孤立编辑。

_[观看录屏 ↗](https://omp.sh/clips/irc.mp4)_
### 06 · 阅读 arxiv 上的 PDF,有何不可?
web_search 链接十四个排名提供商,并将找到的任何 URL 直接传递给 read。Arxiv PDF、GitHub 页面、Stack Overflow 帖子会作为带有完整锚点的结构化 markdown 返回——与你用于本地文件的工具表面相同。引用、跟踪、引用,永不丢失来源。

_[观看录屏 ↗](https://omp.sh/clips/web.mp4)_
### 07 · 毫不妥协的原生体验。即使在 Windows 上。
其他代理通过 shell 调用 rg、grep、find 和 bash。在许多机器上这些二进制文件不存在,即使存在,每次调用也需要一次 fork-exec 往返。omp 将真实的实现链接到进程中。ripgrep、glob、find:进程内执行。brush 就是 bash,其会话可在调用间保持存活。同一个 omp 二进制文件可在 macOS、Linux 和 Windows 上运行——无需 WSL 桥接。
### 08 · 带优先级和裁决的代码审查
获得关于变更是否可发布的明确裁决,每个问题按 P0 到 P3 排序,并评估置信度。/review 启动专用的审查员子代理,并行扫描分支、单个提交或未提交的工作。你首先处理阻碍发布的问题;重要的问题不会隐藏在散文墙中。
### 09 · Hashline:通过内容哈希编辑
完美编辑,更少标记。模型指向锚点而不是重新键入想要更改的行,因此空格对齐和找不到字符串的循环就不会再发生。编辑过时的文件时锚点会发散——我们在它破坏任何内容之前拒绝补丁。Grok 4 Fast 在相同工作上输出标记减少 61%。
### 10 · GitHub 只是另一个文件系统
其他框架添加了 gh_issue_view、gh_pr_view、gh_search——每个都有自己的参数,需要代理学习,你需要调试。我们跳过了这个。read 已经处理路径;PR 就是路径。一个接口用于教导模型,一个表面用于保持正确。
### 11 · Hindsight:代理策划的记忆
代理在会话之间记住你的代码库。它在运行中用 retain 写入事实,用 recall 取回,并将每个会话压缩为一个心智模型,在下一个会话的第一轮加载。默认按项目作用域,因此它对这个仓库的了解会保留在这个仓库。
### 12 · ACP:编辑器驱动的代理
在 Zed 内运行 omp,你得到的就是从终端驱动的那个代理——读取你实际查看的缓冲区,通过编辑器的保存路径写入,在编辑器的终端中启动 shell。破坏性工具会暂停等待权限提示,你可以一次性回答后忘记。无需桥接、插件或第二个需要同步的大脑。
### 13 · 继承你的其他工具已编写的内容
每个其他代理都提供导入器,并期望你进行转换。omp 以原生形式读取磁盘上已有的八种格式——Cursor MDC、Cline .clinerules、Codex AGENTS.md、Copilot applyTo 等等。无需迁移脚本,无需 YAML 到 TOML 的移植,没有“支持的子集”的脚注。你团队上个季度编写的配置今晚仍然有效。
### 14 · omp commit:原子拆分,验证的消息
omp 通过 git-overview、git-file-diff 和 git-hunk 读取工作树,然后将不相关的更改拆分为按依赖关系排序的原子提交。在写入任何内容之前会检测并拒绝循环。源文件得分高于测试、文档和配置,因此主要提交是最重要的。Lock 文件完全排除在分析之外。
### 15 · 阅读 PR。_遍历 skills。_ 从子代理提取 JSON。
十个内部方案——`pr://`、`issue://`、`agent://`、`skill://`、`rule://` 等——在代理已调用的每个类文件系统工具内透明解析。`read pr://1428` 返回的形状与 `read src/foo.ts` 相同。`search` 像遍历目录一样遍历 diff。`agent:///findings.0.path` 通过路径从子代理的输出中提取字段。
![omp TUI 读取 pr://can1357/oh-my-pi/1063,然后是 /diff/1,显示 hunk 标题、添加的行以及一个 [MODIFIED] (+12 -0) 的摘要。](https://omp.sh/captures/pr.webp)
### 16 · 轻松解决冲突。
每个合并冲突变成一个 URL。代理向 `conflict://N` 写入 `@theirs`、`@ours` 或 `@base`,文件即得到解决。批量形式:`conflict://*`。

_[观看录屏 ↗](https://omp.sh/clips/conflict.mp4)_
### 17 · 预览,然后接受。
`ast_edit` 返回一个带有替换计数的 _(提议)_ 卡片。更改已暂存。代理调用 `resolve` 并附上原因;TUI 将其变成一个 **Accept** 卡片,磁盘移动随之发生——原子操作,要么全部完成,要么全部不执行。

_[观看录屏 ↗](https://omp.sh/clips/codemod.mp4)_
### 18 · 驱动 _真实浏览器_。_或者你的 Slack?_
默认开启隐身模式,因此页面看到的是正常用户,而不是无头机器人。相同的 API 可以原地驱动任何 Electron 应用——将其指向 Slack,代理就可以像读取网页一样读取你的直接消息。

## 无论任务需要什么,_它都已在工具箱中_。
32 个工具与 `read` 和 `bash` 位于同一命名空间。用 `--tools read,edit,bash,…` 固定活动集,其余工具保持隐藏但被索引——当 `tools.discoveryMode` 设定时,`search_tool_bm25` 可在会话中将其召回。
**文件与搜索**
- `read` — 通过一个路径访问文件、目录、存档、SQLite、PDF、笔记本、URL 和内部 `://` 方案。
- `write` — 创建或覆盖文件、存档条目或 SQLite 行。
- `edit` — 使用内容哈希锚点和过时锚点恢复的哈希行补丁。
- `ast_edit` — 通过 ast-grep 进行结构化重写,预览后再应用。
- `ast_grep` — 基于 50+ tree-sitter 语法的结构化代码查询。
- `search` — 在文件、glob 和内部 URL 上进行正则搜索。
- `find` — 基于 glob 的路径查找;需要内容匹配时请使用 `search`。
**运行时**
- `bash` — 工作区 shell,支持可选 PTY 或后台作业调度。
- `eval` — 持久化 Python 和 JavaScript 单元格,具有共享 prelude 和工具重入功能。
- `recipe` — 从检测到的任务运行器调用目标——bun、just、make、cargo。
- `ssh` — 对配置的主机执行单个远程命令。
**代码智能**
- `lsp` — 诊断、导航、符号、重命名、代码操作、原始请求。
- `debug` — 驱动 DAP 会话——断点、单步执行、线程、堆栈、变量。
**协调**
- `task` — 并行分派子代理,可选择工作区隔离。
- `irc` — 此进程中活跃代理之间的简短散文。
- `todo_write` — 对会话待办事项列表进行带阶段跟踪的有序修改。
- `job` — 等待或取消后台作业。
- `ask` — 用于交互式运行的结构化后续问题。
**外部工具**
- `browser` — 通过 Puppeteer 控制无头 Chromium 或 CDP 连接应用的标签页。
- `web_search` — 跨配置提供商的单次查询,返回答案及引文。
- `github` — GitHub CLI 操作——仓库、PR、Issues、代码搜索、Actions 运行监视。
- `generate_image` — 通过 Gemini 图像模型生成或编辑光栅图像。
- `inspect_image` — 对本地图像文件进行视觉模型分析。
- `render_mermaid` — 将 Mermaid 源码转换为终端友好的 ASCII 或 PNG。
**记忆与状态**
- `checkpoint` — 标记对话状态以便稍后折叠和报告。
- `rewind` — 修剪探索性上下文,保留简洁报告。
- `retain` — 将持久事实排队到活动的 Hindsight 库中。
- `recall` — 在 Hindsight 库中搜索原始记忆。
- `reflect` — 要求 Hindsight 综合 Hindsight 库中的答案。
**杂项**
- `calc` — 确定性算术——无需模型参与。
- `resolve` — 应用或丢弃排队的预览操作。
- `search_tool_bm25` — 对隐藏工具索引进行 BM25 搜索;在会话中激活顶部匹配项。
设置门控,默认关闭:`github`、`calc`、`inspect_image`、`render_mermaid`、`checkpoint`、`rewind`、`search_tool_bm25`、`retain`、`recall`、`reflect`。一次性启用它们,按项目配置作用域。
[完整参考文档 →](https://omp.sh/docs/tools)
## 四十多个提供商,数百个模型,_一个 /model 命令即可切换_。
角色根据意图路由工作。`default` 用于普通轮次。`smol` 用于廉价子代理分派。`slow` 用于深度推理。`plan` 用于规划模式。`commit` 用于变更日志。启动时使用 `--smol`、`--slow` 或 `--plan` 覆盖;使用 `Ctrl+P` 在活动角色的已配置模型间循环。使用 `/model` 斜杠命令在会话中切换活动模型。
下方认证标签:`oauth` 使用您的提供商账户登录,`plan` 通过编码计划订阅路由,`local` 运行在本地服务器上,密钥可选。
### 前沿 API
直接 API 和网关。可按角色混合使用提供商。
Anthropic `oauth` · OpenAI · OpenAI Codex `oauth` · Google Gemini · Google Antigravity `oauth` · xAI · Mistral · Groq · Cerebras · Fireworks · Together · Hugging Face · NVIDIA · OpenRouter · Synthetic · Vercel AI Gateway · Cloudflare AI Gateway · Wafer Serverless · Perplexity `oauth`
### 编码计划
订阅路由。`/login` 关联会话。
Cursor `oauth` · GitHub Copilot `oauth` · GitLab Duo · Kimi Code `plan` · Moonshot · MiniMax Coding Plan `plan` · MiniMax Coding Plan CN `plan` · Alibaba Coding Plan `plan` · Qwen Portal · Z.AI / GLM Coding Plan `plan` · Xiaomi MiMo · Qianfan · NanoGPT · Venice · Kilo · ZenMux · Wafer Pass `plan` · OpenCode Go · OpenCode Zen
### 自行运行
兼容 OpenAI 的 `/v1/models`。本地实例无需密钥。
Ollama `local` · Ollama Cloud · LM Studio `local` · llama.cpp `local` · vLLM `local` · LiteLLM
### 让路由实用的四个旋钮
- **自定义提供商** — 在 `~/.omp/agent/models.yml` 中声明任何支持 `openai-completions`、`openai-responses`、`openai-codex-responses`、`azure-openai-responses`、`anthropic-messages`、`google-generative-ai` 或 `google-vertex` 的提供商。
- **回退链** — 在 `retry.fallbackChains` 下设置每个角色的链。当主提供商返回 429 或达到配额限制时,下一个条目接管剩余的轮次——冷却后恢复。
- **路径作用域角色** — 在 `modelRoles` 下嵌套 `paths:`,为某个仓库固定更重的 `default` 模型而不影响全局配置。最接近的路径生效。
- **轮换凭据** — 为每个提供商堆叠 API 密钥,运行时按会话亲和性和每凭据退避进行轮换。当一个密钥可能在午餐前烧光配额时很有用。
完整的提供商和路由参考请见 [omp.sh/docs/providers](https://omp.sh/docs/providers)。
## 十四个后端。_一个代理已知的工具_。
`web_search` 是内置的,不是外挂的。`auto` 遍历十四提供商链;如果你已付费,可以按名称固定一个。在每个命中结果背后,站点感知提取将 GitHub、注册表、arXiv、Stack Overflow 和文档转换为结构化 markdown——锚点和链接目标得以保留。
### 搜索提供商
十四个后端。固定一个,或让 `auto` 按顺序遍历链。
| 提供商 | 认证 |
| ------------ | ---------------------- |
| `auto` | 链式 |
| `exa` | `EXA_API_KEY` (或 mcp) |
| `brave` | `BRAVE_API_KEY` |
| `jina` | `JINA_API_KEY` |
| `kimi` | `MOONSHOT_API_KEY` |
| `zai` | `ZAI_API_KEY` |
| `anthropic` | oauth |
| `perplexity` | `PERPLEXITY_API_KEY` |
| `gemini` | oauth |
| `codex` | oauth |
| `tavily` | `TAVILY_API_KEY` |
| `parallel` | `PARALLEL_API_KEY` |
| `kagi` | `KAGI_API_KEY` |
| `synthetic` | `SYNTHETIC_API_KEY` |
| `searxng` | 自托管 |
### 专用处理器
代理获取结构化内容,而非剥离的 HTML。
- **代码托管平台** — github, gitlab
- **包注册表** — npm, PyPI, crates.io, Hex, Hackage, NuGet, Maven, RubyGems, Packagist, pub.dev, Go packages
- **研究来源** — arxiv, semantic scholar
- **论坛** — stack overflow, reddit, hn
- **文档** — mdn, readthedocs, docs.rs
页面转换为保留链接结构的 markdown。代理可以引用、跟踪和引用而不丢失锚点。
### 安全数据库
漏洞查询使用供应商数据回答,而非博客摘要。
- **NVD** — 国家漏洞数据库
- **OSV** — 开源漏洞源
- **CISA KEV** — 已知被利用的漏洞
[`web_search` 参考文档 ↗](https://omp.sh/docs/tools#web_search)
## 大约 **~27,000** 行 Rust,执行其他框架通过 shell 外包的工作。
三个 crate,一个平台标记的 N-API 插件。搜索、shell、AST、高亮、PTY、图像解码、BPE 计数——全部在 libuv 线程池中进程内执行。热路径上无 fork/exec。
- Crate:`pi-natives`、`pi-shell`、`pi-ast`
- 平台:`linux-x64`、`linux-arm64`、`darwin-x64`、`darwin-arm64`、`win32-x64`
下表是每个模块的分解,故意省略了胶水代码和测试。
| 模块 | 功能描述 | 依赖项 | ~代码行数 |
| ---------- | ------------------------------------------------------------------------ | ------------------------------------ | --------: |
| shell | 嵌入式 bash · 持久化会话 · 超时/中止 · 自定义内建命令 | brush-shell (vendored) | 3,700 |
| grep | 正则搜索 · 并行/顺序 · glob 与类型过滤器 · 模糊查找 | grep-regex · grep-searcher | 1,900 |
| keys | Kitty 键盘协议,带回退到 xterm · PHF 完美哈希查找 | phf | 1,490 |
| text | ANSI 感知宽度 · 截断 · 列切片 · SGR 保留换行 | unicode-width · segmentation | 1,450 |
| summarize | 使用省略控制的 tree-sitter 结构化源码摘要 | tree-sitter · ast-grep-core | 1,040 |
| ast | ast-grep 模式匹配和结构化重写 | ast-grep-core | 1,000 |
| fs_cache | 由 read、grep、lsp 共享的、以 mtime 为键的文件缓存 | in-tree | 840 |
| highlight | 语法高亮 · 11 个语义类别 · 30+ 别名 | syntect | 470 |
| pty | 用于 sudo 和 ssh 交互式提示的原生 PTY 分配 | portable-pty | 455 |
| glob | 使用 glob 发现 · 类型过滤器 · mtime 排序 · 遵守 gitignore | ignore · globset | 410 |
| workspace | 工作区遍历器,一次扫描中同时包含 gitignore 和 AGENTS.md 发现 | ignore · git2 | 385 |
| appearance | 模式 2031 + 通过 CoreFoundation FFI 的原生 macOS 深色/浅色模式 | core-foundation | 270 |
| power | 用于防止空闲/系统/显示休眠的 macOS 电源断言 API | IOKit FFI | 270 |
| task | libuv 线程池上的阻塞工作 · 取消 · 超时 · 性能分析 | tokio · napi | 260 |
| fd | 用于替代 find-tool 的文件系统遍历器 | ignore | 250 |
| iso | 工作区隔离垫片 · apfs · btrfs · zfs · reflink · overlayfs · projfs · rcopy | pi-iso (PAL) | 245 |
| prof | 具有折叠堆栈和 SVG 火焰图输出的循环缓冲区分析器 | inferno | 240 |
| ps | 跨平台进程树终止和后代列表 | libc · libproc · CreateToolhelp32Snapshot | 195 |
| image | 解码/编码 PNG · JPEG · WebP · GIF · 使用 5 种滤镜调整大小 | image | 190 |
| clipboard | 从系统剪贴板复制文本和读取图像 · 无需 xclip/pbcopy | arboard | 80 |
| tokens | O200k / Cl100k BPE 标记计数 · 两个表均已内嵌 | tiktoken-rs | 65 |
| html | HTML 转 Markdown,支持可选内容清理 | html-to-markdown-rs | 50 |
## 四个入口点:_交互式_、_单次_、RPC 和 ACP。
同一个引擎,四个包装器。`omp` 运行 TUI。`omp -p` 回答单个提示并退出。Node SDK 将会话嵌入到你的进程中。`omp --mode rpc` 和 `omp acp` 通过 stdio 将控制权交给另一个程序。
### 交互式 — 当有疑问时,代理会询问
TUI 是默认界面。工具调用渲染为卡片,编辑在落地前预览,歧义通过 `ask` 工具路由——一个代理可以在轮次中调用的结构化选项选择器。键盘处理其余部分。
相同的提示卡片通过 ACP 浮现,因此编辑器无需编写选择器即可获得它。

### SDK — 嵌入到 Node 中
`@oh-my-pi/pi-coding-agent`
Node 和 TypeScript 宿主可直接拉入引擎。该包暴露 `ModelRegistry`、`SessionManager`、`createAgentSession` 和 `discoverAuthStorage`;会话发出你订阅的类型化事件。
```
import { ModelRegistry, SessionManager, createAgentSession, discoverAuthStorage } from "@oh-my-pi/pi-coding-agent";
const auth = await discoverAuthStorage();
const models = new ModelRegistry(auth);
await models.refresh();
const { session } = await createAgentSession({
sessionManager: SessionManager.inMemory(),
authStorage: auth,
modelRegistry: models,
});
await session.prompt("list .ts files");
```
### RPC — 通过 stdio 驱动
`omp --mode rpc`
用于非 Node 嵌入器,或当你需要进程隔离时。NDJSON 命令输入,响应和事件帧输出。`--mode rpc-ui` 添加工具卡片、选择器和对话框作为 `extension_ui_request` 帧,宿主必须应答。
```
$ omp --mode rpc --no-session
> {"id":"r1","type":"prompt","message":"list .ts files"}
< {"id":"r1","type":"response", ...}
> {"id":"r2","type":"set_model","provider":"anthropic","modelId":"sonnet-4.5"}
> {"id":"r3","type":"abort"}
```
### ACP — 与编辑器对话
`omp acp`
基于 JSON-RPC 的 [Agent Client Protocol](https://github.com/zed-industries/agent-client-protocol)。当编辑器声明能力时,工具 I/O 通过它路由,写入操作受 `session/request_permission` 门控。
| omp 工具 | ACP 路由 | ----------------------------------- |
| `bash` | `terminal/create + terminal/output` |
| `read` | `fs/read_text_file` |
| `write` | `fs/write_text_file` |
| `edit, ast_edit, write, bash` | `session/request_permission` |
完整参考文档:[omp.sh/docs/sdk](https://omp.sh/docs/sdk)。
## 一个值得保留的框架是你_不会_超越的框架。
在 **[omp.sh](https://omp.sh)** 获取。
omp 是 [Pi](https://github.com/badlogic/pi-mono) 的 fork,作者 [Mario Zechner](https://github.com/mariozechner),重写为编码优先的界面:会话、子代理、斜杠命令、扩展——全部是 TypeScript,全部 MIT,全部在 [GitHub](https://github.com/can1357/oh-my-pi) 上。通过配置塑造它,从外部挂钩它,或在需要时阅读源代码。
### 基元
扩展是一个 TypeScript 模块。相同的工具 API,相同的斜杠命令注册表,相同的热键表,相同的内置 TUI 基元。没有保留项。
### 发现
首次运行时,omp 继承磁盘上已有的内容:来自 `.claude`、`.cursor`、`.windsurf`、`.gemini`、`.codex`、`.cline`、`.github/copilot` 和 `.vscode` 的规则、技能和 MCP 服务器。无需迁移脚本。
### 可扩展性
让 omp 编写你缺少的部分,然后 `/reload-plugins`。将其保留在本地,在 `marketplace` 中发布,或发布到 npm。
## 设计理念
omp 是 [pi-mono](https://github.com/badlogic/pi-mono) 的 fork,作者 [Mario Zechner](https://github.com/mariozechner),扩展了包含电池的编码工作流。
关键理念:
- 为真实的编码工作保持交互式终端优先的用户体验
- 包含实用的内置功能(工具、会话、分支、子代理、可扩展性)
- 使高级行为可配置而非隐藏
## 开发
### 调试命令
`/debug` 打开用于调试、报告和性能分析的工具。
有关架构和贡献指南,请参见 [packages/coding-agent/DEVELOPMENT.md](packages/coding-agent/DEVELOPMENT.md)。
## Monorepo 包
| 包名 | 描述 |
| ---------------------------------------------------------- | -------------------------------------------------------------------- |
| **[@oh-my-pi/pi-ai](packages/ai)** | 支持流式传输和模型/提供商集成的多提供商 LLM 客户端 |
| **[@oh-my-pi/pi-agent-core](packages/agent)** | 带有工具调用和状态管理的代理运行时 |
| **[@oh-my-pi/pi-coding-agent](packages/coding-agent)** | 交互式编码代理 CLI 和 SDK |
| **[@oh-my-pi/pi-tui](packages/tui)** | 具有差异渲染功能的终端 UI 库 |
| **[@oh-my-pi/pi-natives](packages/natives)** | 用于 grep、shell、image、text、语法高亮等的 N-API 绑定 |
| **[@oh-my-pi/omp-stats](packages/stats)** | 用于 AI 使用统计的本地可观察性仪表板 |
| **[@oh-my-pi/pi-utils](packages/utils)** | 共享实用程序(日志、流、目录/环境/进程辅助函数) |
| **[@oh-my-pi/swarm-extension](packages/swarm-extension)** | Swarm 编排扩展包 |
### "Rust crate 包". But to follow the instruction, since "Crate" is a technical term, keep it in English.
| Crate | 描述 |
| ----------------------------------------------------------- | -------------------------------------------------------------------- |
| **[pi-natives](crates/pi-natives)** | 核心 Rust 原生插件(N-API `cdylib`),被 `@oh-my-pi/pi-natives` 使用;聚合以下 crate |
| **[pi-shell](crates/pi-shell)** | 从 `pi-natives` 中拆分出的嵌入式 shell / PTY / 进程管理(包装了 `brush-*`) |
| **[pi-ast](crates/pi-ast)** | 基于 tree-sitter 的代码摘要器和 AST 工具(支持 50+ 语言语法) |
| **[pi-iso](crates/pi-iso)** | 任务隔离后端解析器:APFS 克隆、btrfs/zfs reflinks、overlayfs、projfs、rcopy |
| **[brush-core-vendored](crates/brush-core-vendored)** | 用于嵌入式 bash 执行的 [brush-shell](https://github.com/reubeno/brush) 的 vendor fork |
| **[brush-builtins-vendored](crates/brush-builtins-vendored)** | Vendor 的 bash 内建命令(cd、echo、test、printf、read、export 等) |
## 许可证
MIT。参见 [LICENSE](LICENSE)。
© 2025 Mario Zechner
© 2025-2026 Can Bölük
_为保持打开的终端而生_
- [omp.sh](https://omp.sh)
- [GitHub](https://github.com/can1357/oh-my-pi)
- [Changelog](https://github.com/can1357/oh-my-pi/blob/main/packages/coding-agent/CHANGELOG.md)
- [npm](https://www.npmjs.com/package/@oh-my-pi/pi-coding-agent)
- [Discord](https://discord.gg/4NMW9cdXZa)
- [MIT](https://github.com/can1357/oh-my-pi/blob/main/LICENSE)标签:AI编程代理, Bun运行时, DNS解析, npm包, Python支持, Rust, SOC Prime, TypeScript, 代理系统, 代码助手, 代码编辑, 可视化界面, 哈希锚定编辑, 子代理, 安全插件, 实时调优, 工具优化, 开发工具, 开发效率, 开源项目, 数据管道, 浏览器集成, 终端工具, 编程辅助, 网络可观测性, 网络流量审计, 自动化攻击, 语言服务器协议, 软件工程