Subtank Download
Changelog

What changed

Every release, newest first. Beta builds reach only copies set to Beta in Settings → General → Channel; stable builds reach everyone. Follow it as a feed.

  1. 0.0.10

    Stable
    • Claude Ultra. On 30 October Anthropic renamed its plans: Max 20× is now Ultra and Max 5× is Max, at the same prices. Subtank uses the new names, and accounts saved under the old ones move over and keep their price. Once Anthropic has verified an Ultra account it has no 5-hour limit, so its row shows only its week and any model’s own limit, its name’s tooltip says why, and the Limit style names the week (or a model’s limit such as FABLE) instead of 5H. Claude Code’s status line no longer brings back an old 5-hour number for such an account, and one close to its weekly limit is read as often as one close to its 5-hour limit.
    • Cursor works again. Since 23 October Cursor keeps its sign-in encrypted, and Subtank went on sending it as it was, so the Cursor row said “Signed out” while you were signed in. Now the row says Needs access: click Allow access, and macOS asks once whether Subtank may use Cursor’s key from your Keychain. Subtank opens only Cursor’s access token with it, and keeps the key in memory, never saved and never sent. Choose Always Allow and later launches read without asking; with Allow, the row waits for your click again after Subtank restarts. Refresh never asks. The privacy page says exactly what is read, and Help says how to take the access back. A Cursor row is named after its plan, such as Cursor Pro, from the start.
    • OpenCode Go, Poe, Novita AI and SiliconFlow. Add OpenCode Go with an API key to see its 5-hour, weekly and monthly limits, and pick which Go plan it is so its price shows. Its numbers come from an address OpenCode’s own app uses but hasn’t documented, so the row is marked experimental; if that address goes away, the row still confirms your key works. Poe shows the points you have left, and Novita AI and SiliconFlow show your balance in dollars. A plain sk-… key that could belong to several services is sent nowhere until you pick which one it is.
    • When every account is full. When no account has room, the top of the popover says when room comes back and on which account (“Room again in 2h 5m”), and the menu bar’s tooltip and VoiceOver say the same, instead of “No numbers yet”. The menu-bar tank then shows Subtank’s own mark rather than an empty tank. When the account to use next is the one Claude Code is already on, the popover says “Keep using”.
    • Telling accounts apart. Two accounts that would show the same name are told apart by their organization, the email’s domain, or which one came first; accounts whose names don’t collide look as before. Name any account from its menu with Name this account…, and adding a second account of a service offers a name for it at the end.
    • Clearer rows. A single click on a row opens its menu, as Return and a right-click do; ⌘-drag still moves it. A month’s spend reads “$0 spent · Oct”, so it can’t be mistaken for $0 left. The used percentages beside the bars are drawn quieter than what is left, and a saved limit reset has its own mark instead of the refresh arrow. A Claude row at its limit names /limit-reset. The slashed sparkle shows only where turning Suggest this account back on would change the pick, and the first time you turn it off, the bottom of the popover says what the mark means. A row whose limit has reset no longer says it is at its limit while it waits for a new read. Pointing at a monthly bar shows a daily target: what is left, divided by the days left.
    • The menu bar. In the Limit style, a word too wide for the menu bar, such as CURSOR, gives way to MONTH or WEEK, so the item keeps its width, and a plan whose only limit is a week says WEEK. VoiceOver now reads the number in every style.
    • Alerts. “Tell me a day before a mostly unused week resets” (Settings → Alerts, off by default) now comes a day before a weekly reset when more than half the week is left, says when it resets, and never speaks before 09:00. “Tell me when it has room again” waits until the account really has room, and works for Ultra accounts. Alerts for limits with no reset time, such as Ollama’s session and Claude’s usage credits, speak again in every new cycle. “Quiet until it refills” also holds back renewal and saved Codex reset reminders. A “hit its limit” that arrived while Subtank was closed is shown at launch, and an account read every 30 to 60 minutes no longer says it twice. Buttons on notifications left in Notification Center for more than an hour keep working.
    • Claude, read more carefully. A Claude sign-in that Claude Code can’t use now asks you to sign in again, instead of saying the account has no subscription. When Claude gives no numbers and none are saved, Subtank waits and asks again, instead of saying it doesn’t understand the answer. A single read Anthropic turns away no longer keeps a busy account off the 2-minute pace for an hour. Numbers from the status line that arrive while a read fails are no longer lost.
    • Shared setup. Sharing no longer fails as busy when an MCP server you share is already the same in that account. It holds Claude Code’s lock only while it writes that file, for a fraction of a second where it used to take several, and never removes a lock Claude Code has taken over. Turning off one plugin keeps its marketplace while another shared plugin still uses it, very large skills copy, and old backups are pruned. Removing an account waits for a read in progress before deleting its folder.
    • Other services. Synthetic’s Go, Standard and Big plans show their weekly limit. An OpenRouter key under a budget shows that budget and when it resets, and a workspace management key no longer blames your network. ChatGPT’s Academic Researchers plans are named, a workspace’s name is kept, and Codex’s sign-in date follows your time zone. A Copilot subscription that ended says so, with a link to GitHub’s plans, and a GitHub CLI hiccup no longer reads as signed out. MiniMax’s key is called the M Plan API key, as MiniMax now calls it, and an unlimited plan says so. Anthropic and OpenAI rows show “—”, not $0, for a report Subtank can’t read, and an admin key that loses access isn’t called revoked. Ollama shows credits you bought after a plan ends.
    • Subtank, with a capital S. The app’s name reads that way in its menus, About, notifications and every window, and in the subtank command’s help. Your accounts, keys and settings stay where they were, and the subtank command, subtank:// links and Claude Code’s status line work as before. A copy that updates itself keeps its file name in Applications (subtank.app), and a new download is Subtank.app; they are the same app.
    • Fixes. An API key is never sent on to another address when a server redirects. Opening the Add window again during a sign-in asks before stopping it. Quitting while an update waits to restart no longer reopens Subtank. Turning off “Start on the account with the most room” removes its line even after you change shells. Subtank now runs on Electron 44.10.0, which includes a high-severity security fix.

    Download: Apple silicon · Intel

  2. 0.0.9

    Stable
    • Which limit. A new menu-bar style, Limit, shows the name of the limit the number comes from: 5H, WEEK, or a model’s own limit such as FABLE. Choose it in Settings → Appearance → Menu bar item; a plan with a single limit shows the service’s name, and nobody’s menu bar changes until they pick it. In every style, pointing at the menu bar names the limit and lists every limit as what is left, and VoiceOver says it too.
    • Your Claude Code setup, account by account. Settings → Advanced → Claude Code setup across accounts → Manage… lists your MCP servers, CLAUDE.md, skills, agents, commands, plugins and settings one by one, and each Claude account you added can take each of them linked (it follows your main setup), copied (its own copy) or not at all, by ticking or by dragging. Before anything is written you see exactly what will change, and Restore puts an account back exactly as it was. MCP servers can be shared now. Sign-ins, history and settings that change who pays are never shared, and nothing in ~/.claude is written, not even by Claude Code through something subtank set up. When + adds a Claude account, subtank asks whether to bring your setup along. If you turned sharing on in an earlier version, the card offers a plan that moves your accounts to the new way, and nothing changes until you apply it.
    • Claude, sooner. With “Refresh every” under 5 minutes, or Automatic, a Claude account whose numbers are moving is read every 2 minutes; one that sits still stays at 5. When Anthropic turns a read away, subtank waits longer before asking again, as Claude Code itself does.
    • The status line in one step. Settings → Advanced → Add to Claude Code… adds subtank’s status line and its limit hook to Claude Code’s settings, after showing you the file and the exact lines, and keeps a copy of the file first. If you already have a status line, it stays as it is and subtank reads along with it. Remove from Claude Code, or Reset, takes them out again. With it, Claude’s numbers stay current while you work, and the “hit its limit” notification can offer the next account. The status line now also works when your everyday Claude account is one subtank reads through its own profile.
    • A new icon. The battery, in glass: subtank’s menu-bar tank as a glass cell with a mint level, on porcelain in Light and graphite in Dark. It follows macOS’s Dark, Clear and Tinted icon styles, and About, setup, the disk image and the website use it too. The menu-bar item is unchanged.
    • Notifications that don’t pile up. Notifications about one limit replace each other, so Notification Center keeps one per limit. An account that needs you to sign in again, needs access again, or whose key stopped working says so once, with the button that fixes it (Settings → Alerts can turn this off). An OpenRouter key is reminded seven days before it expires. “Hit its limit” says which limit it was: usage credits, extra usage, your organization’s, or a seat that doesn’t include it.
    • Clearer rows. The slashed sparkle after a name (“Suggest this account” is off) shows only where it matters: on an account that would otherwise be the one to use next. Right-click a row to see what its marks mean; Help explains them too. A monthly spend says “this month”. A key that expires soon says when, and once it has, the row offers Replace key. A Claude account at its limit points to claude.ai, where you can use a saved limit reset if you have one. A saved Codex reset that expires today says so. The footer says “Refreshed just now” instead of “0s ago”. The Use next menu also lists the pick for each of your other services.
    • Even pace. The Console’s Usage charts show a dashed “Even pace” line for 5-hour, weekly and per-model limits, from the start of each cycle to its reset. Below it, you have room to spare; above it, you’ll run out early.
    • Ollama works again, now with reset times. On 7 October Ollama moved its limits to a new API that it documents, and subtank reads that now. Your session and weekly limits show when they reset, a newer plan shows its monthly credits, and credits you bought show as a balance. Ollama is no longer marked experimental.
    • MiniMax, NanoGPT and Ollama. When the service shows no limits for an account, the row says so in one short line with a link to the service’s usage page, instead of blaming your account.
    • Fixes. Code in Settings no longer breaks a word in half. Two hints that still pointed at the ⋯ button now say right-click. A Claude Code that crashes as it starts is read again a moment later instead of showing an error. Behind a Claude apps gateway, the gateway’s spend limit shows on the row. subtank’s history database can be read only by you. A rare quit that never finished now ends. subtank now runs on Electron 44.6.0, which fixes a rare crash at launch on macOS 27.

    Download: Apple silicon · Intel

  3. 0.0.8

    Stable
    • Jev. Add a TypeSafe key and subtank checks that it works, keeps it in your Keychain and gives it a row. TypeSafe’s API has no balance or usage to read with a key yet, so the row says so and “Open console” takes you to the numbers. If you use Jev through OpenRouter, see “By model” below.
    • Four more services. Synthetic, MiniMax’s coding plan, NanoGPT and Vercel AI Gateway can be added with a key. The first three show their limits like any plan; Vercel shows its balance. NanoGPT needs a “Usage only” management token, which can’t run models or spend.
    • ChatGPT after DevDay. The Pro plans are named as OpenAI names them now: Pro 100, Pro 200 and Pro 500. The row shows credits you bought, and when the limit is reached says whether it is running on those credits and why it stopped, with a link to ChatGPT’s usage settings. Point at the row’s name to see what its limit covers (Codex, Work and, on plans with a dot, the tasks your dot starts). A model with its own allowance gets its own line. The renewal date is right in every time zone.
    • Numbers you can trust. When a read of Claude failed, subtank could show figures from Claude Code’s own cache that were days older than the ones it had just read; it now keeps the newer ones and shows their age. With “Refresh every” at 30 or 60 minutes, rows no longer turn stale between reads, so “Use next” keeps working. A status-line reading can no longer land on the wrong account after you sign in to another one.
    • A calmer list. The ⋯ button is gone from every row: right-click a row for its menu, or move to it with the keyboard and press Return. A plan’s name is no longer cut short while the word beside it can give way, and in Tank farm and Gauges a long name takes two lines. When subtank starts, each account keeps its last number, pulsing, until the new one arrives; a spinner used to hide it.
    • Fold idle accounts. A new switch in Settings → Appearance makes an account with nothing used, a prepaid balance or a month’s spend take one line, so ten accounts fit a laptop screen. It is off until you turn it on. An account in trouble never folds, and when the list is taller than the screen the footer counts the ones that need attention and takes you to them.
    • Add account is a list. Each service appears once, with what is already on this Mac at the top, and “Paste a key” has its own button: subtank names the service before anything is sent, and says so when it is a key it can’t read. Search understands Korean names and no longer takes an email or a link for a key.
    • Next refills. The Console’s Usage tab opens with every limit’s reset and every saved reset’s expiry on one seven-day line. Each account’s first chart is the limit that decides its figure.
    • By model. For an OpenRouter management key, the Console shows where the credit went, model by model, over 7 or 30 days. It covers whole days, so today appears tomorrow.
    • Start on the account with room. Settings → Advanced → When you start Claude Code can make a plain claude in a new terminal start on the account with the most room. It adds one line to your shell profile after you confirm, and removes it when you switch it off. Only new sessions follow it: a running conversation is never moved, and no sign-in is copied. The “hit its limit” notification has Start there, which opens Terminal on the next account.
    • Automatic refresh. “Refresh every” has a new choice that reads each account at its own pace and less often while nothing changes.
    • Quieter and better timed. “Quiet until it refills” now also silences the “hit its limit” notification, and one limit is announced once. Renewal and saved-reset reminders arrive at 09:00 instead of midnight. A limit with no reset time alerts once each cycle.
    • Korean, in one voice. The whole Korean interface was rewritten in one register, without “을(를)”, and with Korean units inside sentences.
    • Settings. An account in trouble offers the same fix in Settings as in the menu-bar list, account tiles are shorter, the Alerts tab says why its switches wait, the calendar works from the keyboard, and small controls are easier to hit. Removing an account that Cursor’s Claude panel follows points the panel back at your default account.
    • Lighter. subtank no longer keeps part of an old ChatGPT app open after ChatGPT updates itself (it held about 480 MB of disk until subtank restarted), no longer rescans every time Claude Code touches its own settings, and stores far fewer repeated history samples.
    • Fixes. A signed-out Copilot says where to sign in instead of leading to the bill form; a clicked Restart survives a failed background check; a plan change updates its list price; Codex or Cursor switched to another account is offered as a new one; subtank claude --as matches names with accented capitals; Claude Code’s status line shows the pace warning; a damaged settings or accounts file is set aside instead of silently replaced; a copy installed in Applications ignores development switches.

    Download: Apple silicon · Intel

  4. 0.0.7

    Stable
    • A brighter menu bar. With more than one display, macOS dims the menu bar on the displays you aren’t using, and it dimmed subtank’s item to about a third of its brightness, as it does any one-colour icon. subtank now draws the item itself, so it keeps nearly all of its brightness there, more than most items beside it. “Stay bright on every display” in Settings → Appearance turns it off.
    • The number in colour. The menu-bar number and its gauge go from green when the tank is full to amber at 40% left and red at 10%, blending smoothly in between, so half a tank still reads as fine. New installs start with it on; if you are updating, switch on “Color the number by what’s left” in Settings → Appearance.
    • The pace warning, an hour ahead. It now shows only when a limit is about an hour from running out at the pace of the last hour, and says so plainly: “5h limit runs out in about 40 min at this pace”. A busy morning no longer puts it up days ahead, and it goes away when you slow down; whether a whole week will last is in the Console. Its alert, on for new installs once alerts are on, comes once per limit per cycle and names the account to use next, with a Switch button.
    • Your own order. Drag the handle beside an account in Settings → Accounts, ⌘-drag a row in the menu-bar list, or use Move up and Move down in a row’s ⋯ menu (⌘↑ and ⌘↓ from the keyboard; ⌘Z undoes a move). Every window and the subtank command follow it, new accounts go at the end, and “Sort by service” puts the old order back. Where an account sits never changes which one subtank suggests. Every row now has a ⋯ button, and its menu opens under the button.
    • Two new layouts. Settings → Appearance → Layout adds Tank farm, a tank per account filled to what is left, and Gauges, a ring per account in a grid like Control Center. The list you know is “Ledger”, still the default. In every layout, an account in trouble shows its message and its way out without a click.
    • The caption where it belongs. “used · resets in” now sits over the first bars it explains, not over an account’s “left” figure. Bars still fill with what is used, as in Claude Code; an account’s figure and the menu-bar tank say what is left.
    • Alerts for one account. Turn them off in Settings → Accounts or with “Alerts for this account” in its ⋯ menu: the account is still read and shown, and sends no notifications. Handy for test keys and accounts you watch elsewhere.
    • Clearer numbers. A 5-hour window you haven’t started says so when you point at it (“not started · starts with your next message”) instead of saying the service sends no reset time. An API account that reports only this month’s spend shows it, “$0 spent”, instead of “—”, on a line labelled “Month”.
    • subtank json version 2, for your own scripts: the account to use next, balances, spend, windows that haven’t started and when each number was read. Help has short recipes for SketchyBar, Raycast and Übersicht.
    • Korean no longer breaks words in the middle, and says “지금” instead of “now”.
    • Smaller fixes: a key’s hint is no longer repeated on its Settings card, and your choices for an account get a line of their own instead of being cut off; Copilot’s bars are named in Korean; a prepaid balance says “$880 bought in all”; amber and red are easier to tell apart in the light themes; an unknown percentage no longer draws an empty bar; “No accounts yet” no longer flashes while subtank starts; and the footer’s words start with a capital.

    An older version, whose disk images may no longer be on the server. Download the current one.

  5. 0.0.6

    Stable
    • Saved Codex resets. Codex now gives out resets you can keep and spend later, and a Codex account shows them in one quiet line: “2 resets saved · first expires Mon 5 Oct”. When the account hits its limit, a saved reset is its way out, with Open Codex to redeem it there; subtank only reads them and never spends one. The day before one expires, subtank tells you (Settings → Alerts can turn that off).
    • Reset times as clock times. Click “resets in” over the bars to switch every account between countdowns and clock times (“12:40”, “Mon 19:00”, “18 Oct”); subtank remembers your choice, and pointing at a bar shows both, with what kind of window it is. Once a window has reset, it says “refilling…” until the next read instead of “now” beside the old number.
    • “Tell me when it has room again”, in an account’s ⋯ menu and on the “hit its limit” notification, tells you once that account’s tightest window has refilled, with what is left and a button to start Claude Code or Codex on it. subtank now reads an account right after a busy window resets, so the news comes within a minute. “Quiet until it refills” now ends when the tightest window refills, says when that is, and a quiet account has a small mark.
    • Old numbers keep their figure. One failed read no longer replaces an account’s figure with its age: the numbers stay while subtank tries again, and once they are 15 minutes old the account shows both, “66% left · 42m ago”. The footer says “1 account not answering” when one has fallen behind (point at it to see which, and since when), “Use next” says “No fresh numbers” when every number is old, and the Console shows the age of the numbers themselves.
    • The pace warning fits on one line: “7d runs out in ~1d 4h · empty for 4h 51m”. Point at it for the full sentence with clock times.
    • Themes. Settings has a new Appearance tab with four themes: Lamp, as before; Frosted, which lets what is behind the menu-bar window show through (and stays solid when Reduce transparency is on); Ink, true black and white for OLED screens; and Dusk, a cool slate-indigo. Auto, Light and Dark and the menu-bar item moved there too.
    • Know which account you are on. Starting Claude Code or Codex from subtank first prints the account, the folder the tool uses and what is left. If ~/.claude is signed in to a different account than the one you chose, it says so and waits for Return before starting. Claude Code’s status line now names the account its own session runs on, and the account to use next only when that is a different one. The subtank command and the status line speak Korean when subtank does.
    • “Use next” says why when an account with more room is left out: “Max 20× · personal has more left, but you turned off suggesting it”, or that its numbers are too old. An account you have turned “Suggest this account” off for has a small mark, its ⋯ menu can turn it back on, and Settings → Accounts says “not suggested” on its card.
    • “Read in the background”, for each account in Settings → Accounts and its ⋯ menu. Turn it off for an account you rarely use and subtank reads it only when you open the menu-bar window or press refresh (and, for Claude, from Claude Code’s status line). Each account says how often it is read, and a new “Refresh every” applies at once instead of after the next read.
    • OpenRouter shows your balance. Connect is gone: each Connect made a new key that nothing ever spent through, so its account could only show “—”, and no app can delete those keys. Paste a key instead. A management key shows your account’s balance, says when the credits run out (with Add credits) and warns two weeks before the key expires; a regular key shows only its own spending and limit. subtank only reads with either. If you used Connect before, remove those accounts and delete the leftover “subtank” keys at openrouter.ai/settings/keys; subtank can’t.
    • Anthropic API: usage and cost need an organization key, made in the Claude Console under Settings → API keys, linked to an admin, with Scope “Organization”, or an Admin key. Individual Console accounts can’t read usage with any key: that is Anthropic’s rule, and the Add window now says so before you paste anything. A refused key now says whether it lacks that permission or was rejected (mistyped, disabled or expired), and the link opens the page where the key is made. The message no longer shows “[redacted]” in the middle of subtank’s own advice.
    • Smaller fixes: alerts that could repeat on every Claude read while a window stayed high; a Codex 5-hour window you haven’t started shows “—” instead of counting down from 4h 59m; the pace warning no longer ends in “— before it refills” when a service sends no reset time; Cursor and Kilo renewal dates no longer land a day off in some time zones; and subtank keeps reading Claude if Claude Code rearranges its usage answer.

    An older version, whose disk images may no longer be on the server. Download the current one.

  6. 0.0.5

    Stable
    • Codex reads again. ChatGPT for Mac’s 26 September update moved the Codex inside it; subtank now finds it where the app itself says it is, so the next move is found too, and reads Codex again as soon as ChatGPT for Mac updates.
    • A smaller, lighter app. The download is about a third smaller (89 MB for Apple silicon and 101 MB for Intel, down from 136 and 143 MB), subtank takes 266 MB on disk instead of 329 MB, and its graphics helper now stays around 15 MB instead of climbing past 400 MB whenever your numbers refresh.
    • The menu-bar window grows to fit your accounts, down to the bottom of the screen, and scrolls only when even that isn’t enough. It no longer covers the Dock or runs off a small screen.
    • A quiet caption over the bars says their figures are what is used, and when each resets; an account’s own figure is what is left. Point at a bar to see what it is, how old the number is and where it came from, and at “Use next” to see why that account was picked.
    • Every account in trouble shows its way out next to the message: Try again, Allow access, Sign in, or Check for updates. Settings → Accounts offers the same. When a tool goes missing, the account keeps its last numbers, dimmed with their age, instead of losing them.
    • subtank finds Claude Code when it’s installed only inside Cursor, VS Code or Windsurf; Claude Code folders you set up yourself, such as ~/.claude-work (removing that account never deletes the folder); the GitHub CLI from MacPorts; and tools installed with nvm, mise or asdf, even when your shell starts slowly.
    • Each Claude and Codex account has a ⋯ button that opens its switch menu, so you can switch from the keyboard or with VoiceOver. After a switch, the menu-bar window says what happened, and a switch that fails says so.
    • “Start … on it” and the copied command run the Claude Code or Codex that subtank found, including the Codex inside ChatGPT for Mac. A Claude account that Claude Code isn’t signed in to is greyed out in the switch menu, with how to add it, instead of opening the other account.
    • After a limit is hit, subtank suggests the next account by its usual rules: never the one that just ran out, and never one it can’t switch to while another has room.
    • Switching Cursor’s Claude panel checks that the Claude Code extension is new enough, handles more kinds of settings file safely, and keeps your original settings as well as the latest backup.
    • Adding an account no longer sits on “Starting…” when the sign-in fails at once: the Add window says why, and Cancel stops a sign-in that is still starting. Before you add anything, setup says which programs subtank will run and how often.
    • A read that hangs no longer holds up the other accounts or an update. Claude Code saving its settings, or a busy Cursor database, no longer reads as signed out for half an hour, and Cursor rows pick up a sign-in Cursor has just renewed.
    • When a service changes its answer in a way subtank can’t read, the row says so and suggests checking for an update, instead of showing dashes. Row messages are plain sentences in your language; the technical details are in Console → Diagnostics.
    • The status line and the subtank command no longer say “not updated for 20+ min” while subtank is running, and the numbers Claude Code’s status line brings in keep their own age.
    • New subtank --version, and subtank feed for when you already use another status line (subtank feed | your-status-line). Settings → Advanced can put subtank on your PATH, and asks you to move subtank to Applications before you copy the status line.
    • Console → Diagnostics shows where subtank found claude, codex and gh. Copy report works for everyone again, even while an account waits for Keychain access; it names your macOS and tool versions and never includes an email address. “Show in Console” opens the Console on that account.
    • If subtank’s reader keeps crashing, it stops and offers Restart and Copy report instead of reconnecting forever. Quitting waits a few seconds for a running Claude read, so a sign-in being renewed isn’t cut off.
    • If ollama.com refuses your key, subtank asks you to check the key rather than delete the account. Kilo Pass usage that Kilo doesn’t report is no longer shown as $0, and a canceled or paused Pass is described in your language.
    • Price fields accept a decimal comma (“19,99” is 19.99) and refuse text that isn’t a price.
    • Smaller fixes: “1 sign-in” instead of “1 sign-ins”; the Console’s figures say “used”; Copilot’s “Premium” label fits; errors in Add and setup are in your language; focus stays put after you confirm or cancel; screen readers read every window in the app’s language; copy buttons copy reliably; closing a window right after opening it no longer leaves the Dock icon; update failures caused by folder permissions are named; renewal reminders don’t repeat after every launch; and turning off Open at login in System Settings sticks.

    An older version, whose disk images may no longer be on the server. Download the current one.

  7. 0.0.4

    Stable
    • A new look. Every window is one solid tone in dark and in light, with no coloured glow behind it and nothing on glass. Labels that used to be little capsules are gone: each account’s row now says what is left, “66% left”, in amber when it is getting close and red when it is nearly out, and a word appears only when something needs you: “Sign in”, “12m old”, “Couldn’t read”.
    • The top of the list says which account to use next in plain words. Bars are grey until a window passes 60 %, so amber and red always mean the same thing.
    • The Console’s tabs, charts and empty pages follow the new look, and a Console with no accounts, no prices or no reads yet says what to do next.
    • Settings opens larger, 640 × 720, so General fits without scrolling, and Settings and the Console remember the size you give them.
    • Switch accounts from the list. Click “Use next”, or right-click any Claude or Codex account, and pick Start Claude Code (or Codex) on it, which opens Terminal on that account; Copy the terminal command; or Switch Cursor’s Claude panel to it. Nothing reads or copies a sign-in: subtank points the tool at the account’s own folder. ⌘⏎ starts Claude Code on the account to use next.
    • Switching Cursor’s Claude panel sets one entry in Cursor’s settings, after you allow it once. Your other settings and comments stay as they are, and a copy of the file is kept in subtank’s folder first. New conversations in the panel use the account; one already open keeps its own.
    • The subtank command can switch too: subtank claude starts Claude Code on the account to use next, subtank claude --as work on a named one, subtank codex does the same for Codex, subtank next says which account is next, and eval "$(subtank env claude)" sets up the current shell.
    • subtank:// links open, refresh or show subtank from other apps, such as Raycast or Shortcuts. A link can show an account’s switch menu but never switches by itself.
    • A row says when an account will run out before it refills at the pace you are using it, for example “At this pace the Fable weekly runs out in about 9h, 13h before it refills.” Between two close accounts, subtank now suggests the one that lasts.
    • New alerts, each off until you switch it on in Settings → Alerts: when an account will run out before it refills, and the evening before a mostly unused week refills. A third, on with alerts, says when included usage is spent and further use is billed (Cursor on-demand, Claude usage credits, Copilot AI Credits).
    • “Quiet until it refills”, in an account’s menu, stops that account’s alerts until its limits reset.
    • Claude Code can tell subtank the moment a session hits its limit. Settings → Advanced has the block to paste into Claude Code’s settings; subtank then says which other account has room, with a Switch button. When subtank is your Claude Code status line, it also takes the limits Claude Code reports, so Claude rows stay current between reads.
    • Settings → Advanced can share your Claude Code setup (settings, CLAUDE.md, agents, commands, skills and output styles) with the extra accounts subtank made, so a second account behaves like your first. It is off until you turn it on, and nothing in ~/.claude is changed.
    • Cursor rows show Cursor’s two monthly pools, Cursor models and Other models (the bars “Cursor” and “Other”), the meters Cursor itself shows. The single dollar figure they replace could read 55 % used when Cursor said 2 %.
    • Copilot rows follow the move to AI Credits: a paid plan shows its monthly allowance in dollars and any usage billed beyond it, and its session and weekly limits as “—”, because GitHub reports them only inside Copilot’s own chats.
    • Claude’s “extra usage” is now called “Usage credits”, as in Claude Code.
    • Codex rows say so when Codex has paused a plan’s included usage, show a Business workspace’s monthly credit limit, and refuse numbers Codex gives for a different account than the row’s.
    • Codex sign-ins kept in the Keychain in Codex’s “auto” mode are found too.
    • An update that didn’t install is no longer tried again every few minutes while your Mac is idle. About keeps saying it didn’t install until you press Try again, and after that it installs only when you restart or quit subtank. A newer version replaces it as usual.
    • Restart to update waits for a Claude read that is under way to finish (up to a minute), so a restart never cuts Claude Code’s sign-in short.
    • An account whose saved key or Kilo sign-in macOS won’t hand over is no longer read again every 30 minutes, so the Keychain prompt only comes back when you press refresh.
    • Rows read again as soon as your Mac is back online, not at the next scheduled read.
    • subtank keeps a log on your Mac in ~/Library/Logs/subtank, three files of about 1 MB at most, with anything shaped like a key or a token removed. It never leaves your Mac.
    • Settings → About lists the open-source software subtank is built on, with each license, under Third-party notices.

    An older version, whose disk images may no longer be on the server. Download the current one.

  8. 0.0.3

    Stable
    • The update check no longer sends a number unique to your copy of subtank. Its update library made one up for each copy and sent it with every check; every copy now sends the same all-zero value instead, so one Mac cannot be told apart from another. The privacy page says exactly what the check sends.
    • “Check for updates…” in subtank's menu and in the app menu opens Settings → About and checks at once. While an update downloads, the item says so, and once it is ready it reads “Restart to update to” the new version.
    • Settings → About shows what the updater is doing: checking, downloading (in megabytes), macOS checking the download, ready to install. When something fails it says what in plain words and offers the one button that helps: Try again, Move to Applications or Open download page. What's new shows the new version's notes before you restart.
    • Restart appears only after macOS has checked and accepted the downloaded update. It used to appear as soon as the download finished, and if macOS then refused the update, clicking it did nothing. If a restart comes back on the old version, About says so.
    • When an update is ready, the list says so once, with Later, What's new and Restart now, and the footer keeps a Restart button until you use it. While one downloads, the footer shows how far along it is.
    • A ready update installs by itself: subtank restarts into it when no subtank window is open, your Mac has been idle for 10 minutes and no account is being read or signed in. Settings → General → Updates → Install updates → When I quit waits until you quit instead.
    • Downloads say how big they are. From the second update after you install, subtank fetches only what changed since your version, and About says so, for example “3.3 MB, only what changed since 0.0.3”.
    • A copy running outside Applications, where macOS will not let it replace itself, now says so instead of downloading an update it cannot install, and Move to Applications moves it there and opens it again.
    • “Get beta updates” is now Settings → General → Updates → Channel, Stable or Beta. Switching checks right away.
    • subtank no longer uses CPU while its list is closed. With two or more accounts of one service, the glowing dot in the list's header kept animating in the hidden list, about a quarter to half of one core the whole time; now nothing moves while the list is closed, and the glow costs about a third of what it did while it is open.

    An older version, whose disk images may no longer be on the server. Download the current one.

  9. 0.0.2

    Stable
    • Claude's separate weekly limit for Fable has a bar of its own — in the list, in Settings and in the Console — where it was only a tick on the weekly bar. It also counts when subtank picks the account to use next, so an account with Fable nearly spent is not the one it suggests, and alerts warn when it runs high. Settings → General → Count model limits turns that off.
    • Every service shows its own logo instead of a letter, from its owner's files. xAI keeps its letter for now.
    • Quitting no longer shows a "Tray is destroyed" error.

    An older version, whose disk images may no longer be on the server. Download the current one.

  10. 0.0.1

    Stable
    • First release: a menu-bar meter for every AI plan you pay for — what is left on each account, and which one to use next.
    • Claude (through Claude Code), ChatGPT · Codex, Cursor, Kilo Code and GitHub Copilot, read from the sign-ins already on your Mac. OpenRouter (Connect or a key), DeepSeek, Moonshot · Kimi and the Anthropic and OpenAI APIs (admin keys) from a pasted key, and whether an xAI key works. Ollama Cloud from a key, as an experiment: its numbers come from the usage page ollama.com shows you, which Ollama has not documented yet. Any other subscription as a bill.
    • The menu bar says what its number means: a slim gauge with a tiny "LEFT" (or the service's name) over what is left on the account to use next. Settings → General → Menu bar item also offers the tank, with or without its number.
    • Setup looks for what is already signed in and adds nothing until you tick it; "Set up by hand" is a step of its own, with a way back.
    • The Console: usage history with the pace each limit is filling at, what your plans cost per currency with the next renewals, and diagnostics with a report you can copy into an issue.
    • Settings: one tile per account for its nickname, price, renewal date and whether it is suggested; Auto, Light or Dark; English or Korean.
    • Renewal reminders, limit alerts, Reset everything, a subtank command and a Claude Code status line.

    An older version, whose disk images may no longer be on the server. Download the current one.