Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add commands/tyejcoleman/tokenroom/releasegit clone --depth 1 https://github.com/tyejcoleman/tokenroomWhat it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00021 | $0.00899 |
| Opus 5 | $0.00010 | $0.00449 |
| Sonnet 5 | $0.00004 | $0.00180 |
| Haiku 4.5 | $0.00002 | $0.00090 |
Grade A, and why
release scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
What it actually says
Cut a release. Follow exactly; stop and report at any failed gate. Everything below is agent-executable EXCEPT the one human ceremony in step 0.
- Token ceremony (HUMAN, once — and after any credential exposure): CI publishes
with the
NPM_TOKENrepo secret, which must be a granular access token with Read and write / All packages AND "Bypass two-factor authentication" ENABLED. (Classic "Automation" tokens are retired — npm offers granular only now.) All-packages scope is required for FIRST publishes (an unpublished name can't be selected). Both failure signatures fire at the publish step only, after all gates pass:E403 You may not perform that action with these credentials— wrong token type (field 2026-06-10, run 27315632200);E403 Two-factor authentication or granular access token with bypass 2fa enabled is required— granular token created WITHOUT the bypass toggle (field 2026-06-11, run 27385109918). If the toggle is absent from the token form, the account's 2FA write-requirement setting is pinned to "always" — relax it to the granular-bypass option first. Granular tokens EXPIRE (~90d cap): calendar the renewal. After creating:gh secret set NPM_TOKEN, revoke the previous token. Fallback that needs no token changes: a human runsnpm publish --access public --otp=<code>locally (loses provenance for that release). Agents must NEVER print, commit, or echo token values (gate G6); a failed publish is re-run withgh run rerun <id>— tags never move.
- Preflight:
node scripts/release-preflight.mjs— tree, tests, gates, dated CHANGELOG section, tag state, tarball scope, registry collision, secret presence. Fix every ✗ before proceeding. (CI runs it with--offline.) - Version: bump
versioninpackage.jsononly — single source of truth (ADR-10). Patch = fixes, minor = features, pre-1.0. - CHANGELOG.md: a DATED section
## X.Y.Z — YYYY-MM-DD(release.yml extracts it; "Unreleased" headings block the GitHub release notes). Grouped Added/Fixed/Changed, written for users. - Commit & tag:
release: vX.Y.Zcommit →git tag vX.Y.Z && git push && git push --tags. - The tag does the rest —
.github/workflows/release.yml: gates → tag==version check →npm publish --provenance→ GitHub release from the CHANGELOG section. Watch:gh run watch $(gh run list --workflow release --limit 1 --json databaseId -q '.[0].databaseId'). If it fails at the publish step with E403: that is the token type (step 0) — fix the secret, thengh run rerun <run-id>. The tag is fine; never delete/move it. - Registry verification (the release is not done until this passes):
npm view tokenroom version→ the new version;- in a temp prefix:
npm install -g --prefix $(mktemp -d) tokenroomand run the installedtokenroombinary:line(degrades to "no data"),tapwith a fixture payload (renders HUD),doctor --config-dir $(mktemp -d)(reports, exits 1 on the empty sandbox — expected); - npm page shows the provenance badge ("built and signed on GitHub Actions").
- Announce only per the launch plan (
launch/RUNBOOK.md) — publishing is not promotion; do not post anywhere unless the user has explicitly green-lit the launch.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- yesterday First seen · 49 lines · 21 tokens per session scan A 5cd6887f0658
release is a command published in the GitHub repository tyejcoleman/tokenroom (0 stars, last pushed 1mo ago), licensed Apache-2.0. It adds 21 tokens to every session and 899 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.
Other commands, from other repositories
implement-issue
You are orchestrating a Plan → Implement → Review → Remediate → PR cycle for a GitHub issue, with support for stacked PRs when issues form a linear dependency chain.
list
List memory rows (optionally filtered by type or tier).
dream
Memory dream pass — judge undreamed days, promote durable signal to long-term, then sweep.
plan
Create a compact implementation contract before broad app/site/game/refactor work.
install-rules
Install Governor compact-mode rule files into a project for Codex, Gemini, Cursor, Windsurf, or Cline.
full
Temporarily ask Governor to avoid compacting tool output for the next diagnostic step.