Somewhere in your ~/.claude directory, a hero has been questing for weeks.
Every prompt you typed was a spell. Every 3 AM debugging session, a night march. Every
compaction survived, a memory reforged. TokenQuest reads that history — entirely on your
machine — and hands you the character sheet you already earned: level, eight attributes,
a class, a chronotype race, gear, a spellbook, and a place in
the Halls of Heroes.
No account. No email. Nothing to watch — it plays itself while you work. The first thing it does is replay your history: “you're already Level 34.”
The short version of how this works
- One file. The whole agent is tq.py — plain, readable, stdlib-only Python. Read it before you run it; that's the intended experience.
- Your data stays home. The game runs on
127.0.0.1, derived from your own transcripts. The ONLY thing that ever leaves is a ~600-byte standing for the leaderboard — fourteen labeled measurements you can inspect first with--dry-run(sample below). - The road ahead stays dark. World content drips from the server as your hero advances — no spoilers on your disk, just like the .exe days.
- Everything is reversible. The script never installs cron, never self-updates,
never needs sudo. Uninstall = delete the file and
~/.tokenquest.
Do it yourself (the four commands)
curl -fsSL https://tokenquest.tehgaem.com/get/tq.py -o tq.py python3 tq.py --dry-run # see EXACTLY what a push would send (sends nothing) python3 tq.py --register --handle YourHeroName # claim your hero (prints your recovery passphrase ONCE) python3 tq.py --play # your game, at http://127.0.0.1:8123 — pushes every 5 min while it runs
Optional: --mirror on hosts your living panel at an unlisted,
rotatable link (and doubles as your history's backup) · the printed cron line keeps your hero
fresh when you're not playing · --reclaim brings your hero to a new machine.
Runs happily on a VPS — if you use Claude Code over SSH, run it there; VS Code forwards
the port automatically.
What leaves your machine — the whole payload
This is a real --dry-run output, in full. Fourteen aggregate measurements, a
motto, an avatar. No project names, no file paths, no prompt text, no daily series, no
histograms. The server derives your stats from these — the formulas live in one place, so
the agent on your disk never needs updating.
{
"measurements": {
"user_prompts": 821, "total_active_min": 7187,
"avg_session_min": 37, "active_days": 24,
"corpus_days": 25, "tokens_total": 3428299977,
"tokens_io": 14294654, "user_words": 30004,
"user_chars_typed": 171303, "compactions": 0,
"agent_launches": 8, "workflow_uses": 0,
"peak_day_io_tokens": 1481071, "cost_io_usd": 344.97
},
"motto": "120h adventured · 14.3M tokens slain",
"avatar": "⚔"
}
The opt-in mirror sends more (your panel's display feed) — scrubbed first:
project names, the weekday-hour matrix and unrecognized MCP tool names never leave your box.
--dry-run shows that payload too when the mirror is on. Off by default.
Fair warning about the paste-a-prompt method
Pasting instructions into your agent is exactly the pattern security guidance tells you to distrust — so distrust it: the message below tells your Claude to download tq.py, read it, and explain it to you before anything runs, and to stop if anything looks off. If you'd rather stay hands-on, the four commands above do the same thing.
TokenQuest is part of Questful — every real-world signal deserves a hero.