The local agent (MCP)
The SigRank local agent is an MCP that reads your token counts straight from local session logs — 15+ platforms supported, including Claude Code, Codex, Amp, Gemini CLI, GitHub Copilot CLI, Goose, Kilo, and more — and keeps your live cascade in sync with the board and your operator profile. You never touch a number; the agent is the verifier. It counts tokens; it never reads the content of your prompts or replies.
What it does
Supported platforms
tokenpull reads local session logs from 15+ AI coding platforms. Each adapter reads that platform's own log format — you don't reconfigure anything.
“Estimated cache-write” means that platform's log format doesn't expose cache-creation tokens; the other three pillars are exact. Env-var overrides let you point any adapter at a custom log path.
Install
# install globally (recommended)
npm install -g sigrank
# or run without installing
npx sigrank
# wire into Claude Code — .mcp.json
{
"mcpServers": {
"sigrank": { "command": "npx", "args": ["sigrank"] }
}
}In a terminal it opens the TUI. Wired into your AI client it starts the MCP stdio server automatically — no extra config. Verified on Node ≥18, macOS + Linux.
CLI commands
MCP tools — callable by your AI client
When wired into Claude Code or Cursor, your AI agent can call these tools directly — no paste, no copy-out.
tokenpullOn-device read → 4-window cascade. Zero paste, token-only.tokenpull_submitRead + publish to the board in one call. Server re-scores authoritatively.tokenpull_compareAll four sources side-by-side: tokenpull / ccusage / token-dash / tokscale with delta % per pillar.rank_pasteScore a ccusage / tokscale paste locally. Returns Υ + narration card.rank_windowsScore all four windows from a dashboard paste at once.submit_pasteRank a paste AND publish it to the board in one call.submit_verifiedSign + POST the verified cascade to /api/v1/snapshots (the ranked path).enrollPaste a key from Settings → "New key" → bind this device (signed submit).get_leaderboardLive leaderboard from signalaf.com, any window.get_operatorOne operator's live profile by codename.watch_tokenpullStreaming cascade snapshot — diffs on each poll.Open by design — the cascade math is public; proprietary threshold cuts stay server-side. Canonical anchor: rank_paste reproduces MO§ES Υ 18,436.98 exactly.
How the MCP feeds your operator profile
The agent is the data pipeline between your local session logs and your public operator profile at signalaf.com. Here is the exact path, step by step.
The profile is not separate from the MCP. The MCP is the write path. Every cascade metric your profile displays — Υ Yield, SNR, Leverage, 10xDEV, class tier, per-window history — originates from a tokenpull_submit call (or a manual paste through the calculator). The profile is the read surface; the agent is the write path.
The contamination constraint (non-negotiable)
Any live observer that prompts generates the tokens it measures. We learned this directly: a memory observer that auto-prompts (low-input / high-output) inflated a real operator's output by ~25% — visible openly on the live board as the inflated-vs-clean pair (rows 2 and 3). So every SigRank instrument that touches a live session is read-only against telemetry and emits no prompt — no auto-memory, no keep-alive, no self-query. Verified-passive, or it re-contaminates every operator running it. This is a hard requirement, not a caution — and it is the moat: the instrument that doesn't disturb what it measures.
This is the same rule that governs signature drift: the agent is the live reader the drift instrument runs on, and because it never prompts, the drift it reports is the operator's own — not the observer's. A live observer that prompted would inflate the very numbers it reports; this one cannot.
The agent is how board entries become exact and live — vs. the manual paste calculator, which runs your numbers but does not save to the board or update your profile. Account + review still gate the board so it stays honest.
Token counts only — never prompt content. Verified-passive by design.