Skip to main content
每個代理上都有的五個指令,再加上只有 OpenCode 需要的第六個。你在想影響的那台電腦上、從代理的 session 裡執行它們 — 在 Claude Code 和 OpenCode 裡是 / 指令,在 Codex 裡是 $ skill。
在 Claude Code 裡一切都有命名空間:輸入 /nomo-cc: 就會列出全部。OpenCode 的指令名稱是扁平而且全域的,所以 Nomo 的指令在那裡完全不帶前綴。
它們都不會大聲失敗。即使沒事可做,每一個也都乾淨地結束 — Not paired 是成功,不是錯誤。 最後一列留白不是漏掉:Claude Code 和 Codex 由各自的主程式負責更新,所以 Nomo 沒有在那邊多加指令。它們各自需要什麼 — Codex 通常什麼都不需要 — 都寫在安裝裡。

pair

不帶參數時,它會在你的瀏覽器裡開啟一個套用主題樣式的頁面,上面有一個 QR code。在App裡掃描它,頁面就會自行翻成 Paired ✓。 code 參數完全跳過瀏覽器,改印出一組可以打字輸入的一次性代碼,適合無圖形介面的機器或 SSH 連線。它刻意是第二選擇:那組代碼會落在你的終端機裡,因此也會進到代理的對話記錄裡。 配對閒置 10 分鐘後過期。一次配對涵蓋的是這台機器,而不是代理 — 同一台 Mac 上的 Claude Code、Codex 和 OpenCode 共用它。完整說明在配對。

status

任何地方看起來不對勁時,第一個該執行的就是它。一台健康的機器只會印出幾行平靜的輸出 — 沒有任何打勾記號,因為一切正常本來就沒什麼好說的:
空行以上描述的是這台電腦,不管你從哪個代理問,讀到的都一樣。它們底下才是你實際所在的那個代理,標著 — you are here。
這台電腦到底有沒有配對,以及它對話的中繼伺服器和它持有的配對。NOT PAIRED 表示從這裡送出的東西沒有任何一樣會到達 App,底下那個箭頭會印出你當下所在代理的 pair 指令。
上一次真的有事件離開這台電腦是什麼時候,以及 watchdog 有沒有起來。watchdog 沒在跑本身不是問題 — 它會在下一個 session 時自行啟動。在真的有 session 在跑的情況下顯示 never,那就是問題。
透過區域網路的直接連線:這台電腦正在監聽的連接埠和 id、你的手機上一次真的連上它是什麼時候,以及這台 Mac 上一次廣播自己位址是什麼時候。中間那一列才是重點 — 它是直接連線確實成功過的唯一證據。位址早就廣播出去卻從來沒被連上,代表你的手機到不了這裡;剛廣播完還沒被連上,那只是太早,還判斷不了。請求被拒絕時會寫出原因,而不是留下一片沉默。從來沒有監聽過的電腦上根本不會有這一列 — 開關在你的手機上,而且預設是關的。
on 表示權限請求會被留在這裡,並送到你的手機。PAUSED 表示不會 — 它們會改走終端機,而且會一直這樣,直到有人恢復它為止,不管那是幾個月以後的事。如果你的手機不再問你任何事,這一列就是全部的解釋:請看暫停遠端批准。
你的代理有沒有在餵東西給 Nomo,以及上一次是多久以前。OpenCode 沒有 hooks,所以在那裡這一列叫做 Plugin。什麼都沒觸發?重新啟動 Claude Code 讓它的 hooks 載入;Codex 的話,請執行 /hooks;OpenCode 的話,請重新啟動它讓外掛程式載入。
現在是按代理分別計算的:1 of 4 tracked here 表示這台電腦正在追蹤四個 sessions,其中一個是你的。該死掉卻還在的列,就是 reset 要處理的東西。
出問題時只帶兩個記號,沒有別的:! 是問題,→ 是該怎麼處理,並以你發問時所在代理的指令寫法寫出來。這台電腦上其他每一個代理,會在 Also on this computer 底下各得到一行濃縮的輸出 — 而當其中一個壞掉時,它會直接在這裡說出來,而不是等你自己過去看:
沒什麼好說的列會被留白略過 — 一台沒配對的電腦,沒有 delivery、LAN 或 approvals 可以回報。其他代理的問題會在這裡完整寫出來,剩下的細節則指向那個代理自己的 status 指令。還有,第一行帶著外掛程式版本:回報 bug 時請附上它。

approvals

暫停這台電腦的遠端批准,讓權限請求直接進到終端機,而不是等你的手機。這是手機沒電或拿不到時的逃生口。
每台電腦一個開關,所有代理共用 — 在 Codex 裡暫停它,同一台機器上的 Claude Code 和 OpenCode 也會一起暫停。它不會解除任何配對,也不會動到你手機上的設定。 還有一個涵蓋整支手機的獨立開關:設定裡的「在 iPhone 上回答」。

reset

停掉 watchdog,清除失效或幽靈的 session 列,然後叫你的手機把它們丟掉。
當各列看起來過時或重複時,這是可以放心伸手去拿的那一個,因為它會說清楚自己沒有動到什麼。OpenCode 的列屬於 OpenCode 的伺服器,所以有一列清不掉時,請先結束 OpenCode — 請看搭配 OpenCode 使用。

unpair

撤銷配對,並清除那台電腦上的金鑰。 從手機上移除一台電腦不是同一件事:那只會讓它不再出現在你的App裡,Mac 上的本機狀態會一直保留,直到你在那裡執行這個指令。

update

OpenCode
只有 OpenCode 有,而且它在動手之前會先檢查。已經是最新的就到此為止,不會順手再拉一次:
真的有東西可以拿時,它會先說是什麼,再去拿:
接著它會拉取更新、重新執行安裝 script — 新版本要是加了新的 /nomo-* 指令,就是靠這一步收進來的 — 然後要你重新啟動 OpenCode。外掛程式只在伺服器啟動時匯入一次,所以在你重新啟動之前,跑著的還是舊的那一份。 沒有把握的時候,它寧可拒絕也不動手,而且每一次拒絕都會說該怎麼辦:被先前 --ref 安裝釘住的 clone、還留著未提交變更的工作目錄、被搬走或刪掉的 clone,以及這裡根本什麼都沒裝。
它更新的是 stub 指向的那份 clone — 也就是 OpenCode 真正匯入的那一份 — 未必是你輸入的那個指令檔所屬的那一份。如果你留著不只一份 clone,這個區別就很重要。
Claude Code 和 Codex 沒有對應的指令,因為更新由它們各自的主程式負責,而 Codex 通常根本沒有什麼要執行:兩邊都寫在安裝裡。

狀態存放的位置

外掛程式保存的一切都放在 ~/.config/cc-status/ 裡 — 配對、加密金鑰(權限 0600)、每個被追蹤的 session 一個檔案,以及一份本機的追蹤記錄。那個資料夾裡的東西不會被送到任何地方。

閱讀原始碼

這些指令就是這個外掛程式,而這個外掛程式是開放原始碼的。如果你想確切知道你機器上跑的是什麼、離開它的又是什麼,答案就在一個儲存庫裡 — 從市集安裝的版本就是它的一份純粹複製。

KarrixLee/nomo

完整的外掛程式原始碼,採 MIT 授權。issue 與 bug 回報也在這裡。