tokineko

Your AI work style, as a cat in your terminal. トークンで育つターミナルの猫。


Keywords
claude-code, codex, pet, tamagotchi, statusline, usage, cat
License
MIT
Install
npm install tokineko@1.0.0

Documentation

tokineko 🐱

Your AI work style, as a cat in your terminal. トークンで育つターミナルの猫 — 日本語 README はこちら

validate node license

tokineko statusline demo

A tiny pet that lives in your Claude Code statusline and feeds on your local usage logs. Tokens become body weight. Your work style becomes its personality — and every Monday it evolves into a new generation based on how you actually worked.

  • Tokens = weight, cost = feed bill. "My cat ate $87 this month" hurts less than an invoice
  • 🌙 Work style = personality. Night sessions make it nocturnal; two nocturnal generations in a row and it evolves into an owl-cat. Cache-efficient work gives it a glossy coat
  • 📅 Weekly generations. Every Monday 0:00 the week is finalized into a dex record and a share card (SVG/PNG, generated locally)
  • 🔊 Fully synthesized sounds. A purr when your agent finishes, a chime when it needs input. No audio files — everything is rendered from JSON parameters
  • 🛰 Multi-tool. Claude Code and Codex out of the box; more adapters welcome
  • 🔒 Zero network. No telemetry, no uploads. Reads only token counts, timestamps and model names — never your prompts. Enforced by lint + CI, not just promised

Quickstart

Requires Node.js ≥ 20 and Claude Code (or Codex).

npm install -g tokineko
tokineko init      # wires statusline + hooks (backup + diff shown first)
tokineko doctor    # check everything, play a test purr

That's it. Work as usual — the cat appears at the bottom of your next Claude Code session.

Command What it does
tokineko Current cat + usage card
tokineko dex Generation history (the collection)
tokineko card --open Share card for the latest generation (SVG → PNG)
tokineko achievements Badge list
tokineko doctor Diagnostics

Configuration

~/.config/tokineko/config.json (all optional):

{
  "mode": "meter",                  // tired of the cat? plain usage meter
  "locale": "en",                   // "auto" | "ja" | "en"
  "sound": { "enabled": true, "volume": 0.8, "quietHours": [[0, 7]] },
  "statusline": { "maxWidth": 0 }
}

Every game coefficient (weight curve, mood, coat) is also tunable — see SPEC.md.

Privacy

tokineko never connects to the network. Its runtime code cannot import http/net/dns/tls (CI-enforced). From your local logs it extracts only token counts, timestamps, session-id hashes and model names; prompt bodies are discarded at parse time and never stored. Share cards are plain local files — nothing is auto-posted anywhere.

Contributing — add your cat in 5 minutes

One contribution = one file. This JSON is a complete, valid pet:

{ "id": "shiba", "name": { "en": "shiba", "ja": "しば" }, "author": "you", "face": { "idle": "(・ᴥ・)" } }

Species, sounds (parametric synth), achievement badges, translations, adapters — all are single-file PRs with automated CI checks and a bot preview. Every entry keeps its author credit in the gallery. See CONTRIBUTING.md.

License

MIT © ma0 — ma0 = māo = 猫 = cat