Changelog
Every release, newest first
What shipped in each version of the tokenstat CLI, desktop app, and MCP server.
v0.6.915 new · 3 fixedEverything since 0.6.8, which is the last release anybody received.
New
- SSH from the Mac, the iPhone and the iPad, as a place in the sidebar rather than a panel over Devices. Hosts, keys, snippets and trusted servers are sections you navigate to, folders nest under Hosts, the list gets the whole window and the editor opens beside it. Leaving for Home and coming back keeps you where you were, and the rest of the app stays usable throughout.
- A saved server carries what it needs to connect: which key to use, which server to reach it through, a starting directory, environment variables, a keepalive, and a colour and folder to find it by. Snippets can ask for
{{values}}when they run, so one snippet covers every server. - Import servers from
~/.ssh/config, from AWS and from DigitalOcean. tokenstat reads that file and never writes to it, and shows what it found before saving anything. - Credentials live in an encrypted vault that can follow the account. Setting one up takes the servers, folders, keys and snippets already saved on this device with it, syncing runs both ways, and Sync now says when it last ran. It is one quiet row above the server list, saying how many records it holds, with setting it up, replacing the recovery code and deleting it one click away and each with room to say what it costs. Recovery is confirmed in two steps: the code is on screen to be written down, then off screen while it is typed back, so confirming cannot be done by reading. The vault is a Supporter feature and says so as a plan rather than as a locked door: on Free the row reads "not syncing", the screen explains that your servers and keys are saved on this device and work exactly as they do now, and the button on it opens plans instead of doing nothing. A vault that outlives the plan that made it stays readable and says out loud that it has stopped receiving changes. Deleting it on one device removes it from every other one, rather than leaving a second device offering to change the password of a vault that is gone.
- Trusted servers are listed with their fingerprints and any of them can be forgotten, so a key that changed can be confirmed again rather than quietly accepted. A key shows its own fingerprint, and its public half can be copied in one press for pasting into a server's authorized_keys. On iPhone and iPad a long press on a key or a snippet offers edit, copy, run on connect and delete.
- SSH typing appears as it is typed rather than a round trip later. A character is drawn locally and replaced by the server's own echo when it arrives, which makes a shell on the other side of the world feel like one in the next room. Nothing is drawn until the line has proved that it echoes, so a password prompt never shows a character of a password.
- Share this Mac's screen with another Apple device on the account. Switch displays, send the system audio, copy both ways, and send a file without leaving the session. macOS is asked for Screen Recording and Accessibility at the moment you turn view or control on, with the prompt that names Tokenstat, and the card says which permissions are granted and that the app has to be open for its screen to be shared.
- Control that screen from an iPhone or iPad. One finger moves the pointer, tap clicks, two fingers tap for a right click and drag to scroll, long press then drag holds the button down, and pinch zooms in. A row of keys over the keyboard sends escape, tab, the arrows and sticky ctrl, opt, cmd and shift, and a pull on the bottom edge brings that row back over a full-screen picture. Driving a desktop is at sixty pictures a second and every pointer move is delivered as it happens, on the same bandwidth a session watched from an armchair costs.
- Notes get an inspector on the Mac, so a note written on a phone can be read and edited on the computer instead of only on the device it was typed on. Deleting one asks first, and clearing the title keeps the edits made in the same visit rather than refusing the whole save.
- Opening a computer, from its device page or from Workspaces, shows what it is doing: power, CPU and memory read over the tunnel and not uploaded with usage, with open work and view screen beside them. On the Mac, a workspace that lives on another machine offers that machine's screen without a trip to Devices.
- A preview Windows desktop app. Its development build installs for the current user, adds a Start Menu shortcut, and exercises the update path while the platform matures outside stable GitHub Releases.
- A preview Android client. Pair it to an account the way the iPhone does, then use this Mac from the phone: terminals, folders, and the rest of the remote surface. Android SSH gains search, folders on saved servers, port and starting directory on the add form, and a snippet editor with room for a real command.
- Install the host as a service on a machine that has no desktop session, so it answers after a reboot the same way Always-on host does on a Mac mini.
- Every control is the app's purple. Switches, pickers, focus rings, selection and prominent buttons were system blue everywhere except eight hand-picked places.
- The app is set in its own typefaces, the same two the website uses. Manrope for everything you read as language, and JetBrains Mono for terminals, code, commands and model identifiers, where a lowercase l and a digit 1 have to be different pictures. Both are bundled, so a Mac and an iPhone showing the same screen now show the same screen. Sizes are unchanged and all of it still scales with your text size setting.
Fixed
- A long session no longer fails with "Too many open files". The app asked the system for a fraction of the descriptors it is allowed, and the first thing to lose the race reported it as a problem with a file. Connections to another machine are also closed once they have been idle for a minute, rather than being held for as long as the app is open.
- The app no longer reports "unknown method" when this machine's background helper is older than the app. It checks the helper on launch, replaces it, and says something a person can act on if it cannot.
- Opening the Mac app on a recent macOS beta no longer aborts while the window is first laid out. The splash used to animate the split view in, and AppKit refused the extra constraint pass.
v0.6.81 new · 8 fixed
New
- An agent that stops to ask you something can say so. Turn notifications on in Account and a question waiting in a terminal reaches you the way a finished run does, and it takes itself back when you open that terminal.
Fixed
- A live session's tokens and cost are counted once per request. A harness that rewrites a request as it streams was being added up chunk by chunk, so a session read about twice what the tool itself reports.
- The context bar stays empty for a tool that only records a session running total, rather than filling to hundreds of percent. Tokens and cost for those sessions are unaffected.
- A terminal no longer repaints and loses its scroll position when a notice appears. The live notices float over the bottom of the terminal instead of taking height from it, each one fades on its own rather than waiting to be clicked away, and the paused notice waits until output has genuinely stalled.
- "Needs attention" goes away when the question does. It used to sit there until the agent printed enough to push the prompt out of view, and opening the session now clears it as well.
- The plans screen no longer shows an error about a purchase nobody made, left behind by a transaction the App Store re-sent while the phone was offline or signed out.
- One Mac going to sleep no longer freezes another. Calls to a machine that has stopped answering used to take every connection the app had, so terminals stopped drawing and screens stopped filling until they gave up. They now have a share of their own and a time limit, and an unreachable machine is reported as unreachable instead of as silence.
- The tasks list arrives when the count does. The board no longer waits behind a report, a sync, or another machine asking this one for a report.
- A workflow no longer announces every step it takes on the way. It tells you how it went when it is done, once, on this Mac and on your phone.
v0.6.72 new · 5 fixed
New
- Four more tools are read straight off disk: Pi, Hermes Agent, Kilo Code and the DeepSeek Harness. Each one is counted as its own tool, so a machine running Kilo Code and OpenCode side by side sees two rows rather than one.
- Tell me when a run finishes. The Mac watches its own automations and workflows and says so when one ends, fails, or stops to ask a question. It is off until you turn it on, in Account, and nothing about the run leaves the machine. iPhone and iPad carry the same switch, which starts arriving once notifications are switched on for your account.
Fixed
- Usage from a tool that keeps a SQLite database is picked up on the next scan instead of waiting for that database to be tidied up, which could be hours. This was quietly losing recent work for OpenCode, Cline, Copilot CLI and Zed.
- A machine is only called unreachable when it was answering and stopped, and the card names which one. A phone or tablet paired to the account no longer reports a computer as unreachable, and a machine that is simply off is left to the Machines screen to say so.
- Stop and close takes the session off screen at once rather than waiting on the computer to answer.
- A full-screen agent no longer swallows the window's own clicks, so a confirmation dialog flashes and the window keeps answering.
- The phone's terminal keys no longer cover the last lines of output, and notes are not pressed against the field above them.
v0.6.63 new · 3 fixed
New
- A left sidebar on iPad when a keyboard is attached, drawing the same folder tree the Mac does, with keyboard shortcuts and pointer-density spacing.
- Notes get their own screen on the client, per folder, and a folder's note count now shows in its summary.
- One model for what the app believes about the network. Connection trouble is reported once, in one place, instead of once per subsystem, and a call fails fast when the device is known to be offline.
Fixed
- The network verdict clears itself when the network comes back.
- Every device row can be renamed, including the one you are sitting at.
- No on-screen keyboard key on a terminal that already has a hardware keyboard.
v0.6.52 new · 3 fixed
New
- Close a session straight from the sidebar.
- Harness settings sheets corrected, with compaction on a slider rather than a number field.
Fixed
- OpenCode: read the version 2 schema, and count a migrated message once rather than twice.
- iPad: the native intro, and no split view nested inside a split view.
- The global tasks screen is gone from iOS, where it duplicated the per-folder boards.
v0.6.43 new · 2 fixed
New
- Name any device on the account, from any surface.
- Every workspace gets its own Notes section.
- iOS: a colour-highlighted file editor, and drawn empty states instead of a sentence explaining the emptiness.
Fixed
- The kitty keyboard announcement no longer leaks into the terminal emulator.
- The Sessions wireframe ends when the answer lands, rather than pulsing on.
v0.6.33 new · 3 fixed
New
- Hermes Agent and Kilo Code in the launcher, with their official marks. Hermes installs without its interactive setup wizard.
- Notes get their own screen, kept per folder or unfiled.
- Harness settings open from the launch tile badge, as a form rather than a popover.
Fixed
- Terminal clicks are sent as SGR mouse events, so mouse-aware programs see them.
- Recovered Claude Code rows fold into Claude Code instead of appearing as a separate tool.
- A session meter with nothing in it reads
0% ctx · $0.00 · 0krather than a blank.
v0.6.23 new · 2 changed · 3 fixed
New
- Add, archive, and capture tasks from the phone.
- Session metering for Codex, OpenCode, and Antigravity.
- iPad gets the phone's tab bar, and the terminal keyboard gains shift and back-tab.
Changed
- A session row leads with context used, not with money.
- A note stays on the board it was written on.
Fixed
- The host stopped rescanning every log on every poll, and the catalog's context windows are indexed at load. Both were paid on every single reading.
- The sidebar's board counts are cheap and quiet.
- A context reading survives the catalog not knowing the model.
v0.6.12 new · 1 fixed
New
- Run workflows and automations from the phone.
- The iPad gets a workspace of its own for those jobs.
Fixed
- iOS listens for
PurchaseIntent, so Streamlined Purchasing can be turned off.
v0.6.04 new · 3 fixed
New
- Workspace navigation, rebuilt. A workspace opens to its own sections in the sidebar, the every-folder screens fold under one Global group, and a scoped board says which folder it is showing.
- Open tabs are kept across launches.
- The global task board gets a workspace selector.
- iOS opens a folder to the same seven sections the Mac lists, and can read a change on the phone.
Fixed
- A session is metered from when it started, not from the folder's whole history.
- A new session fills the empty half of a split rather than replacing the other.
- iOS reads a folder's git state instead of the snapshot it was tapped with.
v0.5.04 new · 1 fixed
New
- Workflows: graphs that compose agents, automations, shell commands, and a person gate. A library that draws them as graphs, a rebuilt builder, condition and bounded loop nodes, a workspace picker at run time, and live output you can follow.
- Designing a workflow from a prompt defaults to a cheap fast model, and produces a draft rather than a run.
- Automations get a rhythm and a history.
- The Devices screen is drawn as a network.
Fixed
- The workflow editor is usable at any window size, and the canvas stays off iOS, where it had nothing to draw on.
v0.4.43 new
New
- Reorder workspaces by dragging, and close tabs from the menu.
- Launcher tiles you hid stay hidden, stored on the host, so a second machine agrees.
- iOS gets the desktop's harness marks.
v0.4.31 new · 1 fixed
New
- Hide agents you do not use, archive finished cards, and reuse the dock tile.
Fixed
- Dock relaunch after an update is hardened, and the updater waits for the OpenCode TUI rather than racing it.
v0.4.21 new · 2 fixed
New
- Run tasks in front, pin models, and fit a tiled window.
Fixed
- Run buttons show on completed tasks, and the move labels say what they do.
- Prompt flags reach interactive Antigravity and OpenCode sessions.
v0.4.12 new · 3 fixed
New
- Automations can queue jobs, cards reorder, and transcripts are parsed into tool rows.
- Panel marks unified across the app, with save confirmation on cards.
Fixed
- A queued job cannot race another, and it inherits the scheduler's budget.
- Runs persist before draining, and the budget is honoured rather than reported.
- Headless runs skip permission prompts instead of hanging on them.
v0.4.05 new · 2 fixed
New
- Automations: recurring agent jobs owned by the daemon, with live model lists, streamed output, and a budget each one stops at.
- Plan limits get their own share card.
- Pin today, pin a launch tab, and keep the inspector open across destinations.
- Selected local models are passed into the launchers that support them.
- Uninstalled launcher tiles hide behind a plus.
Fixed
- Home pins and task drafts survive switching screens.
- Streamed automation text stays joined, and list timeouts are reaped.
v0.3.131 fixed
Fixed
- An install that fails now says so, and the installer's working tree is cleaned up rather than left behind.
v0.3.122 new · 1 fixed
New
- Always-on host is a switch on the Devices screen, and iOS plans load fast.
- Account pages open inside the app, and deleting an account signs you out with a confirmation.
Fixed
- The scheduler respects the always-on host's power policy.
v0.3.111 changed · 1 fixed
Changed
- The host daemon stops with the app unless you asked for always-on, so a closed laptop cannot start remote shells.
Fixed
- The always-on toggle fails loudly if launchd does not follow it.
v0.3.101 new · 1 fixed
New
- Smoother plan switching, session handling, and tunnel recovery.
Fixed
- Live sockets stay live, closing is honest, and a live plan is reported as one.
Full history and source on GitHub.