项目文件夹
Note
本文档由 WeHub 基于上游 README 翻译整理,属于社区翻译,非官方中文文档。
English · 原始项目 · 上游 README
原作者、版权与许可证归属以原始项目及本仓库 LICENSE 文件为准。
内置 IDE 集成的编程智能体(coding agent)。 omp.sh
Fork 自 Pi,作者 @mariozechner
目前交付的最强智能体界面。经真实使用持续打磨——开箱即用,全程开源。
40+ 个 provider · 32 个内置工具 · 14 个 LSP 操作 · 28 个 DAP 操作 · Rust 核心约 ~55k 行代码。
安装
macOS · Linux
curl -fsSL https://omp.sh/install | sh
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
固定版本(mise)
mise use -g github:can1357/oh-my-pi
macOS · Linux · Windows · bun ≥ 1.3.14
Shell 补全
omp 会根据实时的命令/标志元数据自动生成适用于 bash、zsh 和 fish 的补全脚本,因此永远不会与实际 CLI 脱节。子命令、标志和枚举值可静态补全;模型名称(--model、--smol、--slow、--plan)会对照内置模型目录解析,--resume 则对照你磁盘上的会话。
# zsh — add to ~/.zshrc (or write the output into a file on your $fpath)
eval "$(omp completions zsh)"
# bash — add to ~/.bashrc
eval "$(omp completions bash)"
# fish
omp completions fish > ~/.config/fish/completions/omp.fish
每个工具,都 benchmaxxed。
一次就改对。读取时总结文件内容,而不是倾倒全文。搜索瞬间返回。任选模型——omp 都能搞定。
| model | metric | what |
|---|---|---|
| Grok Code Fast 1 | 6.7% → 68.3% | 当编辑格式不再拖垮模型时,即刻实现十倍提升。 |
| Gemini 3 Flash | +5 pp | 优于 str_replace——胜过 Google 自家在该格式上的最佳尝试。 |
| Grok 4 Fast | −61% tokens | 错误 diff 的重试循环消失后,输出 token 骤降。 |
| MiniMax | 2.1× | 通过率翻倍以上。相同权重,相同 prompt。 |
read:摘要片段 · 理想默认值 · 选择器命中率search:西部最快lsp:IDE 所知,智能体亦所知prompts:针对每个模型持续调优
你热爱的 Pi,自带全套能力(batteries included)。
最初基于 Mario Zechner's 出色的 Pi,,omp 补齐了你一直缺失的一切。
01 · 代码执行 + tool-calling
多数 harness 给智能体一个 Python 沙箱就完事了。我们运行持久化 Python 和 Bun worker,任一内核都能通过 loopback 桥接回调智能体自身的工具——read、search、task。智能体在 Python 内用 tool.read 加载 CSV,在 JavaScript 中绘图,全程不离开 cell。
02 · 每次写入都接入 LSP
要求重命名,就能完成重命名。调用走 workspace/willRenameFiles,因此 re-export、barrel 文件和别名 import 会在文件移动前更新。IDE 所知,智能体亦所知。
03 · 驱动真实调试器
C 二进制 segfault:智能体附加 lldb,步进到错误指针,读取栈帧。Go 服务挂起:附加 dlv 遍历 goroutine。Python 进程卡死:debugpy,暂停,检查,求值。多数智能体还在到处撒 print。
04 · 时光穿越式流规则(time-traveling stream rules)
规则蛰伏待机,直到模型偏离剧本。正则匹配会在 token 中途中止流,将规则作为 system reminder 注入,并从同一点重试。无需每轮都支付 context 税即可获得纠偏。注入在 compaction 后仍保留,修复得以持久。
05 · 一等公民子智能体(subagents)
将任务拆给多个 worker,拿回类型化结果。task 扇出到隔离的 worktree,每个 worker 运行自己的工具面,最终 yield 是经 schema 校验的对象,父进程直接读取。无需解析散文,兄弟任务无合并冲突,无孤立编辑。
06 · 第二个模型,监视每一轮。
将 reviewer 模型配对到「advisor」角色,它会阅读主智能体每一轮操作,内联注入备注——轻声旁白、顾虑或硬性阻断。它使用独立 context 和独立模型,能捕捉执行者匆匆略过之处。主智能体看到备注后会纠偏,或告诉你为何不会。
07 · 把链接发出去,对方就能加入。
/collab 会把你的实时会话放到中继上,并返回一个链接——以及一个二维码。队友可以在另一台终端用 omp join 加入,或直接在浏览器中打开。共享读写权限,与同一 agent 结对协作;或使用 /collab view 获取只读链接——任何人都能观看会话,但没人能操控 agent。帧在客户端加密封装;中继永远看不到你的密钥。
08 · 读 arxiv 上的 PDF,有何不可?
web_search 串联十八个按排名排序的提供商,把找到的任何 URL 直接交给 read。Arxiv PDF、GitHub 页面、Stack Overflow 帖子会以结构化 markdown 返回,锚点完整保留——与你在本地文件上使用的同一套工具界面。引用、追踪、摘录,再也不会弄丢来源。
09 · 理直气壮地原生。Windows 也一样。
其他 agent 会 shell 调用 rg、grep、find 和 bash。在很多机器上这些二进制文件根本不存在;即便存在,每次调用都要付出 fork-exec 往返的开销。omp 把真实实现直接链入进程。ripgrep、glob、find:进程内执行。brush 充当 bash,会话跨调用持久存在。同一个 omp 二进制可在 macOS、Linux 和 Windows 上运行——无需 WSL 桥接。
10 · 带优先级与裁决的代码审查
明确获知变更能否发布,每个问题按 P0 到 P3 排序并标注置信度。/review 会孵化专用 reviewer 子 agent,并行扫描分支、单个提交或未提交的工作。你先处理阻碍发布的事项;重要问题不会淹没在大段文字里。
11 · Hashline:按内容哈希编辑
精准编辑,更少 token。模型用锚点指向要改的代码,而不是重打整行,于是空格之争和「字符串未找到」循环就此消失。编辑过期文件时锚点会偏离——我们会在补丁破坏任何东西之前拒绝它。Grok 4 Fast 在相同工作上输出 token 减少 61%。
12 · GitHub 只是另一种文件系统
其他 harness 会额外挂载 gh_issue_view、gh_pr_view、gh_search——各自有一套参数,agent 要学,你也要调试。我们跳过了这套。read 已经处理路径;PR 就是路径。教模型一个接口,维护一个表面。
13 · Hindsight:由 agent 策展的记忆
agent 会在会话之间记住你的代码库。运行中用 retain 写入事实,用 recall 取回,并把每个会话压缩成心理模型,在下次会话首轮加载。默认按项目作用域,因此它对本仓库所学会留在本仓库。
14 · ACP:可由编辑器驱动的 agent
在 Zed 中运行 omp,你会得到与终端里一样的 agent——读取你正在查看的缓冲区,通过编辑器的保存路径写入,在编辑器终端中启动 shell。破坏性工具会暂停等待权限提示,你可以一次答复、永久记住。无需桥接、无需插件、无需维护第二个大脑来保持同步。
15 · 继承其他工具已经写好的配置
其他 agent 都会附带导入器,指望你来转换。omp 以原生形态读取磁盘上已有的八种格式——Cursor MDC、Cline .clinerules、Codex AGENTS.md、Copilot applyTo 等。无需迁移脚本,无需 YAML 转 TOML,也没有「受支持子集」脚注。你们团队上季度写的配置,今晚依然能用。
16 · omp commit:原子拆分,校验提交信息
omp 通过 git_overview、git_file_diff 和 git_hunk 读取工作树,然后把无关变更拆成按依赖排序的原子提交。有任何环会在写入前被拒绝。源文件优先于测试、文档和配置,因此 headline 提交才是重要的那个。锁文件完全不参与分析。
17 · 读取 PR。遍历 skills。 从子 agent 中抽取 JSON。
十二种内部 scheme——pr://、issue://、agent://、skill://、rule:// 等——在 agent 已调用的每个 FS 形态工具内透明解析。read pr://1428 返回与 read src/foo.ts 相同的结构。search 像目录一样遍历 diff。agent://<id>/findings.0.path 按路径从子 agent 输出中提取字段。
18 · 冲突解决,化繁为简。
每个合并冲突对应一个 URL。agent 将 @theirs、@ours 或 @base 写入 conflict://N,文件即可干净解决。批量形式:conflict://*。
19 · 先预览,再接受。
ast_edit 返回带替换数量的 (proposed) 卡片。变更已暂存。agent 带上 reason 调用 resolve;TUI 将其转为 Accept 卡片,磁盘操作随即执行——原子、全有或全无。
20 · 驱动_真实浏览器_。还是你的 Slack?
默认开启 Stealth,页面看到的是正常用户而非无头机器人。同一 API 可原地驱动任何 Electron 应用——指向 Slack,agent 就能像读网页一样读你的私信。
任务需要什么,箱子里已经有了。
32 个工具与 read、bash 同属一个命名空间。用 --tools read,edit,bash,… 固定活动集,其余保持隐藏但仍被索引——当 tools.discoveryMode 需要时,search_tool_bm25 可在会话中途把它们拉回来。
文件与搜索
read— 通过一条路径访问文件、目录、压缩包、SQLite、PDF、notebook、URL 以及内部://scheme。write— 创建或覆盖文件、压缩包条目或 SQLite 行。edit— 基于内容哈希锚点的 hashline 补丁,支持过期锚点恢复。ast_edit— 通过 ast-grep 在应用前预览结构性重写。ast_grep— 在 50+ 种 tree-sitter 语法上进行结构性代码查询。search— 对文件、glob 和内部 URL 进行正则匹配。find— 基于 glob 的路径查找;需要内容匹配时使用search。
运行时
bash— 工作区 shell,可选 PTY 或后台作业调度。eval— 持久化 Python 与 JavaScript cell,共享 prelude 并支持工具重入。ssh— 对已配置主机执行一条远程命令。
代码智能
lsp— 诊断、导航、符号、重命名、code action、原始请求。debug— 驱动 DAP 会话——断点、单步、线程、栈、变量。
协调
task— 并行扇出子 agent,可选工作区隔离。irc— 本进程内活跃 agent 之间的短消息。todo— 对会话待办列表的有序变更,带阶段跟踪。job— 等待或取消后台作业。ask— 交互式运行中的结构化追问。
框外能力
browser— 通过 Puppeteer 在 headless Chromium 或 CDP 附加的应用上操作标签页。web_search— 一次查询覆盖已配置的提供商,返回答案及引用。github— GitHub CLI 操作:仓库、PR、议题、代码搜索、Actions 运行监视。generate_image— 通过 Gemini、GPT 或 xAI Grok 图像模型生成或编辑光栅图像。inspect_image— 对本地图像文件进行视觉模型分析。tts— 通过 xAI Grok Voice 实现文字转语音:五种内置音色,支持 WAV 或 MP3。
记忆与状态
checkpoint— 标记对话状态,供后续折叠并生成报告。rewind— 裁剪探索性上下文,保留简洁报告。retain— 将持久化事实排入当前活跃的 Hindsight 记忆库。recall— 在 Hindsight 记忆库中搜索原始记忆。reflect— 请 Hindsight 基于记忆库综合生成答案。
杂项
resolve— 应用或丢弃已排队的预览操作。search_tool_bm25— 对隐藏工具索引进行 BM25 检索;在会话中途激活最佳匹配项。
受设置门控,默认关闭:github、inspect_image、tts、checkpoint、rewind、search_tool_bm25、retain、recall、reflect。每个项目只需开启一次。
四十余家提供商、数百款模型,一条 /model 命令即可切换。
角色(Roles)按意图路由任务。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 · Novita · Venice · Kilo · ZenMux · 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 或撞上配额墙时,下一项接管本轮剩余工作 — 冷却结束后恢复。 - 路径作用域模型 — 将
enabledModels和disabledProviders条目限定到path:前缀,即可在单个仓库上固定不同的模型集,而无需改动全局配置。作用域条目覆盖该路径及其下所有内容。 - 凭据轮询 — 按提供商堆叠 API 密钥,运行时在会话亲和性与单凭据退避之间轮换。当单个密钥会在中午前就耗尽配额时尤其有用。
完整提供商与路由参考见 omp.sh/docs/providers.
二十五个后端。代理早已熟悉的那款工具。
web_search 是内置能力,而非事后外挂。auto 会遍历二十五家提供商链;若你已为某家付费,可按名称固定。每次命中背后,站点感知提取会把 GitHub、注册表、arXiv、Stack Overflow 和文档转为结构化 Markdown — 锚点与链接目标得以保留。
搜索提供商
二十五个后端。固定一家,或让 auto 按顺序遍历整条链。
| provider | auth |
|---|---|
auto |
chain |
perplexity |
PERPLEXITY_API_KEY |
gemini |
oauth |
anthropic |
oauth |
codex |
oauth |
xai |
XAI_API_KEY |
zai |
ZAI_API_KEY |
exa |
EXA_API_KEY (or mcp) |
tinyfish |
TINYFISH_API_KEY |
jina |
JINA_API_KEY |
kagi |
KAGI_API_KEY |
tavily |
TAVILY_API_KEY |
firecrawl |
FIRECRAWL_API_KEY |
brave |
BRAVE_API_KEY |
kimi |
MOONSHOT_API_KEY |
parallel |
PARALLEL_API_KEY |
synthetic |
SYNTHETIC_API_KEY |
searxng |
self-hosted |
duckduckgo |
no key |
bing |
no key |
yahoo |
no key |
startpage |
no key |
google |
no key (browser) |
ecosia |
no key (browser) |
mojeek |
no key (browser) |
public |
no key (all of the above, consolidated) |
专用处理器
代理获得的是结构化内容,而非剥离后的 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 — 国家漏洞数据库(national vulnerability database)
- OSV — 开源漏洞信息流(open source vuln feed)
- CISA KEV — 已知被利用漏洞(known exploited vulns)
约 ~55,000 行 Rust 代码,承担其他 harness 往往需要外包出去的工作。
四个 crate、一个按平台打标的 N-API 插件。搜索、shell、AST、高亮、PTY、图像解码、BPE 计数 — 全部在 libuv 线程池内进程内完成。热路径上不 fork/exec。
- Crates:
pi-natives、pi-shell、pi-ast、pi-iso - Platforms:
linux-x64、linux-arm64、darwin-x64、darwin-arm64、win32-x64
下表按模块拆解,有意省略胶水代码与测试。
| Module | What it does | Powered by | ~LoC |
|---|---|---|---|
| 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 |
| summary | Tree-sitter 结构化源码摘要,支持省略控制 | tree-sitter · ast-grep-core | 1,040 |
| ast | ast-grep 模式匹配与结构化重写 | ast-grep-core | 1,000 |
| fs_cache | 以 mtime 为键的文件缓存,供 read · grep · lsp 共享 | in-tree | 840 |
| highlight | 语法高亮 · 11 个语义类别 · 30+ 别名 | syntect | 470 |
| pty | 原生 PTY 分配,用于 sudo · ssh 交互式提示 | portable-pty | 455 |
| glob | 通过 glob 发现 · 类型过滤 · mtime 排序 · 尊重 gitignore | ignore · globset | 410 |
| workspace | 工作区遍历器,单次遍历完成 gitignore + AGENTS.md 发现 | ignore | 385 |
| appearance | Mode 2031 + 通过 CoreFoundation FFI 实现原生 macOS 深色/浅色切换 | core-foundation | 270 |
| power | macOS 电源断言 API,防止空闲/系统/显示器休眠 | IOKit FFI | 270 |
| task | 在 libuv 线程池上执行阻塞工作 · 取消 · 超时 · 性能分析 | tokio · napi | 260 |
| fd | 文件系统遍历器,用于替代 find 工具 | ignore | 250 |
| iso | 工作区隔离垫片 · apfs · btrfs · zfs · reflink · overlayfs · projfs · rcopy | pi-iso (PAL) | 245 |
| prof | 环形缓冲区分析器,输出折叠栈与 SVG 火焰图 | inferno | 240 |
| ps | 跨平台进程树终止与后代进程列举 | libc · libproc · CreateToolhelp32Snapshot | 195 |
| clipboard | 从系统剪贴板复制文本并读取图像 · 无需 xclip/pbcopy | arboard | 80 |
| tokens | O200k / Cl100k BPE 词元计数 · 两张表均已内嵌 | tiktoken-rs | 65 |
| sixel | 终端图像渲染 · 解码 PNG · JPEG · WebP · GIF · 缩放 · SIXEL 编码 | icy_sixel · image | 55 |
| html | HTML 转 Markdown,可选内容清洗 | html-to-markdown-rs | 50 |
四个入口:interactive(交互式)、one-shot(单次)、RPC 与 ACP。
同一引擎,四种封装。omp 运行 TUI。omp -p 回答单个提示后退出。Node SDK 将会话嵌入你的进程。omp --mode rpc 与 omp acp 通过 stdio 将控制权交给另一程序。
Interactive — 拿不准时,由 agent 发问
TUI 是默认界面。工具调用以卡片形式呈现,编辑在落地前可预览,歧义则经由 ask 工具处理——agent 可在对话中途调用的结构化选项选择器。其余操作由键盘完成。
同样的提示卡片也会出现在 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
Agent Client Protocol over JSON-RPC。当编辑器声明能力时,工具 I/O 经其路由,写入由 session/request_permission 把关。
| omp 工具 | ACP 路由 |
|---|---|
bash |
terminal/create + terminal/output |
read |
fs/read_text_file |
write |
fs/write_text_file |
edit, bash |
session/request_permission |
完整参考:omp.sh/docs/sdk.
值得长期使用的 harness,是你 不会 很快超出的那一个。
在 omp.sh. 上手。
omp 是 Mario Zechner, 的 Pi 的分支,重写为以编码为先的界面:会话、子 agent、斜杠命令、扩展——全部 TypeScript、全部 MIT、全部在 GitHub. 上。可通过配置塑造、从外部挂钩,或在需要时阅读源码。
原语
扩展是一个 TypeScript 模块。与内置组件共用同一套工具 API、斜杠命令注册表、快捷键表与 TUI 原语。没有保留项。
发现
首次运行时,omp 会继承磁盘上已有的一切:来自 .claude、.cursor、.windsurf、.gemini、.codex、.cline、.github/copilot 与 .vscode 的规则、技能与 MCP 服务器。无需迁移脚本。
可扩展性
让 omp 编写你缺失的那一块,然后 /reload-plugins。可保留在本地、放入 marketplace 发布,或发布到 npm。
理念
omp 是 Mario Zechner, 的 pi-mono 的分支,扩展了开箱即用的编码工作流。
核心理念:
- 为真实编码工作保留以交互式终端为先的 UX
- 包含实用的内置能力(工具、会话、分支、子 agent、可扩展性)
- 让高级行为可配置,而非隐藏
开发
从源码入门
全新克隆在源码 CLI 能启动前,需要同时安装工作区依赖与本地 Rust/N-API 插件。
bun setup
bun dev
bun setup 安装 Bun 工作区并构建 @oh-my-pi/pi-natives。修改 Rust crate 或 packages/natives 后,请重新运行 bun run build:native。
进行非交互式冒烟检查:
bun dev -- --version
调试命令
/debug 打开用于调试、报告与性能分析的 tools。
有关架构与贡献指南,请参阅 packages/coding-agent/DEVELOPMENT.md。
Monorepo 包
| 包 | 说明 |
|---|---|
| @oh-my-pi/collab-web | 浏览器访客客户端、模拟宿主,以及用于协作实时会话的本地中继 |
| @oh-my-pi/pi-ai | 多提供商 LLM 客户端,支持流式传输与模型/提供商集成 |
| @oh-my-pi/pi-catalog | 模型目录:内置模型数据库、提供商描述符与标识 |
| @oh-my-pi/pi-agent-core | 具备工具调用与状态管理的 Agent 运行时 |
| @oh-my-pi/pi-coding-agent | 交互式编码 agent CLI 与 SDK |
| @oh-my-pi/pi-tui | 支持差分渲染的终端 UI 库 |
| @oh-my-pi/pi-natives | 用于 grep、shell、image、text、语法高亮等的 N-API 绑定 |
| @oh-my-pi/omp-stats | 用于 AI 使用统计的本地可观测性仪表板 |
| @oh-my-pi/pi-utils | 共享工具(日志、流、目录/环境/进程辅助函数) |
| @oh-my-pi/pi-wire | 共享的协作实时会话协议类型与中继常量 |
| @oh-my-pi/hashline | edit 工具背后的行锚定补丁语言与应用器 |
| @oh-my-pi/pi-mnemopi | Oh My Pi agent 的本地 SQLite 记忆引擎 |
| @oh-my-pi/snapcompact | 位图帧上下文压缩包与 SQuAD 评估套件 |
| @oh-my-pi/swarm-extension | Swarm 编排扩展包 |
Rust Crate
| Crate | 说明 |
|---|---|
| pi-natives | 核心 Rust 原生插件(N-API cdylib),由 @oh-my-pi/pi-natives 使用;聚合下列 crate |
| pi-shell | 从 pi-natives 拆分出的嵌入式 shell / PTY / 进程管理(封装 brush-*) |
| pi-ast | 基于 tree-sitter 的代码摘要器与 AST 工具(50+ 种语言语法) |
| pi-iso | 任务隔离后端解析器:APFS 克隆、btrfs/zfs reflink、overlayfs、projfs、rcopy |
| brush-core | brush-shell 的 vendored 分支,用于嵌入式 bash 执行 |
| brush-builtins | Vendored bash 内置命令(cd、echo、test、printf、read、export 等) |
贡献
议题(Issues)面向所有人开放。拉取请求需要担保(vouch) — 来自未担保或被否定的作者的 PR 会被自动关闭。若你尚未获得担保,请开一个 Discussion 并请维护者 !vouch 你,而不要直接开 PR(否则会被立即关闭)。完整政策见 CONTRIBUTING.md 与 .github/VOUCHED.td。
许可证
MIT。详见 LICENSE。
© 2025 Mario Zechner
© 2025-2026 Can Bölük
made for terminals that stay open

![omp TUI:单次 eval 会话中,[1/2] pandas describe(Python)打印真实的 DataFrame.describe() 表格,随后 [2/2] top scorer(JavaScript)执行 reduce。页脚:「两个内核在同一会话中运行。」](https://omp.sh/captures/eval.webp)







![omp TUI 读取 pr://can1357/oh-my-pi/1063 后执行 /diff/1,显示 hunk 头、新增行以及 [MODIFIED] (+12 -0) 摘要。](https://omp.sh/captures/pr.webp)



