/ 指令,在 Codex 裡是 $ skill。
它們都不會大聲失敗。即使沒事可做,每一個也都乾淨地結束 —
Not paired 是成功,不是錯誤。
最後一列留白不是漏掉:Claude Code 和 Codex 由各自的主程式負責更新,所以 Nomo 沒有在那邊多加指令。它們各自需要什麼 — Codex 通常什麼都不需要 — 都寫在安裝裡。
pair
code 參數完全跳過瀏覽器,改印出一組可以打字輸入的一次性代碼,適合無圖形介面的機器或 SSH 連線。它刻意是第二選擇:那組代碼會落在你的終端機裡,因此也會進到代理的對話記錄裡。
配對閒置 10 分鐘後過期。一次配對涵蓋的是這台機器,而不是代理 — 同一台 Mac 上的 Claude Code、Codex 和 OpenCode 共用它。完整說明在配對。
status
— you are here。
上一次真的有事件離開這台電腦是什麼時候,以及 watchdog 有沒有起來。watchdog 沒在跑本身不是問題 — 它會在下一個 session 時自行啟動。在真的有 session 在跑的情況下顯示
never,那就是問題。透過區域網路的直接連線:這台電腦正在監聽的連接埠和 id、你的手機上一次真的連上它是什麼時候,以及這台 Mac 上一次廣播自己位址是什麼時候。中間那一列才是重點 — 它是直接連線確實成功過的唯一證據。位址早就廣播出去卻從來沒被連上,代表你的手機到不了這裡;剛廣播完還沒被連上,那只是太早,還判斷不了。請求被拒絕時會寫出原因,而不是留下一片沉默。從來沒有監聽過的電腦上根本不會有這一列 — 開關在你的手機上,而且預設是關的。
on 表示權限請求會被留在這裡,並送到你的手機。PAUSED 表示不會 — 它們會改走終端機,而且會一直這樣,直到有人恢復它為止,不管那是幾個月以後的事。如果你的手機不再問你任何事,這一列就是全部的解釋:請看暫停遠端批准。你的代理有沒有在餵東西給 Nomo,以及上一次是多久以前。OpenCode 沒有 hooks,所以在那裡這一列叫做
Plugin。什麼都沒觸發?重新啟動 Claude Code 讓它的 hooks 載入;Codex 的話,請執行 /hooks;OpenCode 的話,請重新啟動它讓外掛程式載入。! 是問題,→ 是該怎麼處理,並以你發問時所在代理的指令寫法寫出來。這台電腦上其他每一個代理,會在 Also on this computer 底下各得到一行濃縮的輸出 — 而當其中一個壞掉時,它會直接在這裡說出來,而不是等你自己過去看:
approvals
reset
unpair
update
OpenCode
/nomo-* 指令,就是靠這一步收進來的 — 然後要你重新啟動 OpenCode。外掛程式只在伺服器啟動時匯入一次,所以在你重新啟動之前,跑著的還是舊的那一份。
沒有把握的時候,它寧可拒絕也不動手,而且每一次拒絕都會說該怎麼辦:被先前 --ref 安裝釘住的 clone、還留著未提交變更的工作目錄、被搬走或刪掉的 clone,以及這裡根本什麼都沒裝。
它更新的是 stub 指向的那份 clone — 也就是 OpenCode 真正匯入的那一份 — 未必是你輸入的那個指令檔所屬的那一份。如果你留著不只一份 clone,這個區別就很重要。
狀態存放的位置
外掛程式保存的一切都放在~/.config/cc-status/ 裡 — 配對、加密金鑰(權限 0600)、每個被追蹤的 session 一個檔案,以及一份本機的追蹤記錄。那個資料夾裡的東西不會被送到任何地方。
閱讀原始碼
這些指令就是這個外掛程式,而這個外掛程式是開放原始碼的。如果你想確切知道你機器上跑的是什麼、離開它的又是什麼,答案就在一個儲存庫裡 — 從市集安裝的版本就是它的一份純粹複製。KarrixLee/nomo
完整的外掛程式原始碼,採 MIT 授權。issue 與 bug 回報也在這裡。

