What is connected
5 connected · 0 prepared — prepared sources are fully wired and only need a key in .env.local.
Demo data — generated for the example project, nothing is fetched. For your own project: Path in mission-control.config.json → vault.path. Links open straight in Obsidian (obsidian://).
Demo data — generated for the example project, nothing is fetched. For your own project: repos[] in mission-control.config.json.
Demo data — generated for the example project, nothing is fetched. For your own project: Reads ~/.claude/projects and ~/.claude/sessions (claudeHome in the config).
Demo data — generated for the example project, nothing is fetched. For your own project: Reads ~/.claude/scheduled-tasks; schedules live in mission-control.config.json → loops.
`claude -p` with your existing login, read-only tools only.
Connect it in claude.ai; agents use it inside sessions.
Sign in under Connectors in claude.ai.
Modules
The console is the core. Everything about running a product around your agents is optional.
Switch a module on per project: "modules": ["roadmap", "marketing"] in mission-control.config.json. A module that is off has no page, no menu entry and no card on the dashboard.
Your data, your backend
Two seams carry all data: read sources and the app's own state.
Read sources (lib/sources/*) fetch from outside — git, Vercel, Polar, GitHub, Search Console, the Claude session index. Replace a file there to read from your own API or database; each returns plain typed objects.
App state (lib/store.ts) keeps alert rules, incidents, evals, budgets, guardrails and the audit log as one JSON file per store. readStore and writeStore are the only two functions to swap for a database.
Agent runner (lib/runner.ts) starts the Claude CLI or, with MISSION_CONTROL_RUNNER=simulated, plays a scripted run. Mode now: hosted preview · runner: simulated.
Projects
One Mission Control, any number of projects — switch at the top of the sidebar
New project: add an entry under "projects" in mission-control.config.json — id, name, accent, repos, cwdPrefixes (folders of the Claude sessions), optional vault, site, github, polar, loops, channels. Paths may start with ~. The file is re-read every few seconds.
{
"id": "new-project",
"name": "New project",
"accent": "#F472B6",
"repos": [{ "name": "app", "path": "~/projects/app" }],
"cwdPrefixes": ["~/projects/app"],
"vault": { "path": "~/notes/App", "name": "App" },
"skillDirs": [], "agentDirs": [], "loops": [], "channels": []
}Local data
What Mission Control stores itself — on this machine unless you swap the store