TokenMonitor is live on Kickstarter back the campaign while it's running

Plugin · skills · tools

One MCP plugin.
Three AI ecosystems.

The tokenmonitor plugin ships through Fractal Manifold's MCP marketplace. Claude, Codex and Antigravity each install it from the command line — and for Claude and Codex, from the desktop app too. Pick your ecosystem below, then the route you prefer, and jump to the skills & tools reference when you're set up.

Claude Code natively supports MCP marketplaces. Two commands — first you add the marketplace, then you install the plugin from it.

Install

> /plugin marketplace add fractal-manifold/mcp-marketplace > /plugin install tokenmonitor@fractalmanifold-mcp-marketplace

What it adds

# Skills (you invoke these) /tokenmonitor:configure /tokenmonitor:theme <day|night|auto> /tokenmonitor:settings <change>… /tokenmonitor:firmware # Tools the model calls as needed — the diagnostic four, # plus control-plane tools the skills drive for you tokenmonitor_status tokenmonitor_health tokenmonitor_recent_logs tokenmonitor_provision_hint

Where it lives

Marketplace entries land in ~/.claude/plugins/. Uninstall any time with /plugin uninstall tokenmonitor@fractalmanifold-mcp-marketplace.

Prefer clicking to typing? The Claude desktop app installs the very same plugin from its Settings panel — same skills, same tools, no terminal needed.

  1. Open Settings → Plugins, then click Add ▾ in the top-right and choose Add marketplace.
  2. Enter the marketplace repo fractal-manifold/mcp-marketplace and confirm.
  3. Back in the plugin list, find Tokenmonitor by fractal-manifold and click Install.
Claude desktop Settings → Plugins with the Add menu open, showing the Add marketplace option
Claude desktop → Settings → Plugins → Add ▾Add marketplace.

Codex CLI reads the same marketplace Claude Code does. Two shell commands — add the marketplace, then install the plugin from it. Nothing else to install first: the plugin bundles its own server.

Install

$ codex plugin marketplace add fractal-manifold/mcp-marketplace $ codex plugin add tokenmonitor@fractalmanifold-mcp-marketplace

Skills and MCP servers are read when a thread starts, so open a new Codex thread afterwards. Confirm with codex plugin listtokenmonitor@fractalmanifold-mcp-marketplace should read installed, enabled.

What it adds

# Skills (you invoke these) — the CLI gets all four /tokenmonitor:configure /tokenmonitor:theme <day|night|auto> /tokenmonitor:settings <change>… /tokenmonitor:firmware # Tools Codex calls as needed — the diagnostic four, # plus control-plane tools the skills drive for you tokenmonitor_status tokenmonitor_health tokenmonitor_recent_logs tokenmonitor_provision_hint

Where it lives

The plugin is cached per-user under ~/.codex/plugins/cache/fractalmanifold-mcp-marketplace/tokenmonitor/<version>/. Installing writes the marketplace source and an enabled flag to ~/.codex/config.toml — you never hand-author an [mcp_servers] block.

Update & remove

# updating takes both steps — refreshing the marketplace # snapshot alone leaves the cached plugin where it was $ codex plugin marketplace upgrade fractalmanifold-mcp-marketplace $ codex plugin add tokenmonitor@fractalmanifold-mcp-marketplace # uninstall $ codex plugin remove tokenmonitor@fractalmanifold-mcp-marketplace

Either way, start a fresh thread — a running one keeps whatever it loaded at start.

Don't register it by hand. A codex mcp add entry pointed at a tokenmonitor-mcp binary gets you neither the four skills nor the plugin manifest's 60-second first-start allowance — which the server needs the one time it resolves its runtime. Go through the marketplace.

The Codex desktop app browses the same marketplace. Same plugin, same skills and tools — clicked instead of typed.

  1. Open Plugins, click Create ▾ in the top-right and choose Add marketplace.
  2. Point it at the marketplace repo fractal-manifold/mcp-marketplace.
  3. The fractalmanifold-mcp-marketplace section appears — install the TokenMonitor plugin (“Control and diagnose TokenMonitor…”).
Codex desktop Plugins page with the Create menu open, showing the Add marketplace option
Codex desktop → Plugins → Create ▾Add marketplace.
Codex desktop Plugins page showing the fractalmanifold-mcp-marketplace section with the TokenMonitor plugin
The fractalmanifold-mcp-marketplace section, with the TokenMonitor plugin ready to install.

Antigravity CLI

via fractal-manifold/mcp-marketplace
Terminal only

Antigravity — the agy CLI, Google's successor to the Gemini CLI — installs plugins straight from a GitHub subpath. One command; the plugin is self-contained (it bundles its own MCP server), so there's no separate broker install to wire up. (It still runs the Gemini-family models, e.g. gemini-3.5-flash and gemini-3.1-pro.)

Install

$ agy plugin install https://github.com/fractal-manifold/mcp-marketplace/plugins/tokenmonitor

Note the subcommand is plugin (not extensions), and the target is the full https://github.com/… URL — a bare owner/repo shorthand is rejected.

Where it lands

~/.gemini/config/plugins/tokenmonitor/gemini-extension.json
{ "name": "tokenmonitor", "version": "0.11.2", "mcpServers": { "tokenmonitor": { "command": "sh", "args": ["${extensionPath}/server/tokenmonitor-mcp"] } } }

The install copies the whole plugin — skills, hooks and the bundled server/ launcher. Start a fresh agy session to load it; remove it any time with agy plugin uninstall tokenmonitor.

Verify the plugin is loaded

Same prompt works in any of the three apps. It hits tokenmonitor_status under the hood.

What's the status of my TokenMonitor broker?
The broker is running with role leader on localhost:8765. It last served tmon-3c7c9a02 a few seconds ago and has handled 2,847 requests since it started 4 hours ago. Health: PASS.

If the answer comes back with a different broker role, an empty request count, or the app says it can't find the tool — head to the troubleshooting page.

Skills & MCP tools

Four skills. Four core tools.

Skills are explicit commands you invoke; tools are functions the model can call on your behalf. Both are loaded the moment the tokenmonitor plugin is installed — nothing else to wire up.

/tokenmonitor:configure

Pair or reconfigure a device

Provision a new device, or reconfigure an existing one, from the LAN. Discovers via mDNS, prompts for the 6-digit pairing code, pushes broker URL + auto-generated PSK, registers the device locally.

When to use

  • New device showing "Waiting for setup" / pairing code on screen
  • Moving the broker to a different machine
  • Rotating the passphrase / PSK
  • Re-establishing trust after a device factory reset

Syntax

/tokenmonitor:configure

What it does, step by step

  • Scans _tmon._tcp.local for advertised devices
  • Prompts you to confirm the pairing code on the device
  • Generates a random per-device key (or hashes a passphrase you set)
  • POSTs the broker URL + key to the device over the LAN
  • Writes the device entry under ~/.config/tokenmonitor/devices/
/tokenmonitor:theme

Switch themes remotely

Flip a device between Day, Night or Auto themes from the comfort of your CLI. Auto follows sunrise/sunset for the device's configured city with a ±90 s hysteresis.

When to use

  • Force Day mode for a screenshot
  • Force Night mode when you're working late and the sensor lags
  • Reset to Auto after manual overrides

Syntax

/tokenmonitor:theme <day | night | auto> [--device <device_id>]

Examples

/tokenmonitor:theme auto
/tokenmonitor:theme night --device tmon-3c7c9a02
/tokenmonitor:theme day --device kitchen
/tokenmonitor:settings

Reconfigure a provisioned device

Push runtime settings to an already-paired device via the control plane: city, day / night brightness, alert volume, which providers are enabled, auto-rotation, broker URL, passphrase rotation. The change applies on the device's next 60 s poll, with automatic rollback if it can't be promoted.

When to use

  • "Set the city to Madrid"
  • "Lower night brightness to 15"
  • "Mute alerts" / "set volume to 0"
  • "Disable Codex on the TokenMonitor"
  • "Rotate providers every 60 s"
  • "Rotate the broker passphrase"
  • "Change the broker URL"

Syntax

/tokenmonitor:settings <natural-language change> [--device <device_id>]

Out of scope

This skill will not change WiFi blind. Ask it to and it hands you to /tokenmonitor:configure, which does it properly: over a USB cable (no factory reset, and it keeps the broker URL and key), or over the LAN when the device already remembers the network you are naming. A device only ever auto-joins networks it has a password for, so an open network has to be chosen over the cable or on the device's own screen. Display and provider tweaks are also available in the on-device Settings panel (long-press the mascot).

/tokenmonitor:firmware

Stage a signed firmware update

Stage an over-the-air firmware update to the device across your LAN, through the broker. Each image is an Ed25519-signed manifest the device verifies before the boot slot switches — with automatic rollback if the new build doesn't check in healthy, and an anti-rollback floor against downgrades.

When to use

  • A new firmware release is available for your device
  • You want to move a device onto the dev / canary channel
  • Re-applying after an automatic rollback

Syntax

/tokenmonitor:firmware [--device <device_id>]

Safe by design

Updates only ever flow over your own LAN, and the device installs nothing it can't cryptographically verify. If a build won't boot cleanly, it reverts itself.

MCP tools

What the model can call directly.

These are the four you'll reach for directly — your AI agent calls them in response to natural-language questions, no slash-skill needed. The skills drive a larger set of control-plane tools (device registry, discovery, firmware publish / revert) behind the scenes.

tokenmonitor_status

Runtime, role + request count

Returns the broker's runtime, its role (leader or follower), when it last served the device, and the total requests handled since startup.

runtimerole: leader|followerlast_request_atrequests_total
tokenmonitor_health

PASS / FAIL diagnostic per check

Runs a PASS/FAIL check across your provider credentials (present, parseable, not expired), a signed self-ping to the broker, and recently observed device traffic.

okcredentialsself_pingobserved_traffic
tokenmonitor_recent_logs

Tail the broker log

Returns the last N lines (default 50) of the broker's structured log. Useful when a device shows stale data and you want to see whether the broker even received the poll.

lines: intlevel?: warn|err
tokenmonitor_provision_hint

Suggests laptop LAN URLs

Lists candidate broker URLs (your laptop's LAN interfaces) ranked by reachability. The captive portal uses this to populate the broker-URL field when you'd rather not run the configure skill.

urls[]preferred: string

Example

A new device, end to end.

Powered on, pairing code visible, plugin installed. From here:

I just powered on a new TokenMonitor. It's showing pairing code 428 715.
I'll configure it. Running /tokenmonitor:configure… Found tmon-3c7c9a02 at 192.168.1.42 via mDNS. Generated a device key and pushed it over the LAN. It's rebooting now — give it ~10 s.
Is my broker actually serving it?
Called tokenmonitor_status. Broker is running with role leader; it last served tmon-3c7c9a02 seconds ago, 12 requests so far. Health PASS.
Switch to night mode.
Ran /tokenmonitor:theme night. Device acknowledged in 110 ms.

Next step

Configure your device.

With the plugin loaded, /tokenmonitor:configure takes over from here. It discovers the device on your LAN, prompts for the pairing code, pushes the PSK.

Full setup walkthrough