Claude Doing?

What’s new

Each release, newest first. The app shows the same notes when it offers an update.

Version 0.2.30 — 2026-11-01

  • A new home on the web: Claude Doing?’s website is now claudedoing.fff.fish, and WhiteFish Creative’s is fff.fish. The links in Settings and in update notes go there. The old addresses still work and send you to the new ones.

Version 0.2.29 — 2026-10-27

  • Codex, as a beta: Claude Doing? can now show OpenAI’s Codex alongside Claude. Turn it on when the app asks after updating, or later in Settings › General › Beta features. It works however you use Codex on your Mac: the Codex app, the command line or VS Code.
  • Your Codex sessions: a Codex section in the sidebar lists your open and recent Codex sessions, with what each is doing, its tokens and anything it started. They also appear in Activity, marked Codex.
  • Your Codex plan: Codex › Usage shows your weekly limit, a daily budget and how much of the week went on other things, such as Codex cloud tasks and ChatGPT Work. It also shows tokens by hour, day, session and model. Days and weeks run from Codex’s own weekly reset.
  • The space Codex takes up: Storage now includes Codex, with a filter to show everything, just Claude’s or just Codex’s. Clean-up is as safe as Claude’s: Codex’s sign-in, settings, plugins, skills and memories are never touched, and sessions that are open stay put.
  • Claude and Codex side by side: with the beta on, Claude’s Sessions and Usage sit in a Claude group in the sidebar, matching Codex’s. Activity shows each one’s open sessions and what it owns, and VMs & containers can show just what Claude owns or just what Codex owns. The menu bar and the side panel show Codex’s sessions, its weekly limit and today’s budget beside Claude’s.
  • Nothing to install: everything comes from Codex’s own files on your Mac, and the app never keeps your prompts or Codex’s replies.
  • It’s a beta: if a Codex update changes those files, Settings › Monitoring says so, and those figures are left out until Claude Doing? catches up.
  • The Volumes tab opens much faster: working out which session made each volume took the best part of a minute when there were a lot of them. It now takes a second or two.
  • Fixed: the model-mix chart in Usage › Models labelled its scale up to 10000%. It now runs from 0 to 100%.

Version 0.2.28 — 2026-10-27

  • See and clear out container volumes: VMs & containers has a new Volumes tab. Volumes are the storage Docker keeps for containers, and they stay behind, still taking up disk space, after the containers that used them have gone. They pile up quietly: test runs and old projects can leave hundreds of gigabytes behind. The tab lists every volume with its size, when it was created, when it was last used, whether anything is using it now, and the Claude session that created it, where the app can tell.
  • Three kinds of volume: at the top you can see how much space is in use by running containers, how much is held only by containers that have stopped, and how much isn’t used by anything at all.
  • Delete what you don’t need: delete a volume on its own, or tick several (or use Select All Not in Use) and delete them together. You’re told how much space it frees and asked to confirm first, because a deleted volume’s data is gone for good. A volume held by a stopped container can be deleted too: the app removes that container first, and names it before you confirm. Volumes that a running container is using can’t be deleted.
  • When it was last used: Docker doesn’t keep track of this, so the app shows when a container using the volume last ran. From now on it also remembers when it last saw each volume in use, so the date stays known after the container is removed. For older volumes whose containers have all gone, it shows Unknown.
  • This works with Docker Desktop, OrbStack, Colima and Rancher Desktop. Podman’s volumes aren’t listed yet.

Version 0.2.27 — 2026-10-19

  • Budget used for each day: the daily budget table in Usage › Overview has a new Budget used column. It shows how much of its own budget each day used, so you can see at a glance which days went over. The This week so far row shows the week’s use against the allowance so far.
  • Output tokens counted in full: Claude writes a long reply to its history in several parts, and only the last part has the final count of tokens it wrote. Claude Doing? was counting the first part, so output tokens could show as little as half the real figure. Each reply now counts in full. After you update, the app reads your last two weeks of history again to correct the figures. It takes a minute or so, and the old figures stay on screen until it’s done.
  • The whole week’s plan readings are kept: on a busy week the app could run out of room for its plan readings and drop the oldest, so the first day of the week ended up as an estimate. Older readings are now kept at one every five minutes instead, so a full week always fits. Readings the companion plugin kept are brought back in, so this week’s first day is exact again.
  • Very long sessions are counted: a session whose history file had grown over 400 MB was left out of the token figures. It’s now read a piece at a time.

Version 0.2.26 — 2026-10-14

  • Usage keeps up: plan limits could stop updating for an hour at a time. Every open session rewrites the companion plugin’s file about once a minute, and the app read it about once a minute too, so it could land on the same session’s write every time; when that session couldn’t read your plan, the app never saw a good reading. It now looks whenever the file changes and keeps the newest good plan and sidebar from whichever session wrote them, so the figures are seconds old
  • Lighter refresh: reading the plugin’s kept history is many times quicker

Version 0.2.25 — 2026-10-14

  • Remove a deleted project completely: in Storage › Projects, a project whose folder you’ve deleted can now go entirely, its memories too. Its memories are offered as Check first and listed by name before anything is removed; until now they were always kept, so the project stayed in the list for good
  • Remove all deleted projects at once: “Folder no longer exists” has a Remove all… button, like the empty and memory-only sections. Any project with a session still open in it is left alone

Version 0.2.24 — 2026-10-14

  • No more “Too many open files”: after a few hours open, the app could fail to check for updates (and do other things) with “Too many open files”. Every tool it runs in the background left two pipes open, until the app reached the system’s limit. It now closes them as each tool finishes, so it can stay open as long as you like

Version 0.2.23 — 2026-10-14

  • Projects grouped as in your sidebar, every time: Usage › Projects kept switching between your sidebar’s groups, everything Ungrouped, and everything under “Desktop app”. Every open session passes the sidebar on in turn, and one that can’t read it (a terminal session, or one not allowed) left every session ungrouped until the next. The app now keeps the last sidebar a session could read, across restarts too. A moment when the desktop app’s session folder couldn’t be read no longer drops its sessions either, which put them all under “Desktop app” and brought back ones you’d deleted
  • Today and Yesterday: Usage › Projects opens on Today, and has Yesterday alongside This week and 14 days. Days turn over at your weekly reset’s time of day, not midnight: with a 3am reset, Today is from 3am and Yesterday is 3am to 3am. Each lists only the sessions that used something that day, largest first

Version 0.2.22 — 2026-10-13

  • Every open session’s plugin version: Settings › Monitoring lists every open session, the ones on the current companion plugin too (with a tick), out-of-date ones first. The summary line above the list is gone

Version 0.2.21 — 2026-10-13

  • Plugin versions you can trust: Settings › Monitoring now says which versions a session reported and which it hasn’t. A session that hasn’t reported since it started shows the version it started with, marked with a ?, since it may have reloaded since: a reload in the current Claude Code can load a new plugin without telling it the session has started, so it said nothing. Companion plugin 0.2.7 starts reporting at the first prompt, reply or turn instead, so a reloaded session shows its real version as soon as it’s used

Version 0.2.20 — 2026-10-13

  • Main window stays put: it opens where you left it, including after an update relaunches the app. If that place is on a monitor that’s no longer attached, it opens at its usual size in the middle of the main screen instead

Version 0.2.19 — 2026-10-13

  • Sessions reload themselves: from companion plugin 0.2.6, an open session notices within a minute that a newer plugin has been installed and runs /reload-plugins itself once it’s idle, so updates reach every session without you visiting each one. Sessions on an older plugin need it once by hand, or reopening
  • Every session’s plugin version: Settings › Monitoring shows the actual version for each session, oldest first. A session that hasn’t checked in shows the version that was installed when it started, instead of just “older”; rest on a version to see where it came from
  • Checking in: the plugin notes a session’s version before it asks the Claude app for anything, so a session whose request to the app stalls still shows up

Version 0.2.18 — 2026-10-13

  • Sessions on an older plugin, all of them: the list in Settings › Monitoring now covers every open session. It missed some: sessions share one file, and one writing at the same moment as another was overwritten before the app saw it. A session started before the plugin was last updated, and not heard from since, now counts as older; companion plugin 0.2.5 also checks in from every session on a file of its own, so none is missed

Version 0.2.17 — 2026-10-13

  • Which sessions run an older plugin: Settings › Monitoring names every open session still running an older version of the companion plugin, with the version it’s on, and says to run /reload-plugins there (or reopen it). Each session checks in about once a minute, so the list is complete within a minute or two of opening Settings. Companion plugin 0.2.4 names its session when it writes, so terminal sessions can be named too

Version 0.2.16 — 2026-10-13

  • Terminal or desktop app: Claude Doing? gets everything it can from Claude Code itself, so it works fully with the command-line tool alone. Every session is listed once, however it’s run (the terminal, an IDE or the desktop app): its title, folder and model now come from Claude Code’s own chat history, with the desktop app’s sidebar title, archiving and Remote Control added where it has a record. Recently closed terminal sessions appear under Recent, and Remote Control shows for terminal sessions too
  • What needs the desktop app: per-model limits and your sidebar’s groups can only be read through a Code session in the Claude desktop app. Without the desktop app, Usage and Settings say so instead of waiting for them
  • Usage by session: terminal and IDE sessions get their own titled rows, grouped by how they were run, rather than being summed per project
  • Models: Claude on Bedrock and Vertex is named like any other (“Sonnet 4.5”), other models by their own names. A gateway’s spend limit shows with the plan limits, and Usage explains when sessions report no plan limits at all (an API key, Bedrock, Vertex or a gateway)
  • Reinstall: Settings › Monitoring has a Reinstall button for the hook and for the companion plugin, and shows the version installed against the one this app carries, plus the plugin version your sessions are running
  • /doing-connect-wfc: says what happened (connected, needs the desktop app, or not allowed) instead of running silently, and the app explains it has to be run in a Code session in the Claude desktop app. Companion plugin 0.2.3
  • Settings: the Uninstall note no longer shows part of itself struck through, and says more plainly what it removes

Version 0.2.15 — 2026-10-12

  • System: a new page for the whole Mac, not just Claude: CPU (rest on it for each core) with the load average and Claude’s share, memory in use with macOS’s memory pressure and swap, network, disk and GPU, a live bar for every core, and the busiest processes by CPU and by memory, Claude’s own marked
  • Kept history: the Activity and System charts can look back 1 hour, 24 hours or 7 days as well as the live five minutes. A reading every ten seconds is kept in the app’s database for seven days, so the charts also carry on across restarts instead of starting empty
  • Other use: the Usage overview splits this week’s use between Claude Code on this Mac and everything else on your account: chats, other Claude products, and Claude Code on other computers. Other use is how much the weekly limit rose while Claude Code on this Mac was idle, so it’s a minimum
  • Storage headings: “Rescanning” shows on the Storage pages only

Version 0.2.14 — 2026-10-12

  • Sessions list: stays put while you click around. A refresh no longer moves you off a closed session you chose, clicking empty space keeps the session you were on, and choosing a session shows its last timeline straight away while it reads the latest (on its own, never waiting behind a refresh). A session whose status file Claude Code was rewriting at that moment keeps its place instead of dropping to Recent for a refresh, and sections no longer animate in and out as sessions move between them. Remote Control sessions are listed newest first
  • Plan readings: kept within one limit, so the file of readings no longer grows past it
  • Dev containers: a container’s hook log is trimmed to its last three days once it passes 2 MB
  • Starts with its figures: what the app works out from Claude’s histories (token totals, the command index used to link containers and processes to sessions, plan readings) is kept in a small SQLite database, index.sqlite, in the app’s folder. A launch picks up where the last run left off instead of reading the histories again: on a Mac with 1.5 GB of history that took around 25 seconds, now a fraction of a second. snapshots.json moves into it the first time. Claude’s own files, the hook’s log and the plugin’s file are left as they are

Version 0.2.13 — 2026-10-12

  • Starting up: monitoring, the side panel and update checks start when the app opens, whether or not its main window does. They waited for the window, so an app started at login or last quit with its window closed showed nothing until you opened it
  • Side panel: Open Claude Doing? opens the main window even if it hasn’t been open since the app started
  • Daily budget rolls over: each working day’s budget is what’s left of the weekly limit when it starts, shared evenly over the working days left. A quiet day leaves more for the days after it, a busy one less. Each day shows its own budget, and the allowance line steps up by it. The weekly pace chart on Tokens still shows an even pace
  • Daily budget table: headings for its columns, and a This week so far row with the share of the weekly limit used and the tokens, against the allowance so far

Version 0.2.12 — 2026-10-12

  • Live figures: memory, CPU, network and the rest update every couple of seconds again. Working out which session started each container and process had grown to take longer than the gap between refreshes (thousands of commands checked against every container), so refreshes fell behind and the app kept a core busy. Each command is now worked out once and kept, and only the commands from around when something started are looked at: a refresh takes about a tenth of the time
  • Linking: commands are matched as written, not lower-cased, since names and paths are case-sensitive

Version 0.2.11 — 2026-10-12

  • Plan limits: read reliably again. Every open session asked the Claude app for your plan’s figures every minute, and with many sessions open the app started answering that it couldn’t read them. With companion plugin 0.2.2, sessions share one reading: the app’s figures are read at most once every minute and a half in all, and an answer without them never replaces a good one. If the figures can’t be read for a while, Usage keeps the last ones for up to an hour, saying how old they are
  • Sessions that were already open keep the plugin they started with: restart them, or run /reload-plugins, to use 0.2.2

Version 0.2.10 — 2026-10-11

  • Daily budget chart: the “Used” line no longer turns into a solid block. Some of the sources of plan readings keep passing on an older weekly figure, and the line zigzagged between them several times a minute. A week’s usage only goes up until it resets, so a lower figure from the same week is now left out
  • Companion plugin 0.2.1: fixed at the source. Every open Claude session runs the plugin; a session that couldn’t read the app’s figures passed on its own, which date from its last reply, so idle sessions kept writing old ones. It now passes on another session’s recent reading instead, never adds a lower weekly figure for the same week, and no longer briefly replaces the plan with “needs access”. The app updates the plugin by itself; sessions use it once they restart

Version 0.2.9 — 2026-10-11

  • Storage › Projects: project folders with nothing at all in them (only an empty memory folder) are listed under Empty project folders. They were left out because they hold no bytes and no files
  • Storage › Projects: projects with nothing left but memories are listed under Only memories left, with Remove all…, or tick them one by one. They’re Check first, so never chosen for you, and the clean-up lists every memory that would go and asks you to tick that it’s what you want. They go to the Trash, so you can put them back. No other clean-up ever removes memories
  • ⌘-Tab: with “Show in the Dock” off, the app joins the Dock and the ⌘-Tab switcher while its main window is open, so you can switch away and back, and leaves both when the window closes. macOS only lists apps in the Dock in ⌘-Tab

Version 0.2.8 — 2026-10-11

  • Dev containers have their own section under VMs & containers, named after their project: VS Code’s Dev Containers (and the devcontainer CLI) by the project folder, DevPod by its workspace. They’re marked DC rather than CT, and counted apart on Activity
  • Containers: each one is tagged with what runs it: Docker, Podman, Apple, DevPod or Dev Containers
  • Claude in dev containers: a dev container’s Claude sessions can report to the app. Report sessions… on the container adds a hook to the project’s own .claude folder, which the container shares with the Mac: Claude in the container runs it (with Node or Python), and on the Mac it does nothing. Those sessions then show in Activity and Sessions, marked “in dev container”, with their live timeline. Nothing in devcontainer.json changes, and Stop Reporting Sessions… (right-click the container) takes it out again. Sessions already running pick it up when they restart. It needs the project folder shared from the Mac, the default for VS Code and for DevPod with a local folder

Version 0.2.7 — 2026-10-11

  • CPU column: wide enough for the cores line (“0.4 of 16 cores”), which wrapped onto three lines

Version 0.2.6 — 2026-10-11

  • Hook log: past days’ logs are compacted, dropping the plugins’ background calls an earlier hook logged: a busy day’s log shrinks from around 28 MB to 2 MB. Today’s log is left alone while the hook is still writing to it, and is compacted the next day

Version 0.2.5 — 2026-10-11

  • Starting up: Activity fills in within a few seconds of opening the app. It could stay empty for a minute or more, while the app read every background call the companion plugins make (every few seconds, in every session) from the hook’s log
  • Hook: those background calls are no longer logged, so the log is a small fraction of its old size. The app brings the hook program up to date when it changes

Version 0.2.4 — 2026-10-11

  • CPU is now a share of the cores each thing can use, so it never goes over 100%: one of two cores flat out is 50%. A VM and its containers are measured against the VM’s cores, everything else against the Mac’s, with the cores busy under it (“92%”, “7.4 of 8 cores”). It used to be counted as Activity Monitor does, with each core as 100%, so a busy VM could show 725%
  • CPU, core by core: rest the pointer on a CPU figure to see each core. A VM shows each of its virtual cores, a container its VM’s cores, and anything else the Mac’s own cores
  • Network: the app reads network use in short readings instead of keeping nettop running, which on its own kept a whole core busy

Version 0.2.3 — 2026-10-11

  • Storage › Projects: project folders with no chats or memories left in them are listed under Empty project folders, with Remove all… to clear them in one go. They’re also on the Overview as Safe. A folder still holding memories is never counted as empty, and Claude Code makes a project’s folder again if you go back to it

Version 0.2.2 — 2026-10-11

  • Updates: the update window opens on top of Settings when you check from there, instead of waiting until Settings closes
  • Menu bar and side panel: Check for Updates…, or Install Update when one is waiting. It opens the main window if it’s closed

Version 0.2.1 — 2026-10-11

  • Updates: Check Now in Settings shows the update window, with Install and Relaunch, as soon as it finds a new version (it used to wait until Settings was closed), and Settings shows an Install button while an update is waiting
  • Refresh (the toolbar button and ⌘R) refreshes everything, storage included: it used to rescan storage only from the toolbar while Storage was showing, and ⌘R never did. While storage rescans, the button spins and Storage shows how far it’s got, instead of the old figures sitting there unchanged
  • Storage › Files: files from open sessions can be selected and removed. Before they go, you’re told how many belong to an open session and which project, and you either tick that you understand or leave them out. Everything else in an open session’s folder stays
  • Storage › Projects: a project with a session open shows “Open now”, and Mark Not in Use lets its chats, temp files and worktrees be cleaned up as if the session had closed, for 10 minutes. Then it’s checked again, or sooner with Check Again. The mark isn’t saved, and a session opened later is protected as usual
  • Storage: a session that crashed or was force-quit no longer counts as open, so it doesn’t keep its project marked in use

Version 0.2.0 — 2026-10-10

  • Sessions: each session shows its input and output tokens, and a Tokens panel splits them by type and by model: input, output and cache for each model it used. Closed sessions show it too
  • Sessions: the figures along the top are all the same size
  • Usage: input, output and cache are shown apart on the Overview’s totals and for each model on the Models tab. Most of a session’s tokens are cache reads, so input and output are much smaller than the total
  • Usage: “This computer” on the Overview now counts days and weeks from your plan’s weekly reset, the same as your limits: “Today” starts at the reset’s time of day, not midnight, and “Last 14 days” is now “Last week”, the weekly window before this one. Until the app has a reading of your plan, it shows how to get one instead of totals that wouldn’t line up

Version 0.1.2 — 2026-10-10

  • Updates: after installing an update the app quits and reopens by itself. It used to wait on the update window until you quit it yourself

Version 0.1.1 — 2026-10-10

  • Settings opens as a sheet over the main window, with a Done button, from ⌘,, the sidebar, the app menu, the menu bar and the side panel. If the main window is closed, it opens it first (before, Settings from the menu bar only appeared when the main window was showing)
  • Settings: the selected tab is white in dark mode (it was blue on grey, hard to read) and navy in light mode
  • Updates: checking for an update tries once more if GitHub’s servers answer with a one-off error, so a daily check isn’t missed

Version 0.1.0 — 2026-10-10

First release.

  • Activity: every open Claude Code session, what it’s doing now, its CPU and memory, and what it started, with live graphs of Claude’s memory, CPU, network, disk and GPU use
  • Sessions: each session’s timeline of tool calls, the files it changed and what it left running
  • VMs & containers: Docker, Podman, Parallels, UTM, VMware Fusion, VirtualBox, Lima, Colima, Multipass, Tart, OrbStack and Apple’s container tool, each linked to the session that started it, with anything left running flagged
  • Usage: plan limits, the daily budget, tokens by hour, day, project and model, and alerts, from the WhiteFish Usage Dashboard
  • Storage: what Claude keeps on disk and safe clean-up, from Claude Cleaner
  • Side panel: docks to either side of any screen and slides between a tab, a minimal strip and the full panel
  • Optional hook and companion plugin for exact session links and plan limits, each added only when you choose, and removable from Settings