Skip to content
| Marketplace
Sign in
Visual Studio Code>SCM Providers>Claude Mission ControlNew to Visual Studio Code? Get it now.
Claude Mission Control

Claude Mission Control

Suraj Kumavat

| (0) | Free
| Sponsor
Unofficial companion for Claude Code. Review, accept & undo file changes with its own tracking (no git needed), see your plan usage, watch the model actually running, put subagents on a cheaper model, and monitor background agents & workflows.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

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 ↓

The Changes tab: four changed files with per-file line counts, one marked NEW, with Accept all and Undo all in the header — and the bottom dock showing the model actually running with its context window, the effort meter, the Inherit/Opus/Sonnet/Haiku Subagents row, and live 5-hour and weekly plan usage.

⚠️ 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.

The Plans tab: plans Claude wrote in plan mode, one expanded inline as rendered markdown.

📊 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 ✕.

The Tasks tab: a workflow run expanded to show its three agents with status dots, token counts and the tools each one used.

🔔 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.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft