Claude Mission Control
Mission control for Claude Code, right inside your editor.
Claude edits fast. You end up with changes you never read, in files you never opened.
Mission Control puts a sidebar next to it. Review, accept and undo every change, without git.
Watch your 5-hour and weekly limits. Put subagents on a cheaper model. Read the plans Claude
wrote, and keep an eye on background agents.
Local by default: no servers, no telemetry, one optional API call. Details ↓
⚠️ Unofficial. This is a community extension and is not affiliated with, endorsed by, or
sponsored by Anthropic. "Claude" and "Claude Code" are trademarks of Anthropic.
Why
|
|
| Read every change |
Diff, accept or undo each source, config and project file Claude touched. Yours and your scripts' edits too. Any folder, git repo or not. |
| Undo without git |
Restores the last version you accepted. New files are deleted, deleted files come back. |
| See the wall coming |
Live 5-hour and weekly usage, so you can throttle before you get cut off. |
| Cut token burn |
One click puts every subagent on Sonnet or Haiku while you stay on Opus. Agent-heavy work is where the tokens actually go. |
| Never miss a prompt |
An optional native ping when Claude finishes, or when it's stuck waiting on a question or a plan. |
Features
🗂 Changes
Mission Control's own change tracking — no git involved. Like Copilot's edit review: the first open
snapshots your workspace as the baseline; from then on every change to a recognized developer
file (by you, Claude, or a script) shows up with +/- stats. Click a row for a diff vs the
last accepted version, Accept to approve it (the baseline moves forward), Undo to restore
the last accepted version (new files are deleted, deleted files come back). Accept all and
Undo all sit in the header. Works in any folder — git repo or not.
Signal only, by design. Tracking is allowlist-based: ~140 source, markup, config and project
file extensions plus ~65 exact names (Makefile, Podfile, Dockerfile, .gitignore, …).
Everything else is deliberately invisible, so build output and IDE junk never pollute the list —
node_modules, dist, build, Pods, DerivedData, vendor, any dot-folder, *.xcresult /
*.xcarchive bundles, media and binaries, and .DS_Store-style OS files. Brand-new files over
1 MB aren't picked up either. Working in a format Mission Control doesn't know? Add it with
missionControl.tracking.alsoTrack — an extension (.xyz) or an exact name (Procfile) — and it applies
live, no reload. (Known binary/media types stay out regardless.)
Moved a folder and everything looks NEW? Mission Control matches moved files by content automatically, and
if a baseline really has gone stale it offers a one-click Re-baseline — also available any time
from the Command Palette. Re-baselining never touches your files, only Mission Control's record of what
you've accepted.
Mission Control tracks the first folder of your workspace.
📋 Plans
Browse the plans Claude produced in plan mode — expand inline as rendered markdown, or hit ↗
to open a plan in a styled, read-only plan view tab (like Claude Code's own plan review). Scope
it to this project or to every saved plan with missionControl.plans.scope.
📊 Plan usage
Live 5-hour and weekly limits with percentage, reset countdown and last-checked time, read
using Claude Code's own local credential. Optional and fully disableable — this is the only part of
Mission Control that touches the network.
⚙️ Model, effort & subagents
The Model card shows what Claude Code is actually running right now — resolved from your live
session log, not just the alias sitting in settings. So default / opus display their real
current name, a mid-session fallback is flagged (≠ the model you asked for), and new model
releases show correctly without an extension update. Aliases (opus[1m]) and full model ids both
render properly, alongside the context window and an effort meter on the right scale for that
model — including Ultracode, which Claude Code otherwise saves indistinguishably from Extra
high.
Subagents is the control that saves money. One row, four buttons — Inherit · Opus · Sonnet ·
Haiku — pins every subagent, agent team and workflow agent to a cheaper model while you stay on
Opus. Agent-heavy work is where tokens actually go, so this is the single biggest saving available,
and it's one click instead of hand-editing settings.
- Writes
env.CLAUDE_CODE_SUBAGENT_MODEL in ~/.claude/settings.json — Claude Code's global
subagent override. Takes effect on the next subagent spawned; no restart.
- Inherit removes the key rather than writing a literal value, so subagents fall back through
the normal chain to your main model.
- Heads-up: the override also wins over a subagent's own
model: frontmatter — that's the point,
but custom agents pinned to a model will follow this setting too.
- Every write is guarded: if
settings.json isn't valid JSON right now, Mission Control changes nothing and
tells you, instead of clobbering your hooks, permissions and env.
The rest of the card is a live read-out, not a control. Your own model and effort are changed from
the Command Palette — see Commands below.
🤖 Background tasks
A live view of background work with accurate statuses (running / completed / stopped), read from
Claude Code's own task lifecycle records. Workflow runs group their agents under one expandable
card — tokens, tool calls, and inline transcripts per agent. Clear all wipes the finished cards
at once (running ones stay); each card also has its own ✕.
🔔 Ping me when Claude needs you
Step away while Claude works. When its turn ends — or when it's blocked on a question or a plan
awaiting approval — Mission Control fires a native OS notification with sound that reaches you even
over a fullscreen app. It only fires when that window isn't focused, and each window checks its own
focus, so a finish in a background window pings you while you keep working in another.
On macOS (Apple Silicon) and Windows, clicking the notification focuses the exact VS Code
window that workspace is open in — macOS uses a bundled signed + notarized helper so the click still
works on current macOS. Intel Macs fall back to a non-clickable banner; Linux uses notify-send
(not clickable), with an in-app notification if notify-send is missing.
Off by default — flip the switch at the bottom of the panel, or set missionControl.notifyOnComplete.
Commands
All from the Command Palette (⇧⌘P / Ctrl+Shift+P), prefixed Claude Mission Control:
| Command |
What it does |
Switch Model |
Default (recommended Opus) · Opus (1M context) · Fable (1M context) · Sonnet · Haiku. Version-free labels that follow Claude Code's current lineup; applies to new sessions. |
Switch Reasoning Effort |
Low · Medium · High · Extra high · Max. (Ultracode is shown on the card but is entered from Claude Code itself.) |
Re-baseline Workspace (Accept Current State) |
Makes everything currently on disk the accepted state — the fix after a big move or reorg makes every file look NEW. Your files are never modified, only Mission Control's record. |
Undo All Tracked Changes |
Restores every tracked file to its last accepted version and deletes files that are new since then. Asks for confirmation first. |
Refresh |
Force a re-read of changes, plans, tasks and usage. |
Both switches are merged into ~/.claude/settings.json, leaving every other key untouched.
Privacy — what Mission Control touches
Everything happens on your machine. Mission Control runs no servers, collects no telemetry or
analytics, and makes exactly one network request — described at the end.
What it reads
- Your local Claude Code data in
~/.claude — sessions, plans, settings.json, task records.
- Background-task output from Claude Code's own temp dir:
/tmp/claude-<uid> (macOS/Linux) or
%TEMP%\claude (Windows).
- For the Changes tab, files in the folder you have open — but only the recognized developer
files described above.
.env files, keystores, certificates, binaries, media, build output,
node_modules and dot-directories are never read.
- On macOS, the Plan usage card reads Claude Code's OAuth token from your login keychain
(item
Claude Code-credentials) — that's where Claude Code keeps it instead of
~/.claude/.credentials.json. Turn the usage card off and this read never happens.
What it writes
- To make Undo possible without git, Mission Control keeps its own copy of the last accepted version of
every tracked file under
~/.claude/.mission-control/tracking/<workspace>/. These copies never leave
your disk — delete that folder any time to wipe them, and baselines for folders that no longer
exist are pruned automatically after 30 days. Note the copy is of the file as-is: if a tracked
source or config file contains a credential, so does the copy. Real .env files are never copied
(.env.example / .sample / .template are).
- Your workspace files are written only when you click Undo (or run Undo All Tracked
Changes) — that's what Undo is. Accept and Re-baseline move Mission Control's own baseline and never
touch your files.
~/.claude/settings.json — only the model, effort and subagent keys, and only when you ask for
the change. If that file isn't valid JSON, Mission Control refuses to write at all.
- With
missionControl.notifyOnComplete on, macOS: the bundled notification helper is copied to
~/.claude/.mission-control/bin/ (and de-quarantined) so clickable notifications work. Notifications are
also the only reason Mission Control runs OS commands: alerter / osascript / open on macOS,
powershell.exe on Windows, notify-send on Linux.
- Three small bookkeeping files in
~/.claude/.mission-control/, none of them sensitive:
usage-cache.json (your last usage reading, so the card isn't blank on open),
dismissed-tasks.json (which task cards you cleared), and a .last-prune marker.
The one network call: the Plan usage card sends Claude Code's own local OAuth token to
Anthropic's usage endpoint (api.anthropic.com) to read your 5-hour and weekly limits. Nothing else
is sent anywhere. Set "missionControl.usage.enabled": false and Mission Control is fully offline.
Don't take my word for any of it. The source is on
GitHub, so you can read exactly what it does
before you trust it with your ~/.claude. It isn't open source, and the licence says so, but nothing
about it is hidden. Questions still get answered: supportcutex@gmail.com.
Requirements
- VS Code 1.85+
- Claude Code installed and used at least once (so
~/.claude
exists).
- A local workspace — Mission Control needs real filesystem access, so remote virtual workspaces aren't
supported.
Settings
| Setting |
Default |
Description |
missionControl.usage.enabled |
true |
Show the live Plan Usage card (the only network call). |
missionControl.usage.refreshSeconds |
60 |
Min seconds between usage requests (≥30). |
missionControl.backgroundTasks.enabled |
true |
Show the Background Tasks tab. |
missionControl.notifyOnComplete |
false |
Native OS notification (with sound) when Claude finishes or needs you — only when that window isn't focused. See 🔔 above. |
missionControl.plans.scope |
project |
project (plans made in this workspace) or all. |
missionControl.tracking.alsoTrack |
[] |
Extra file types for the Changes tab beyond the built-in developer-file list — an extension (.xyz) or an exact name (Procfile). Applies live, no reload. |
missionControl.support.url |
"" |
Optional https:// URL for the Buy me a coffee row. Blank uses the built-in link; a value that isn't https:// hides the row. |
Support
Mission Control is free and unofficial. If it saves you time, there's a Buy me a coffee row in the
panel's bottom dock, visible on every tab, which opens my
GitHub Sponsors page. Entirely optional, and there's no
tracking either way.
Questions or a bug? Email supportcutex@gmail.com (also linked at the bottom of the panel), or
open an issue on GitHub.
Built by Suraj Kumavat. @levelup_with_sk on Instagram.
License
Proprietary © Suraj Kumavat. Free to install and use. The source is published so you can read it, but
publishing it doesn't make it open source: you may view, clone, fork and modify it for yourself, not
redistribute or sell it. Full terms in LICENSE, which also ships with the extension as
LICENSE.txt. Bundled third-party components keep their own licences, listed in
THIRD-PARTY-LICENSES.md.