Now in early access — Community kit live

Mission Control
for Claude Code

A self-hosted dashboard for the AI agents you build. Watch every task, log, decision, hook, sub-agent, and skill — all in real time. Free for personal and own-business use.

What it is

Your AI agents, but visible

Most agent setups are invisible terminal scrolls. Claude Control turns every Claude Code session into a live dashboard you can watch, query, and direct.

For builders

You're shipping with Claude Code. You want to know what it's doing, why, and where it's stuck — without staring at a terminal. Claude Control is the dashboard the CLI never gave you.

Self-hosted

Not a SaaS. You clone the repo, deploy your own Supabase, run your own dashboard. Your data, your infrastructure, your rules. Open source kit, no per-seat fees.

Designed for one operator

Claude Control assumes you. One Supabase, one dashboard, one Claude Max subscription powering your agents. Built for indie builders, not enterprise teams.

Inside the kit

Every Claude Code surface, dashboarded

Watch, audit, and direct everything Claude Code touches — without leaving the browser.

Mission Control
Real-time visibility into what your agents are doing right now
📊

Dashboard

One-glance status of every agent, task, and active session. Live ring colors, heartbeats, and progress bars.

📋

Kanban Board

Five-column board (To Do, Doing, Needs Input, Canceled, Done) that fills itself as agents work. Subtasks, assignees, budgets per card.

📝

AI Log

Every observation, decision, and step your agents make — searchable, filterable, with unread badges so you never miss a thread.

Questions

Agents ask through the dashboard, not the terminal. Approve, answer, or redirect — async, with full history.

📈

Reports

Agents file HTML reports when they finish. Browsable, shareable, persistent. No more "what did it actually do?"

Claude Code Surfaces
The hidden filesystem — settings, memory, hooks, skills, MCP — all observable
🔐

Permissions

Visual editor for ~/.claude/settings.json. Allow/Ask/Deny matrix, env vars, model picker — no JSON spelunking.

🧠

Memory

Cross-project CLAUDE.md and MEMORY.md viewer. Version diffs, scope filtering (user/project/agent), full audit trail.

🔌

MCP Servers

Live registration + tool inventory for every MCP server across all your projects. Health checks, transport types, env-key tracking.

🎣

Hooks

See every PreToolUse, PostToolUse, SessionStart, and Stop hook firing across projects. Inspect commands, kill misbehaving ones.

⚒️

Skills

Browse every .claude/skills/ definition across all projects. Allowed-tools, when-to-use, body — fully indexed.

🤖

Sub-Agents

Mirror of .claude/agents/*.md. Spawn, monitor, and manage specialized workers from the dashboard.

⏱️

Scheduled Tasks

Read of mcp__scheduled-tasks__*. See what's next, what last ran, what failed — all in one place.

📂

Sessions

Every Claude Code session — model used, turn count, token estimate, tool calls, transcript path, summary. Audit your usage.

Build Systems
Tools to spin up new agents, skills, and workflows on demand

Skill Factory

Generate working API skills from natural language. Auth, endpoints, validation, ready to drop into any agent.

🔥

Forge

Paste a doc, video transcript, or webhook payload — get back a structured analysis ready for next steps.

🎯

Goals Lab

Submit a fuzzy business goal — Claude breaks it into milestones, tasks, and KPIs you can dispatch to agents.

⚙️

Automations

Schedule any edge function via pg_cron from the dashboard. Morning digests, evening reports, intel syncs — all on autopilot.

🔁

Routines

Reusable agent workflows. Define once, trigger anywhere. Built-in support for Anthropic-native step orchestration.

Insights & Operations
Custom apps, command-center views, and the data layer behind it all
🎛️

Command Center

The deck view. Profiles, sessions, guardrails, comms, orchestration — your whole agent fleet in one screen.

🏢

Ops Center

Build custom dashboards from the data your agents produce. 19 block types — KPIs, tables, feeds, charts, alerts.

🆔

Identity

Each agent gets a persona file — instructions, memory, voice. Edit on the dashboard, applied at next session.

👥

AI Employees

Compose agents into specialized roles — researcher, writer, analyst — with their own configs and budgets.

How it works

From request to running in 20 minutes

No SaaS signup. No marketplace. You self-host the whole thing on free-tier infrastructure.

STEP 01

Request access

Fill the form below with your name, email, and GitHub handle. Takes 30 seconds.

STEP 02

Accept GitHub invite

You'll get a collaborator invite email within seconds. Click accept and the private repo is yours to clone.

STEP 03

Run the setup guide

Open SETUP.md in Claude Code, say "follow this." Claude walks you through Supabase, env vars, and deploy.

STEP 04

You're live

Your dashboard goes online. Every Claude Code session you run from now on appears on it in real time.

Get access

Request the community kit

Free for personal projects and your own business. Submit the form — we send a GitHub invite to the private repo within seconds.

Used for the GitHub invite notification.
No @ prefix needed. Must match your GitHub login exactly.

License — read this first

Free for personal use and your own business. Build whatever you want, run it for any company you own or operate. Client work needs separate permission — if you want to deploy Claude Control for a paying client, drop a note via the access form first. Code is yours to fork and modify; selling redistributions or hosted versions of the kit isn't allowed.

Setup, lesson by lesson

10 prompts. Copy. Paste. Done.

No giant docs to wade through. Each lesson is a single prompt you paste into Claude Code — Claude runs the commands, asks for what it needs, and verifies before moving on. Click Copy, paste into a fresh Claude Code session, and ride along.

In a hurry? One-shot setup
Hand the whole thing to Claude Code
Copy this single mega-prompt and Claude Code will run all 10 phases autonomously, pausing only when it needs your Supabase credentials, admin email, and hosting choice.
or walk through one lesson at a time
01
Clone the repo & check prerequisites
Open Claude Code in a new terminal window inside an empty directory. Paste this prompt — Claude verifies your tooling and clones the kit.
PROMPT FOR CLAUDE CODE
I'm setting up Claude Control. Please verify I have the prerequisites installed: git, Node.js 18+, npm, and the Supabase CLI. Run version checks for each. If any are missing, pause and tell me what to install before continuing. Once everything is verified, clone https://github.com/mkanasani/claude-control-kit-community.git into the current directory, cd into it, and run `npm install`. Report when complete and stop — I'll give you the next lesson.
Before you start: Make sure you've accepted the GitHub collaborator invite (check your email). Without it, the clone will fail with a 404.
02
Create your Supabase project
You handle this one in the browser at supabase.com — Claude waits and walks you through finding the four credentials it'll need next.
PROMPT FOR CLAUDE CODE
I'm about to create a free Supabase project. Walk me through it step by step: 1. What region should I pick (I'm in ). 2. After it's provisioned, where do I find these four values: Project URL, Project Ref, publishable anon key, service_role key. 3. As I share each value, validate the format (URL should be https://*.supabase.co, project ref is the subdomain, keys start with sb_publishable_ or eyJ...). Save the values to a temporary in-memory note. Don't write them to disk yet — we'll use them in the next lesson.
03
Link Supabase & deploy the database
Claude links the CLI to your project and runs all 72 migrations — every table, index, and RLS policy the dashboard needs.
PROMPT FOR CLAUDE CODE
Using the Supabase project ref I gave you in Lesson 2: 1. Run `supabase login` if I'm not already logged in. 2. Run `supabase link --project-ref ` from the cloned repo directory. 3. Run `supabase db push` to apply all 72 migrations. 4. Watch for failures and report any that don't apply cleanly. 5. After migrations finish, list the tables in the public schema with `supabase db dump --schema public --data-only=false` (or via the dashboard) and confirm tasks, ai_log, ai_status, ops_apps, and ai_agents all exist. Stop when verified.
04
Set Supabase secrets
Generate webhook secrets and wire up your Anthropic API key. Claude saves the webhook secret so it can use it later.
PROMPT FOR CLAUDE CODE
Set up the Supabase edge-function secrets: 1. Generate a random webhook secret with `openssl rand -hex 32`. Save the value — I'll call it CLAUDE_CONTROL_WEBHOOK_SECRET. 2. Run `supabase secrets set CLAUDE_CONTROL_WEBHOOK_SECRET=`. 3. Generate a second random hex with `openssl rand -hex 32` for AI_TASKS_API_KEY. Set it the same way. 4. Ask me for my Anthropic API key (https://console.anthropic.com — keys start with sk-ant-). Set it as ANTHROPIC_API_KEY. 5. Confirm all three secrets show up in `supabase secrets list`. Save the webhook secret to a local notes.md file in the project root so I have it for Lessons 7 and 9. Don't commit it.
05
Deploy all edge functions
One-shot loop deploys every function in supabase/functions/ to your Supabase. About 3 minutes.
PROMPT FOR CLAUDE CODE
Deploy every edge function in the kit: 1. List all directories under supabase/functions/ — these are the functions to deploy. 2. For each one, run `supabase functions deploy --no-verify-jwt`. 3. Report success or failure for each. 4. After they're all deployed, smoke-test ai-tasks by curling it with the webhook secret from Lesson 4: curl -X POST https://.supabase.co/functions/v1/ai-tasks \ -H "Content-Type: application/json" \ -H "x-webhook-secret: " \ -d '{"request_type":"status","action":"update","is_online":true,"agent_name":"Setup","agent_emoji":"🛠️"}' The response should be {"success": true, ...}. Pause and report.
06
Create your admin user
Claude shows you the SQL to create your user record — the dashboard's first login.
PROMPT FOR CLAUDE CODE
I need to create my admin user so the dashboard has someone to authenticate. Walk me through it: 1. Tell me to open the Supabase Dashboard → SQL Editor for my project. 2. Give me the SQL to insert myself into auth.users with my email and full name (ask me for both). 3. After I run it, give me the verification SQL: `SELECT id, email, raw_user_meta_data->>'full_name' as name FROM auth.users;` 4. Confirm the user exists and save the user_id — Claude Code will reference it later when assigning tasks.
07
Build the frontend locally
Configure your .env.local, run the dev server, sign up at /auth, and confirm the dashboard renders.
PROMPT FOR CLAUDE CODE
Set up the frontend: 1. Create a .env.local file in the project root with these three variables — pull the values from Lessons 2 and 4: VITE_SUPABASE_URL=https://.supabase.co VITE_SUPABASE_PUBLISHABLE_KEY= VITE_CLAUDE_CONTROL_WEBHOOK_SECRET= 2. Run `npm run dev` and tell me the localhost URL. 3. I'll visit /auth and sign up with the same email I used in Lesson 6. 4. After I confirm the dashboard loads, kill the dev server. If the page is blank with no console errors, the env vars aren't being read — Vite bakes them at build time, so they MUST be in .env.local before `npm run dev` starts.
08
Deploy frontend to production
Pick Netlify or Cloudflare Pages — Claude installs the CLI, builds with env vars in shell, and ships.
PROMPT FOR CLAUDE CODE
Time to deploy the dashboard to a live URL. Ask me whether I want Netlify or Cloudflare Pages, then walk me through it: For Netlify: - Install netlify-cli globally. - Run `netlify login` then `netlify init`. - Build with the VITE_ env vars inline in the shell command (NOT just from .env.local — the build needs them in the environment when triggered remotely too). - Run `netlify deploy --prod --dir=dist`. For Cloudflare Pages: - Install wrangler globally. - Run `wrangler login`. - Run `wrangler pages project create claude-control --production-branch=main` (skip if exists). - Build with VITE_ env vars in shell. - Run `wrangler pages deploy dist --project-name=claude-control --branch=main`. Either way: after deploy, give me the live URL and verify it loads without a blank page (devtools network tab should show requests to my Supabase project).
09
Wire Claude Code to the dashboard
Copy CLAUDE.md into your real project, set the env vars in your shell, and verify the connection.
PROMPT FOR CLAUDE CODE
Wire my live Claude Code agent to the dashboard: 1. Ask me for the absolute path to the project where I run Claude Code most often. 2. Copy CLAUDE.md from this kit's repo root into that project as ./CLAUDE.md (or merge with an existing one — preserve my customizations). 3. Add these two env vars to my shell rc file (~/.zshrc or ~/.bashrc — detect which): export CLAUDE_CONTROL_API_URL="https://.supabase.co" export CLAUDE_CONTROL_WEBHOOK_SECRET="" 4. Source the rc file or open a new terminal so the vars are live. 5. Curl the status endpoint to confirm Claude Code can reach the dashboard: curl -X POST $CLAUDE_CONTROL_API_URL/functions/v1/ai-tasks \ -H "Content-Type: application/json" \ -H "x-webhook-secret: $CLAUDE_CONTROL_WEBHOOK_SECRET" \ -d '{"request_type":"status","action":"update","is_online":true,"status_message":"First connection","agent_name":"MyAgent","agent_emoji":"🤖","ring_color":"green"}' 6. Tell me to refresh the dashboard at my deployed URL — I should see MyAgent online with a green ring.
10
End-to-end smoke test
Four API calls verify every core surface — status, tasks, logs, insights. If all four pass, you're shipping.
PROMPT FOR CLAUDE CODE
Run the four-step smoke test against my Claude Control dashboard. Use $CLAUDE_CONTROL_API_URL and $CLAUDE_CONTROL_WEBHOOK_SECRET from my shell. After EACH step, pause and ask me to refresh the dashboard to confirm the result is visible: 1. Status update: set agent SmokeTest online with green ring. 2. Task create: title "First Task", column "todo". 3. Log entry: category "general", message "Claude Control is alive!" 4. Insight push: insight_type "summary", title "Setup Complete", content "All systems online". If any step fails, debug it before moving on — check the Supabase edge function logs in the dashboard for the specific error. When all four pass, congratulate me — I'm officially live on Claude Control.
You're shipping: Every Claude Code session you start from now on can talk to your dashboard. Just put CLAUDE.md in any project where you want the agent to log its work, and it shows up in real time.
Copied to clipboard