cookd
Health Warn
- License — License: MIT
- Description — Repository has a description
- Active repo — Last push 0 days ago
- Low visibility — Only 5 GitHub stars
Code Fail
- rm -rf — Recursive force deletion command in package.json
- process.env — Environment variable access in scripts/seed-device.mjs
- network request — Outbound network request in scripts/seed-device.mjs
- exec() — Shell command execution in src/adapters/claude-code/transcript.ts
Permissions Pass
- Permissions — No dangerous permissions requested
No AI report is available for this listing yet.
Watch your Claude Code token window burn. Get roasted when it closes.
cookd
THE ANTISOCIAL NETWORK.
Claude slammed the door. You have five hours.
Claude Code enforces a 5-hour rolling window on token usage. Every request counts against it — input tokens, output tokens, cache writes, agent turns, the whole ledger. When the window fills, Claude stops answering. No warning. One error message. Five hours on the clock.
Most developers doomscroll. Some switch to Gemini and feel bad about it. Some just close the laptop and stare at the ceiling. None of them get a roast card.
cookd is a two-part system. The companion — what you are reading right now — runs on your machine. It watches your local Claude Code transcripts, extracts the numbers, and syncs them to your dashboard in real time. The app shows you where you are: what percentage of your window is gone, which models you hit hardest, how fast you burned through it, which project consumed the most context. There is a Tonight's Anatomy: a live breakdown of your current session — prompt count, tool usage by function name, agent runs, cache hit rate, how long it took from your first prompt to the wall.
When you hit the limit, a roast card prints. It is generated by a sardonic tabloid editor who has studied your specific crimes — your real numbers: tokens burned, tools called, how deep into bypass-permissions mode you went, which model took the most punishment. It is, depending on your crimes, somewhere between accurate and deeply unfair.
You share it wherever your developer community lives. Someone who receives it wants their own. That is the loop.
cookd exists because the rate-limit wall gives you nothing when it hits. Just a timestamp and five hours of ceiling. This fills that gap — with numbers, with context, and with something shareable when you'd rather laugh about it than stare at the ceiling.
npx @codeclowns/cookd init
what happens
You run npx @codeclowns/cookd init. The companion reads your local Claude Code transcripts — token counts only, never content. It prints your field notes: how many tokens you torched, how fast you burned, what percentage of your window is gone. Then it generates a six-character press code.
You enter the press code in the app. The editor reads your file. A roast card prints. It is specific. It uses your real numbers. It is, depending on your crimes, somewhere between funny and deeply accurate.
You share it wherever your developer community lives. Someone who receives it wants their own. That is the loop.
the companion commands
npx @codeclowns/cookd init # link this machine to your account
cookd status # how deep are you right now
cookd watch # start the background sync
cookd wrapped # your full usage anatomy
what leaves your machine
The companion reads your Claude Code transcripts at ~/.claude/projects/. It extracts numbers and system identifiers. Here is exactly what gets transmitted.
Every sync:
- Token counts by type: input, output, cache writes (5-min and 1-hour tiers), cache reads
- Request timestamps
- Anthropic model identifiers (e.g.,
claude-sonnet-4-6) — public strings defined by Anthropic, not specific to your account - Whether requests came from agent/subagent turns (boolean)
- Whether you were in bypass-permissions mode (boolean — not what you typed)
- Tool function names and call counts:
[["Read", 47], ["Edit", 23], ["Bash", 11]]— names only, never arguments - Your current project's directory basename:
cookd,my-app— never the full path - Derived aggregates: window percentage, session count, rate-limit hit count, peak hour, time-to-cook
When you hit the rate limit:
- Timestamp, tokens used, token ceiling, minutes from first prompt to hit, top model, next reset time
Once, when you first link:
- A
deviceId— a random 32-character hex string generated locally. No email. No machine name. No username.
Never read or transmitted:
- Anything you typed as a prompt
- Anything a model returned
- Code, file contents, or clipboard data
- Tool arguments (what you asked each tool to do)
- Full file paths
The complete field list is in src/sync/events.ts. The parser is in src/adapters/claude-code/transcript.ts. Local state lives at ~/.cookd/ with chmod 600 on all credential files. See SECURITY.md for the full per-field table.
the rolling window
Claude Code resets limits on a rolling 5-hour basis. cookd tracks your weighted token spend within that window and shows you what percentage of your limit you've torched.
Token weights: inputTokens × 1 · outputTokens × 4 · cacheCreationTokens × 1.25 · cacheReadTokens × 0.1
requirements
Node 22+. A terminal. A Claude Code session history. That last one is the only real requirement.
# one-time setup
npx @codeclowns/cookd init
# global install (for status / watch / wrapped without npx)
npm install -g @codeclowns/cookd
supported agents
| agent | status |
|---|---|
| Claude Code | stable |
| Cursor | coming soon |
| Windsurf | coming soon |
| Gemini CLI | coming soon |
add an agent
cookd uses an open AgentAdapter interface. If your editor isn't listed, open a PR:
export interface AgentAdapter {
readonly name: string;
readonly displayName: string;
detect(): Promise<boolean>;
events(): Promise<UsageEvent[]>;
watch(cb: () => void): () => void;
}
See CONTRIBUTING.md for the full spec and a worked example.
contribute
Bug reports, feature requests, and adapter PRs are welcome. Read CONTRIBUTING.md first.
license
MIT © 2026 CodeClowns Technologies LLP
no email. no password. no tourists.
if you don't have a terminal, this isn't for you.
Reviews (0)
Sign in to leave a review.
Leave a reviewNo results found