Repository navigation
Releases: nerv-base/mytoken
Release list
MyToken!!!!! 0.5.3
Full Changelog: v0.5.2...v0.5.3
MyToken!!!!! 0.5.2
Full Changelog: v0.5.1...v0.5.2
MyToken!!!!! 0.5.1
Full Changelog: v0.5.0...v0.5.1
MyToken!!!!! 0.5.0
Full Changelog: v0.4.1...v0.5.0
MyToken!!!!! 0.4.1
Full Changelog: v0.4.0...v0.4.1
- A leftover backup no longer blocks an upgrade. If an earlier attempt
left amytoken.db.pre-provider-v1.dbormytoken.db.pre-instance-v1.db
behind, the migration writes its own backup beside it under a timestamped
name instead of refusing to start, and the error message names the file it
actually tried. Nothing is ever overwritten, reused or deleted. - A failed start says so in a window. A database or migration error used
to quit without showing anything; it now opens a window with the error, the
database path, what to do about it, a button to reveal the data folder and
a way to quit. - The sources card lists your sources again. The card could come up with
only its subtitle once the settings page had been reloaded, as if no tool
had ever been found. - Codex quota shows the last reading the logs contain. Quota was only
published while new records were being indexed, so a source that was
already fully scanned never reported anything at all. A bounded read of the
tail of the newest rollout files now finds the most recent usable reading
without rescanning events, advancing cursors or guessing from tokens, and
the card states the age of the reading and why a pace cannot be computed. - Claude quota says when there is nothing to read. The card marks a
credentials file that is not there instead of offering it as ready, and
still reads nothing until you enable it. - The settings page stops re-running its heavy panels on every commit.
Each store commit re-ran the pricing, source and 90-day scope queries, which
kept the load queue busy while the page was open. They now load when the
page is opened or when their own data changes. - The provider ranking merges one endpoint into one row. Unidentified
endpoints were keyed per session, so a single provider appeared once for
every conversation.
MyToken!!!!! 0.4.0
- Rebuilt on MyGo 0.4.8. Charts, tables, selectors and search boxes are
now the framework's own controls, so keyboard navigation, screen readers
and animation come from the platform: data tips follow the arrow keys and
are announced, the sidebar is a labelled tab list, and the sliding
highlight is a real transition instead of a per-frame animation. The
five-colour theme, the glass panels and each page's own accent are
unchanged. - More than one copy of a tool. Settings › Sources can add, move, remove
and promote sources, including turning a backup copy of a folder into a
live one. Every copy keeps a stable id, so sessions, cache rows, providers
and reports never mix two installations. An explicit path that is wrong is
now reported as an error instead of silently falling back to a default. - Providers by identity, not by name. Requests are grouped by the
endpoint they came from, so a renamed alias or a moved domain no longer
splits the statistics and two accounts behind one relay keep their own
billing. Renaming a provider changes its label only. mytoken snapshot --once --json, a versioned JSON envelope with
freshness, source and diagnostics for scripts and status bars, plus
mytoken statusline,mytoken report day|week|monthand
mytoken report --by branch. Read-only commands never write to the
database, even while another copy of MyToken is running.- Know why a source is empty. Settings and
mytoken doctorsay whether a
source has no data because it was never scanned, has no token counts,
cannot be read, or is not supported — instead of showing a silent zero. - Budget alerts (Settings › Budget): notify when a day, week or month
crosses 80% or 100% of a limit, at most once per period, from estimated
cost. Alerts stay off until a fixed IANA timezone is selected, because day
boundaries are otherwise undefined. - Quotas. Codex rate limits are read from its own logs, offline, and a
fresh unusable reading never replaces a usable older one;quota list,
quota statusand the countdown come from the percentages the provider
reports. Claude's quota is opt-in and off by default: enabling it shows the
exact credential source and endpoint first, never refreshes tokens, and can
be turned off from the CLI while the app runs. - Live speed in the tray: committed output tokens per second over the
last minute, labelled as a measurement of committed output and not of model
generation speed.mytoken statuslineshows the same. - Branch reports: usage grouped by the git branch a session's own records
name, with worktrees of one repository folded together; contradictory
evidence is reported as unknown rather than guessed. - The Windows installer is still unsigned and macOS builds are ad-hoc signed;
the second batch of supported tools has not been checked against real logs
yet.
Full Changelog: v0.3.0...v0.4.0
MyToken!!!!! 0.3.0
A cache ledger: which prompts should have hit the prompt cache, which didn't, why, and what that cost. Plus six more tools.
0.2.2 and later update themselves to this version (MyToken › Settings › Check for updates, or wait for the daily check).
The first launch upgrades your database once. Each request gets a few cache columns (about 5 bytes per request), then the ledger is computed over your whole history — a few seconds, up to ~10 s on a 200K-request history. The upgrade is one-way: an older MyToken can't open the database afterwards.
Cache ledger
- New Cache page. For every request whose prompt should have been read back from the cache, MyToken checks whether it was. Misses get a reason:
- Compacted — the conversation was summarised, so the prefix is new (compaction markers from Codex, Claude Code, DeepSeek Harness, Pi, OpenCode and WorkBuddy logs).
- Expired — too long between turns (Anthropic 5 min / 1 h, OpenAI ~10 min, DeepSeek 1 h).
- Model changed — caches don't carry across models.
- No visible reason — same prefix, not expired, still missed. Often a relay that doesn't pass caching through, or routes you to another upstream.
- It adds up the tokens sent again and what they cost (actual cost minus the cost had they hit), by day, by cause, by provider and by session. Each provider gets a cache health figure: unexplained misses as a share of what should have hit.
- Cache timeline in each session: one bar per request, coloured by what was read, missed (and why) and new; compactions are marked.
mytoken cachein the terminal: totals by cause,--by provider|model|harness|project|session, ormytoken cache <session>for a request-by-request table.--json/--csvas usual.- It works for every tool from token counts alone — no prompts are read. Side requests and branch switches inside a session (Pi, DeepSeek Harness) are recognised and not counted as misses. Sessions whose tool reports no cache figures at all are shown as not cacheable and left out.
- Read "no visible reason" with care: on the history it was tuned on it is 84% of missed tokens but only 1.8% of what should have hit. It tells you where to look, not that a relay is broken.
Six more tools
Amp, Kiro, Zed, Antigravity, Codebuff and Mux are read now. None of them has been checked against real logs yet — if the numbers look off, please open an issue.
Fixes
- Pi's compaction requests are counted (their usage records failed to parse and were skipped).
- OpenCode compactions are recognised, so the request after one isn't blamed on the relay.
- Hit rates never exceed 100% when a request reads back more than its own earlier prompt (a prefix shared with another session).
Roadmap · How the cache ledger decides · Full Changelog: v0.2.3...v0.3.0
MyToken!!!!! 0.2.3
A lighter tray, less background CPU, and tidier relay prices.
0.2.2 updates itself to this version (MyToken › Settings › Check for updates, or wait for the daily check).
Faster and lighter
- Closing the main window frees it. It used to stay alive hidden, keeping its graphics buffers and glyph caches. MyToken in the menu bar now uses about 90–100 MB instead of about 210 MB; opening the window again builds it anew in a few milliseconds. (Measured on a 214K-request history.)
- Less CPU while agents work. A change to one log no longer reopens all ~2,000 logs: files whose size and time did not change (including SQLite
-walfiles) are skipped, with a full pass every 2 minutes as a safety net. Project paths are tidied from a small table instead of every request. Background CPU while agents write went from about 19% to about 7%.
Fixes
- The pricing page shows your own multiplier for each provider (or the one imported from cc-switch). Before, it could show one synced from a relay or an old dated rule, and saving the page then turned that into a rule of yours that no longer followed the relay.
- Relays add prices only for the models you used with them in the last 90 days or that appear in their bills, not for every model in their price list (one site added 210 rules for 3 models; 244 rules → 40 on the machine tested). A failed price-list fetch keeps the existing rules.
New
- Droid and Forge show their own logos, OpenClaude its green mark.
- Forge data in the older
~/forgefolder is read too.
Roadmap · Full Changelog: v0.2.2...v0.2.3
MyToken!!!!! 0.2.2
Fixes a fresh install that shows no data and cannot check for updates.
If you are on 0.2.1 and have a large tool folder (for example Hermes in
~/.hermes), 0.2.1 cannot update itself to this version: download the DMG / installer below and install over it once. Your data is kept. From 0.2.2 on, updates work again.
Fixes
- No data and failing update checks. MyToken watched every folder under each tool's home for changes, including whole programs installed there (Hermes keeps its own code in
~/.hermes). On macOS each watched file holds a file descriptor, so the app hit the system's limit (about 92,000) — then it could not read any logs, and the update check failed withproxyconnect tcp … socket: too many open filesor similar. MyToken now watches only the folders that hold logs: about 4,000 open files instead of 92,000 on the machine that found it. - A log that failed to parse on the first scan no longer stops live updates.
Changes
- Settings › Sources lists only the tools that have data, with their request counts and log folders; the other supported tools are counted in one line.
- WorkBuddy shows its own logo.
- The About card shows the real version.
Roadmap · Full Changelog: v0.2.1...v0.2.2
MyToken!!!!! 0.2.1
Automatic updates: this is the last version you need to download by hand.
Coming from 0.2.0? Install this one manually; from here on MyToken updates itself. No database change this time.
New
- Automatic updates. Once a day MyToken asks github.com whether there is a new version and shows its notes: install, skip it, or be reminded later. Updates are signed, and from a recent version only the changed parts are downloaded.
- Settings has a switch for the daily check and a Check for Updates button with the current version.
Builds that can't replace themselves never check: development builds and the Debian package (apt updates those). The command line never checks either.
Privacy
By default MyToken now makes two kinds of request: the price table, and the daily update check on github.com, which carries nothing but the request itself. Settings turns the check off. Relay reconciliation is still off until you turn it on, site by site.
Fixes
- The sidebar's "Up to date" now reads "Data up to date": it was always about the scan of your logs, not the app's version.
Next (0.2.2): ratio changes dated at the request where the site changed them, and sub2api peak-hour multipliers in local estimates.
Roadmap: docs/ROADMAP.md · Full Changelog: v0.2.0...v0.2.1