Local-first dashboard + MCP for Claude Code and Codex token usage. Per-MCP/tool breakdown.
Drift inferred · capture-to-capture
No drift recorded — single capability capture; advisories appear once its surface changes.
transport stdio · http
verified
reported
listed in the official MCP registry counts 5 tools · 0 res
· 0 prompts
permission surface via code analysis
tools
-
recent_sessions
-
refresh_data
-
session_tools
-
subagent_costs
-
usage_summary
prompt-surface
shipped agent-instruction files + hidden-content / dangerous-code findings —
quoted from the analyzed source
analyzed commit 2761674 · analyzer v33 · 1w ago
danger signals2
- dynamic code execution new Function() whdrnr2583-cmd-token-meter-2761674/test/audit-pricing-sync.test.ts :28
const factory = new Function(` - dynamic code execution new Function() whdrnr2583-cmd-token-meter-2761674/test/calculator-pricing-sync.test.ts :31
const factory = new Function(`
evidence-backed
findings quoted directly from the published source artifact — not inferred
code files: 81
filesystem 39
- fs (weak) whdrnr2583-cmd-token-meter-2761674/scripts/inspect-codex.cjs :1
const fs = require('fs'); - fs (weak) whdrnr2583-cmd-token-meter-2761674/scripts/inspect-codex2.cjs :1
const fs = require('fs'); - fs (weak) whdrnr2583-cmd-token-meter-2761674/scripts/inspect-jsonl.cjs :1
const fs = require('fs'); - fs (weak) whdrnr2583-cmd-token-meter-2761674/scripts/investigate-dedup.cjs :4
const fs = require('fs'); - fs (weak) whdrnr2583-cmd-token-meter-2761674/scripts/postbuild.cjs :3
const fs = require('node:fs'); - fs (weak) whdrnr2583-cmd-token-meter-2761674/scripts/quality-audit.cjs :242
const fs = require('fs'); - fs (weak) whdrnr2583-cmd-token-meter-2761674/scripts/verify-subagent-scan.mjs :11
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/cli.ts :2
import { readFileSync, writeFileSync } from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/codex-ingest.ts :1
import { existsSync, readdirSync, statSync } from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/codex-parser.ts :1
import { readFileSync } from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/db.ts :2
import { mkdirSync } from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/ingest.ts :1
import { readdirSync, statSync, existsSync, readFileSync } from 'node:fs';
show 27 more
- fs whdrnr2583-cmd-token-meter-2761674/src/install-command.ts :7
} from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/install-mcp.ts :7
} from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/license.ts :11
import { mkdirSync, readFileSync, writeFileSync } from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/mcp.ts :4
import { readFileSync } from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/parser.ts :1
import { readFileSync } from 'node:fs'; - fs whdrnr2583-cmd-token-meter-2761674/src/platform.ts :1
import { readdirSync, existsSync, readFileSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/audit-expensive-session.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/audit-oversized-tool-response.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/audit-pricing-sync.test.ts :3
import fs from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/audit-repeated-tool-calls.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/audit-slow-tool.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/calculator-pricing-sync.test.ts :3
import fs from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/codex-ingest.test.ts :1
import { existsSync, mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/codex-model-detection.test.ts :1
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/codex-tool-events.test.ts :1
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/db-reingest-growth.test.ts :1
import { mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/digest.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/escape.test.ts :3
import { readFileSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/export.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/forecast.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/ingest-subagent.test.ts :1
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/install-command.test.ts :10
} from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/install-mcp.test.ts :10
} from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/parser-dedup-robustness.test.ts :3
import { mkdtempSync, writeFileSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/rules.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/subagent-costs.test.ts :1
import { mkdirSync, mkdtempSync, rmSync, writeFileSync } from 'node:fs'; - fs (weak) whdrnr2583-cmd-token-meter-2761674/test/trim-suggestions.test.ts :5
import { mkdtempSync, rmSync } from 'node:fs';
shell / exec 3
- shell (weak) whdrnr2583-cmd-token-meter-2761674/scripts/test-mcp-built.cjs :3
const { spawn } = require('node:child_process'); - shell (weak) whdrnr2583-cmd-token-meter-2761674/scripts/test-mcp.cjs :2
const { spawn } = require('node:child_process'); - shell whdrnr2583-cmd-token-meter-2761674/src/install-mcp.ts :10
import { execSync } from 'node:child_process';
network 8
- net whdrnr2583-cmd-token-meter-2761674/infra/api/src/index.ts :283
const res = await fetch('https://api.resend.com/emails', { - net whdrnr2583-cmd-token-meter-2761674/infra/site/site.js :28
const res = await fetch(`${API_BASE}/v1/waitlist`, { - net whdrnr2583-cmd-token-meter-2761674/public/app.js :28
const res = await fetch(path, init); - net whdrnr2583-cmd-token-meter-2761674/src/digest.ts :20
* Replace the stub in sendEmailViaWorker() with a real fetch() once the - net whdrnr2583-cmd-token-meter-2761674/src/license.ts :166
const res = await fetch(`${getApiBase()}/v1/license/verify`, { - net whdrnr2583-cmd-token-meter-2761674/src/proxy.ts :1
import http from 'node:http'; - net whdrnr2583-cmd-token-meter-2761674/src/rules.ts :205
const res = await fetch(cfg.url, { - net (weak) whdrnr2583-cmd-token-meter-2761674/test/proxy.test.ts :1
import http from 'node:http';
database 18
- db (weak) whdrnr2583-cmd-token-meter-2761674/scripts/investigate-dedup.cjs :1
const Database = require('better-sqlite3'); - db (weak) whdrnr2583-cmd-token-meter-2761674/scripts/migrate-dedup.cjs :3
const Database = require('better-sqlite3'); - db (weak) whdrnr2583-cmd-token-meter-2761674/scripts/quality-audit.cjs :3
const Database = require('better-sqlite3'); - db whdrnr2583-cmd-token-meter-2761674/src/audit/detectors/slow-tool.ts :46
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/audit/engine.ts :52
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/audit/types.ts :18
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/codex-ingest.ts :4
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/db.ts :1
import Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/digest.ts :24
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/export.ts :14
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/forecast.ts :14
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/ingest.ts :4
import type Database from 'better-sqlite3';
show 6 more
- db whdrnr2583-cmd-token-meter-2761674/src/proxy.ts :4
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/rules.ts :1
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/sessions.ts :1
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/stats.ts :1
import type Database from 'better-sqlite3'; - db whdrnr2583-cmd-token-meter-2761674/src/trim-suggestions.ts :22
import type Database from 'better-sqlite3'; - db (weak) whdrnr2583-cmd-token-meter-2761674/test/round3-subagents-ingested-at.test.ts :1
import Database from 'better-sqlite3';
tool registrations 5
- usage_summary whdrnr2583-cmd-token-meter-2761674/src/mcp.ts :268
- recent_sessions whdrnr2583-cmd-token-meter-2761674/src/mcp.ts :444
- session_tools whdrnr2583-cmd-token-meter-2761674/src/mcp.ts :502
- subagent_costs whdrnr2583-cmd-token-meter-2761674/src/mcp.ts :553
- refresh_data whdrnr2583-cmd-token-meter-2761674/src/mcp.ts :655
install hooks 1
- prepublishOnly whdrnr2583-cmd-token-meter-2761674/package.json :46
npm run typecheck && npm test && npm run build
declared dependencies 10
- @modelcontextprotocol/sdk@^1.0.4
- @fastify/static@^8.0.3
- better-sqlite3@^11.5.0
- chokidar@^3.6.0
- fastify@^5.1.0
- zod@^3.23.8
- @types/better-sqlite3@^7.6.12
- @types/node@^22.10.0
- tsx@^4.19.2
- typescript@^5.7.2