vibetax
local only · no server · no telemetry

What's your
vibe tax
this month?

Your coding agents have been billing you in tokens. One command reads the logs on your own machine and hands you the receipt — as a card worth posting.

star on GitHub
node ≥ 20claude code + codex7d / 30d / 90d / ytd / allpng 1200×675 or 1080×1350
vibetax receipt card, light theme, portrait, last 30 days: ≈ $4,543 API-equivalent cost, 6 141 243 900 tokens, 324 sessions, 238 h 01 m agent time, Marathoner stamp
the artifact

Four flavors of
financial regret

Dark or light, 16:9 for the X preview or 4:5 to eat the whole feed. Same numbers, different flex.

vibetax receipt card, dark theme, 1200x675, last 30 days: ≈ $4,543 API-equivalent cost
--theme dark · 1200×675
vibetax receipt card, dark theme, portrait 1080x1350, last 30 days: ≈ $4,543 API-equivalent cost
--portrait · 1080×1350
vibetax receipt card, light theme, 1200x675, last 30 days: ≈ $4,543 API-equivalent cost
--theme light · 1200×675
vibetax receipt card, light theme, portrait 1080x1350, last 30 days: ≈ $4,543 API-equivalent cost
--portrait --theme light · 1080×1350
how it works

Three steps, zero uploads

01

Reads your logs

Streams ~/.claude and ~/.codex line by line, dedupes assistant messages, skips broken ones.

02

Does the math

Bundled price list, prefix matching per model, pauses over 30 minutes cut out of agent time. Matches ccusage to the dollar on the same price list.

03

Hands you a PNG

Card in the terminal plus a PNG on disk. No headless browser, no network call, no account.

$ npx vibetax
vibetax · scanning ~/.claude and ~/.codex …
found 324 sessions (Claude Code: 170, Codex: 154) · Aug 5 – Sep 3 2026
  ✓ saved ./vibetax-2026-09-03.png (1200×675)
  share it: https://x.com/intent/post?text=…
docs · cli

Every flag there is

--period7d · 30d · 90d · ytd · all · 2026-06-01..2026-08-31
--agentclaude · codex · all
--themedark · light
--portrait1080×1350 instead of 1200×675
--anonymizehide project and file names
--jsonall metrics to stdout
--no-imageterminal card only
--out · --openwhere to save · open it after
--pricingyour own price list json
--claude-dir
--codex-dir
override the log dirs
docs · privacy

What leaves your machine: nothing

read

token counts · timestamps · model names · tool names · file basenames

never read

prompt text · agent replies · full paths · anything about your repo contents

No telemetry, no version check, no analytics, no account. The share button is just a prefilled x.com/intent/post link — you attach the picture yourself.

read the README ↗