Skip to main content
Five commands, same five on both agents. You run them from inside an agent session on the computer you want to affect — a / command in Claude Code, a $ skill in Codex.
In Claude Code everything is namespaced: typing /nomo-cc: lists them all.
None of them can fail loudly. Every one exits cleanly even when there’s nothing to do — Not paired is a success, not an error.

pair

With no argument it opens a themed page in your browser with a QR code. Scan it in the app and the page flips to Paired ✓ on its own. The code argument skips the browser entirely and prints a typeable one-time code, for a headless box or an SSH session. It’s the second-choice path on purpose: that code lands in your terminal, and therefore in the agent’s transcript. Pairings expire after 10 minutes unused. One pairing covers the machine, not the agent — Claude Code and Codex on the same Mac share it. Full walkthrough in Pairing.

status

The one to run first when anything looks wrong.
Line by line:
no means this machine was never connected. pairing started, waiting for phone scan means you opened a pairing page and never scanned it.
not running on an active session is fine — it starts itself on the next one.
never with a session actually running means the hooks aren’t firing. Restart Claude Code so they load; for Codex, run /hooks.
installed, hooks NOT trusted (run /hooks in Codex) is the one that catches people — see Using Codex.
bridge available means questions reach your phone with their options. status-only means they don’t — why.
It also warns about the two setups that silently double-report every event: leftover Codex hooks from before the native plugin, and Codex auto-discovering the Claude Code plugin alongside its own. Both name the file to edit.

approvals

Pauses remote approvals for this computer, so permission prompts go straight to the terminal instead of waiting on your phone. The escape hatch for a phone that’s dead or out of reach.
One switch per computer, shared by both agents — pausing it in Codex pauses it for Claude Code on that machine too. It doesn’t unpair anything and doesn’t touch your phone’s settings. There’s a separate, phone-wide switch: Answer on iPhone in Settings.

reset

Stops the watchdog and clears dead or phantom session rows, then tells your phone to drop them.
The safe thing to reach for when rows look stale or duplicated, because it says what it left alone.

unpair

Revokes the pairing and erases the key on that computer. Forgetting a computer from the phone is not the same thing: that stops it appearing in your app, but the Mac keeps its local state until you run this there.

Where state lives

Everything the plugin keeps sits in ~/.config/cc-status/ — the pairing, the encryption key (mode 0600), one file per tracked session, and a local trace log. Nothing in that folder is sent anywhere.

Read the source

These commands are the plugin, and the plugin is open source. If you want to know exactly what runs on your machine and what leaves it, the answer is in one repository — marketplace installs are a plain clone of it.

KarrixLee/nomo

The full plugin source, MIT licensed. Issues and bug reports live here too.