v1.0 · iOS · CLI · MCP SERVER

Track your
AI API spend.
Then kill the leak.

A cost firewall for your AI bill. TKN shows today’s spend across OpenAI, Anthropic, xAI and Gemini on one screen, checks it against the spend rules you set, and lets you revoke a compromised key from your phone — at the provider, not just in the app.

$ npx @tknapp/cli login
PROVIDERS · ONE NUMBER
4
KEYS ON OUR SERVERS
0
REVOKE SCOPE
KEY / PROV / ALL
TIME TO CONNECT
~90 sec
OPENAI · CHATGPT · GPT-4O · O3 · O4-MINI ANTHROPIC · CLAUDE OPUS · SONNET · HAIKU GOOGLE · GEMINI 2.5 PRO · FLASH X.AI · GROK-3 MISTRAL · COHERE · DEEPSEEK · TOGETHER ON-DEVICE KEYS · AES-256 · FACE ID OPENAI · CHATGPT · GPT-4O · O3 · O4-MINI ANTHROPIC · CLAUDE OPUS · SONNET · HAIKU GOOGLE · GEMINI 2.5 PRO · FLASH X.AI · GROK-3 MISTRAL · COHERE · DEEPSEEK · TOGETHER ON-DEVICE KEYS · AES-256 · FACE ID
/ 00 · THREAT MODEL

The invoice arrives
after the bleed stops.

Stripe and your cloud bill catch finance. Nobody catches a leaked OpenAI key at 02:14 on a Saturday. By the time you notice, you've shipped your runway to a teenager in São Paulo.

282 iOS apps
found leaking LLM
API keys in traffic.
The Hacker News, June 2026.
LLMjacking.
Your key gets resold.
You get the bill.
— attackers scan public repos for keys; 1Password.
The invoice
is the alarm.
That's the problem.
— billing APIs report daily. The bill lands weeks later. Nothing pages you in between.
/ 01 · THE CONSOLE

A pager for your
token spend.

Total spend today, sized for the lockscreen. Every model, every key, every watcher in one dense scrollable feed. No charts. No bubbles. Just numbers that change.

iOS · CLI · MCP SERVER

Token-level visibility,
at the speed of paging.

The Console is what your on-call sees when the alarm trips. One screen, one number, one decision: kill or hold.

  • 01Hero spend. $X.XXXX in font-mono so you can read it through panic.
  • 02Active watchers feed. Model, in/out tokens, cost — all tabular-nums, no jitter.
  • 03Daily spend sparkline. Hard step-plot, last 14 days. Spikes are obvious.
  • 0424h projection. Burn-rate envelope with breach ETA. Calibrated, not optimistic.
  • 05Heavy haptics. Critical pages thump. Info pages tap. You'll know which is which without looking.
▌ DEMO DATATODAY
TOTAL SPEND · TODAY
$237.4012
TOKENS
14.3M
VS DAILY AVG
0.9× ·
ACTIVE WATCHERS · 6
O
gpt-4o
24.5k IN / 12.1k OUT
$0.42
O
gpt-4o-mini
SPIKE · 41 r/s
$1.84
A
claude-sonnet-4
91.2k IN / 22.8k OUT
$0.62
G
gemini-2.5-pro
18.3k IN / 4.9k OUT
$0.08
/ 02 · THE ARSENAL

Spend rules.
And a kill switch.

Set a dollar threshold for one provider or across all of them. TKN checks it against your live daily spend and flags the breach in the Console. If it’s already on fire, swipe the red block at the bottom of the screen.

RULE-01 · ARMED
IF spend ON ALL > $50 TODAY [BREACH]
RULE-02 · ARMED
IF spend ON OPENAI > $20 TODAY [OK]
RULE-03 · ARMED
IF spend ON ANTHROPIC > $25 TODAY [NEAR]
▌ THE KILL SWITCH

One swipe.
Every key. Gone.

A 90% drag commits. Less, and it snaps back. The thumb is heavy on purpose — accidental revocations cost more than missed spikes.

  • Revocation happens at your provider, not just in the app.
  • Optional scope: one key, one provider, or all.
  • Heavy haptic on success. Three quick on failure.
REVOKES 7 KEYS · IRREVERSIBLE
SWIPE TO REVOKE ALL KEYS ▶▶▶
▶▶
EVERY SERVICE USING A REVOKED KEY WILL START RETURNING 401.
KEYS MUST BE REISSUED BY YOUR PROVIDER.
/ 03 · THE CLI

The whole pager,
in a terminal.

Ships as @tknapp/cli — the tokn command. No daemon, no telemetry, no Electron. Pipes to whatever your incident process speaks — Slack, PagerDuty, or just a shell that quits and SIGTERMs your worker pool.

tokn — /usr/local/bin/tokn — 92×34
$ tokn login
→ credentials stored at ~/.tkn/auth.json
→ registered 4 keys · 0 leaked secrets in repo
✓ ready
 
$ tokn status --live
┌────────────────────────────────────────────────────────────────────┐
▌ DEMO DATA TODAY │
├────────────────────────────────────────────────────────────────────┤
│ [O] gpt-4o 24.5k/12.1k 18 r/s $0.42
[O] gpt-4o-mini 188.2k/49.1k 41 r/s SPIKE $1.84
│ [A] claude-sonnet-4 91.2k/22.8k 22 r/s $0.62
│ [G] gemini-2.5-pro 18.3k/ 4.9k 9 r/s $0.08
└────────────────────────────────────────────────────────────────────┘
⚠ rule-01 tripped at 14:02:11 · spend 5.34/10m
 
$ tokn kill --yes
sk-proj-…ax7 REVOKING [===] REVOKED
sk-ant-…kQ9 REVOKING [===] REVOKED
✓ revoked at provider · log: ~/.tkn/audit/
$
FIELD COMMANDS
tokn login
Mount the local enclave (~/.tkn), register provider keys.
tokn status
Combined spend today across every provider. tail -f for your AI bill.
tokn watchers
Per-model tokens in/out, requests/sec, and cost.
tokn rules
List the armed spend rules and how often they've tripped.
tokn kill
Revoke one key, one provider, or all of it. Confirm before fire.
tokn whoami
Show which providers TKN has keys for, masked.
/ 04 · THE MCP SERVER

Let your agent
see its own bill.

TKN ships a Model Context Protocol server. Drop it into Claude Desktop, Cursor, or your custom harness, and your agent gets read+revoke capabilities scoped to its own keys. Self-policing autonomy.

/ TOPOLOGY
YOUR AGENTclaude · cursor · langgraph
↓ tools/call
▌ TKN MCP SERVERstdio · tokn-mcp
↓ enforce + observe
PROVIDERopenai · anthropic · gemini
/ MCP CONFIG · claude_desktop_config.json
{
  "mcpServers": {
    "tkn": {
      "command": "tokn-mcp"
    }
  }
}
/ EXPOSED TOOLS
tkn_get_spend(provider?)
Today's combined spend, total tokens, and per-model breakdown.
tkn_list_watchers(provider?)
Active watchers with tokens in/out, requests/sec, and cost.
tkn_list_rules()
The armed spend rules and how often each has tripped.
tkn_revoke_keys()
Kill switch. Revoke every stored key. Irreversible.
/ 05 · THE VAULT

Your keys stay
on your device.

The mobile enclave is the iOS Keychain; the CLI enclave is ~/.tkn on your machine. The dashboard reads your providers directly. Our servers do not hold your keys.

AES-256-GCM

LOCAL ENCLAVE

iOS Keychain (Secure Enclave-backed, device-only) on mobile; per-machine derived key on desktop. Your provider keys aren't uploaded — unless you opt into Pro alerts.

FACE ID

BIOMETRIC LOCK

The app locks behind Face ID when keys are present. Reveal and revoke can require a second biometric confirm.

AUDIT LEDGER

Every revoke, pause, and rule trip is append-only signed JSONL. Pipe it to your SIEM or git-commit it.

Encrypted at rest    Device-only by default    No raw keys on our servers
READ THE PRIVACY POLICY →
/ 06 · PRICING

It pays for itself
the first time.

Start free on one provider. Go Pro for unlimited providers, push alerts, and the kill switch. The first key you defend pays for the year.

FREE
$0 /mo
Individual builders and side projects still in dev.
  • 1 connected provider
  • Read-only spend dashboard
  • CLI & MCP server (full)
  • Manual refresh
GET ON THE APP STORE
TEAM
CALL
Not built yet. If your team needs this, tell us what it has to do.
  • Multi-seat — under consideration
  • Slack / PagerDuty — under consideration
  • SSO — under consideration
  • Nothing here ships today
TELL US WHAT YOU NEED
/ 07 · THE FIELD MANUAL

What to do when
it goes wrong.

Written to be used at 3 a.m., not skimmed. Direct answers first, real console URLs, sources linked, and a verified date on every page.

/ 08 · QUESTIONS

The things people
ask first.

Including the ones with awkward answers. If TKN is the wrong tool for what you need, we would rather you found out here than after installing.

Does TKN see my API keys?

No. Provider keys are stored in the iOS Keychain — Secure Enclave-backed, device-only, excluded from iCloud backup — behind Face ID, and TKN calls the providers directly from your phone. TKN is not a proxy, so your model calls never pass through us. The one exception is opt-in: enabling background spend alerts requires keys server-side, encrypted, and you can turn it off and delete them at any time.

Is the spend figure real-time?

No, and no tool reading billing APIs can be. Every major provider reports cost on a daily cadence, because billing is an accounting system rather than telemetry. TKN shows you the day — which is early enough to catch a runaway loop, a model change, or a leaked key before the invoice does. Anything advertising real-time spend is either proxying your traffic or estimating from token counts.

What key does each provider need?

OpenAI needs an organization admin key (sk-admin-…), Anthropic an admin key (sk-ant-admin…), and xAI a management key rather than a standard xai- inference key. Google Gemini has no paste-a-key path at all — its spend lives in Google Cloud Billing. We say this up front because it is the most common reason people install and bounce.

What does the kill switch actually do?

It calls your provider's own key-management API and revokes the key at the provider, not just in the app. You choose the scope: one key, one provider, or every key TKN holds. It is a deliberate swipe-to-confirm with a biometric check, and it is irreversible.

Can TKN track Claude Code or Codex usage?

The tokn CLI can. `npx @tknapp/cli agents` reads Claude Code's local session logs and prices them — no API key needed, because the token counts are already on your disk. That is a different data source from metered API spend, which is what the app tracks.

Do I need an account?

No. TKN runs in a demo mode with representative data and no sign-up, so you can see every screen before connecting anything. An account is optional and only enables cross-device sync; you can delete it and its data from inside the app.

▌ ARMED · STANDBY · WAITING ON YOU

Install TKN before
your next invoice.

It takes 90 seconds. The first key you defend pays for the year.

$ npx @tknapp/cli login
▶ OPEN CONSOLE SEE PRICING