你在教學文或 GitHub 看到「Oh My Pi」「omp」「curl … omp.sh/install」,腦內大概會跳出三個問號:這到底是什麼?要不要再訂一份貴貴訂閱?跟 Cursor、跟 Pi 原版是不是同一個東西只是換皮?
短答:它是跑在終端機裡的開源 AI 寫程式代理(MIT),指令叫 omp;官網與安裝腳本掛在 omp.sh。讀完這篇,你應該能分清名字、判斷適不適合自己,並在自己的專案資料夾跑通第一個「只讀、不改檔」的小任務——先確認它讀得懂 repo,再考慮要不要把改碼大權交出去。AI 改錯一行的殺傷力,有時比咖啡灑在鍵盤上還麻煩。
若你更想了解極簡上游 Pi Coding Agent,可先看站內的 Pi Coding Agent 完整指南;本文聚焦 Oh My Pi 這條「開箱即用」fork。
三個名字怎麼對上?
| 你看到的 | 實際是什麼 |
|---|---|
| Oh My Pi | 專案全名,開源在 can1357/oh-my-pi |
| omp | 裝好後在終端機打的指令,也是口語簡稱 |
| omp.sh | 官網+文件+安裝腳本(/install、/install.ps1),不是另一個 agent |
一句話:Oh My Pi 是軟體,omp 是你要打的命令,omp.sh 是官網兼安裝入口。
npm/Bun 套件名是 @oh-my-pi/pi-coding-agent——給偏好用套件管理器安裝、或要把引擎嵌進自己 TypeScript 專案的人。
跟「Pi Coding Agent」是什麼關係?
兩者不是同一個可執行檔,也不是同一產品的兩種介面:
Pi 專案(badlogic/pi-mono)
└─ Pi Coding Agent(常見指令:pi)
Oh My Pi(can1357/oh-my-pi,以 Pi 為基礎的 fork)
└─ @oh-my-pi/pi-coding-agent → CLI(常見指令:omp)上游 Pi 強調「核心精簡、自己加套件/擴充」;Oh My Pi 把自己定位成 coding-first fork,預設就打包較完整的寫程式工作流(session、subagents、斜槓指令等)。維護者、安裝套件與設定路徑都不同——不要把 pi 的教學指令原封不動套到 omp,那不是別名,是兩套 CLI 在裝可愛。
本機若兩個都裝過,可用唯讀方式確認身分:
command -v pi && pi --help
command -v omp && omp --helpcommand -v pi(或 omp)會在 PATH 裡找這個指令:找到就印出路徑,找不到就失敗。後面的 && 表示「左邊成功才跑右邊」——有裝才執行 --help,避免沒裝還硬跑、滿屏 command not found。兩行都印出路徑與說明=兩套都在;只有一行成功=只裝了那一個。兩個都存在時,它們是兩套 CLI,不是別名。
跟 Pi、Cursor 差在哪?(決策表)
| 維度 | Pi(上游) | Oh My Pi(omp) | Cursor |
|---|---|---|---|
| 本質 | 極簡終端 harness,靠套件擴充 | Pi 的 fork,開箱即用、功能打包較齊 | 圖形 IDE+內建 Agent/Composer |
| 常見指令 | pi | omp | 下載桌面應用 |
| LSP/偵錯 | 多半靠套件再加 | 內建 LSP、DAP | 靠編輯器本身 |
| 改碼保險 | 依工具與模型設定 | 強調 雜湊錨定修改(對不上就擋下來) | Diff 預覽+Agent 迴圈 |
| 最適合誰 | 想自己拼最小組合的人 | 要終端 workflow、但不想從零組 LSP/子代理 | 喜歡 GUI、多檔視覺化 diff |
「改碼保險」不是保險商品,比較像改檔前的防護網:AI 要改某一行時,檔案可能已經被你、別的工具、或上一輪改過;若還照舊記憶硬改,就可能改錯行、弄壞語法。三欄差在防護怎麼做——
- 上游 Pi:核心很精簡,有沒有這類防護、嚴不嚴格,多半看你裝的工具/設定,以及模型本身夠不夠謹慎,沒有統一的預設保險口號。
- Oh My Pi:內建雜湊錨定(見下一節例子):對不上就擋下這次修改,叫 AI 重新看檔再決定。
- Cursor:常見是給你看 Diff 預覽(你確認再套用),再加上 Agent 迴圈(改完跑測試/再讀錯誤再修)。偏「人眼+反覆修正」,不是同一套 hash 擋行機制。
口語版怎麼選:
- 已經用 Cursor、偶爾想在終端做批次重構/測試閉環 → 可以加裝 omp 試試,不必二選一。
- 想要極簡、自己挑 package → 用上游 Pi,不是 omp。
- 不想碰終端、只要圖形介面 → Cursor 就夠。終端恐懼不是罪,只是 omp 的舞台不在那裡。
任務級分工(同一 worktree 別兩邊同時寫檔)可記這張精簡表:
| 任務類型 | 首選 |
|---|---|
| UI 調像素、元件預覽 | Cursor |
| 跨很多檔 rename/重構、跑測試閉環 | omp |
| 子代理並行、native/除錯器 | omp |
PR 前結構化 review(/review) | omp |
| 單檔小改、邊看邊改 | 看你人在 IDE 還是終端 |
兩個 agent 同時改同一檔,最後通常不是協作,是 merge conflict 的聯誼會。
Oh My Pi 的三大賣點(白話)
一般聊天式 AI 是「給你一段 code,你自己貼回去」。omp 直接連你的終端、檔案系統,甚至偵錯器——少了那一趟複製貼上馬拉松,手指會感謝你。
雜湊錨定修改(Hash-anchored edits)
改某一行前,先對那一行內容算一張「指紋」(hash)。執行時若指紋對不上=這行已經不是剛才那樣子 → 直接擋下,而不是硬貼上去。
例如 AI 當初看到const port = 3000,要改成8080;若這時你已手動改成const port = 4000,指紋就不一樣 → omp 拒絕這次套用,降低「AI 改錯行把專案搞爛」的機率。內建 LSP/DAP(有點像把 IDE 能力接到 agent)
- LSP:rename、跳到定義、找引用、看診斷(紅線),比較像「懂語意」而不是純文字搜尋取代。
- DAP:可接真實 debugger(例如設斷點、單步看變數),適合找邏輯錯或 native crash,而不是只靠猜——猜 bug 很像喝冰美式解渴:短暫清醒,問題還在。
子代理(
task)並行
主代理可派多個子代理分工;必要時用隔離工作區,減少大家搶同一份檔案互踩。適合大範圍重構、探索+實作並行這類任務。
另外:官方定位支援大量模型供應商,可用斜槓指令切換模型;簡單搜尋用便宜模型、架構難題用強模型,是常見用法。首次執行也常會讀既有的 .cursor、.claude、.vscode 等規則/MCP,減少手動搬家。
同一套引擎還有幾種入口:互動 TUI(omp)、單次 omp -p "…"、Node SDK、以及 RPC/ACP(讓其他編輯器驅動)。新手先會前兩種就夠。
安裝與第一個安全任務
安裝(擇一)
macOS/Linux:
curl -fsSL https://omp.sh/install | sh也可用 Homebrew:brew install can1357/tap/omp。
Windows(PowerShell):
irm https://omp.sh/install.ps1 | iexBun(JS/TS 開發者):
bun install -g @oh-my-pi/pi-coding-agent確認:
omp --help找不到指令時,先重開終端,或檢查安裝目錄是否在 PATH。
登入模型後,先做「只讀」任務
在專案目錄執行 omp,進互動介面後:
/login— 選供應商並完成驗證(金鑰留在本機設定流程,不要貼進專案再 commit)。/models— 確認/切換模型。/help— 看目前版本支援的斜槓指令。
第一句建議寫死邊界,例如:
請列出目前專案的主要資料夾,找出 README.md,並用三點摘要用途。只讀取,不要修改檔案。
或單次模式:
omp -p "列出目前專案的主要資料夾,並用三點摘要 README.md;不要修改檔案"預期:能讀到工作目錄、回摘要、沒有產生檔案變更。之後再用 omp 做多步修改;omp --resume/--continue 可接回舊 session。
更完整的安裝排查、工作模式與第一個「小改碼」任務,適合另寫一篇 how-to;本稿先把「這是什麼」講清楚就收工。
要付錢嗎?
| 項目 | 要不要錢 |
|---|---|
| Oh My Pi 軟體本身 | 不用。MIT 開源,安裝免費 |
| 模型推理(API) | 要。跟 Cursor 訂閱池不同,omp 多半走你自帶的 provider(Anthropic、OpenAI、Google 等)或 OAuth 登入 |
| Cursor | 可選訂閱;跟 omp 並存時,兩邊可能各自算用量 |
白話:omp 不是另一個 IDE 訂閱,比較像「免費的終端 harness + 你自己的 API 帳單」。想控成本,可以簡單任務用便宜模型、大重構再切強模型——這是 omp 常見用法,不是必裝功能。軟體免費、token 不免費:這句話值得印在鍵盤旁邊。
常見誤解(FAQ)
Oh My Pi 是 Pi 的官方新版嗎?
不是。它是 Can Bölük 維護的獨立 fork,跟 Mario Zechner 的上游 Pi 不同 repo、不同 CLI(omp vs pi)。
omp.sh 是 npm 套件嗎?
不是。omp.sh 是官網與安裝腳本;npm 套件名是 @oh-my-pi/pi-coding-agent。
它是 Cursor 外掛嗎?
不是。它是終端機程式。首次執行常會讀取 .cursor 規則,方便跟 Cursor 並存,但不是 Cursor 裡的一個按鈕。
我該選 Pi 還是 omp?
想自己拼最小 harness → Pi。想終端開箱即用、內建 LSP/子代理 → omp。詳見上文決策表。
跟 Claude Code 比呢?
Claude Code 也是終端 agent,但綁 Anthropic 生態、內建工具集不同。若你已深度用 Claude Code,不必為了「跟風」硬換;若你在找 Pi fork + 多 provider + 內建 LSP/task,才值得試 omp。
什麼情境不適合 omp?
- 幾乎不碰終端、只要 GUI diff 預覽 → Cursor 就夠
- 想自己控制每一個擴充、討厭預設打包 → 上游 Pi
- 主要工作是筆記庫維護、內容研究流 → Cursor/編輯器 skills 通常比較合(omp 擅長的是 coding worktree,不是 vault 工作流)
推薦工具/資源
| 工具 | 適合誰 |
|---|---|
| Oh My Pi(omp) | 要終端機 coding agent、希望 LSP/子代理等預設就有,不想從零組 harness |
| 上游 Pi Coding Agent | 要極簡核心、自己用套件擴充;細節見 Pi Coding Agent 完整指南 |
| Cursor | 日常 GUI 編輯、預覽、筆記流;可與 omp 並存但別同目錄同時寫檔 |
沒有「誰完勝」——取捨是介面與預設功能量,不是誰比較潮。
結語:下一步做什麼?
- 名字:Oh My Pi=專案;
omp=指令;omp.sh=官網/安裝。 - 定位:Pi 的 coding-first fork,不是 Cursor 外掛,也不是上游 Pi 的官方更名版。
- 動手:裝好 →
/login→ 用「只讀」小任務驗證,再決定要不要當日常終端工具。
打開 omp.sh,照官方安裝腳本裝好 omp,在任一小型專案目錄跑一輪只讀摘要——先確認它讀得懂你的 repo,再交給它改碼。審完再來一杯;token 帳單也記得瞄一眼。
參考資料
- Oh My Pi 官網(omp.sh) — 產品定位、安裝腳本與功能總覽
- can1357/oh-my-pi(GitHub) — 原始碼、README 與授權(MIT)
- Pi Coding Agent(pi.dev) — 上游極簡終端 agent,對照 Oh My Pi 的 fork 定位
- Language Server Protocol — LSP 規格:rename、定義跳轉、診斷等語意能力
- Debug Adapter Protocol — DAP 規格:與真實 debugger 溝通的介面

