The cockpit for multi-agent software development.
Spawn and direct autonomous coding agents, watch their work unfold in real time, and review and merge what they ship, from one quiet, well-instrumented deck.
Features · Install · How it works · Documentation
Control Center gives you command over a fleet of AI coding agents. Each agent runs on its own branch, in its own copy-on-write worktree, producing pull requests, logs, costs, and messages in parallel, all behind a native desktop app with GitHub and Linear integration.
Spawning ten agents is easy. Knowing which one needs you isn't. Git, your terminal, and the GitHub UI were built for one person writing one branch. The hard part was never any single action. It's holding the whole fleet in view at once, seeing what's blocked or waiting on you, and acting in one or two moves without losing the thread. That's what Control Center is for.
Note
Control Center ships as a native desktop build, available today on macOS. Windows and Linux are close behind.
|
Messaging is the primary way to use agents. Open a DM or @-mention an agent in a channel and it dispatches into its own worktree, thinking, tool calls, and output streaming back in real time.
|
Pair your phone with Remote over a direct, peer-to-peer link and keep up from anywhere, read messages, reply, triage tickets, without the desktop's data ever leaving it.
|
|
Thinking, running, blocked, failed, idle. Every agent's state reads at a glance. Presence reports real work, never decoration.
|
Priority pull requests surface first. Read the diff, comment, dispatch reviewer agents, and land a ship / hold / block verdict, without leaving the deck.
|
|
Compose steps into a DAG, prompt an agent, run a script, fan out reviewers, join the results. Every node carries its own retry and continue-on-fail policy.
|
The single unit of work the whole fleet shares, vendor-agnostic, synced with Linear both ways, and coupled to the pipeline that delivers it.
|
|
Every conversation runs over copy-on-write worktrees inside an OS-native sandbox, with credentials minted per launch and revoked on teardown.
|
Each run opens with more context, and you keep more control, than the run before it.
|
|
Record a call and walk away with a clean writeup. Audio is captured, transcribed, and summarized entirely on-device. Nothing leaves the machine.
|
Connect Google Calendar, see your day, and turn any event into a recorded, summarized meeting in one click.
|
| Integration | What it does |
|---|---|
| GitHub | Pull requests, reviews, inline comments, checks, and user profiles |
| Linear | Bidirectional ticket sync: status, assignee, and comments |
| Google Calendar | Per-workspace event sync, RSVP, "starting soon" alerts, and record-and-link |
| MCP | 76 typed tools over JSON-RPC, callable by any MCP client |
| Agent CLIs | Claude Code, Codex, and Pi, auto-detected on your PATH |
| Remote | The phone companion over WebRTC: messages, replies, and ticket triage from anywhere |
brew tap control-center/tap
brew install --cask control-centerOr download the latest .dmg (Apple Silicon) from
Releases.
Free and open source · auto-updates · macOS 13 or later.
Important
Before your first run you'll need Git, at least one agent CLI
(Claude Code, Codex, or Pi), and a GitHub personal access token with repo and PR
permissions, or the gh CLI, which Control Center detects automatically. Tokens are
stored in your system keychain, never on disk.
Requires the Flutter SDK (desktop enabled).
flutter pub get
flutter pub run build_runner build --delete-conflicting-outputs
flutter gen-l10n
flutter run -d macos # or windows, linuxImportant
macOS contributors, sign with your own Apple team for secure storage to work.
Credentials live in the macOS data-protection keychain, which requires the app to be
signed by an Apple Developer team (a free Apple ID works for local dev). The debug
entitlement uses $(DEVELOPMENT_TEAM), so you don't edit any source, just run, once:
# add your Apple ID in Xcode → Settings → Accounts first, then:
bash macos/scripts/create_local_signing_cert.shIt writes a git-ignored Signing.local.xcconfig set up for automatic signing under your
team. Because the app uses the Keychain Sharing capability, mint the development provisioning
profile once (flutter run can't, it doesn't pass -allowProvisioningUpdates):
flutter build macos --config-only
xcodebuild -workspace macos/Runner.xcworkspace -scheme Runner \
-configuration Debug -allowProvisioningUpdates buildThen flutter run -d macos works (the script prints these commands too). An unsigned/no-team
build still launches, but secure storage (GitHub/Linear/Google login) is unavailable until you
sign. Windows/Linux need no signing to run locally.
- Create a workspace, your top-level container for agents, repos, channels, and memory. The first workspace seeds a CEO agent that can hire and coordinate others.
- Add repositories, each agent conversation gets its own copy-on-write worktree branch, so agents work in parallel without ever touching your source checkout.
- Dispatch an agent, mention
@agentin a channel. It gets an isolated worktree, a prompt assembled from its role, persona, skills, and context, runs in a capability-gated sandbox, and streams its thinking and output back in real time. - Review and merge, when the agent finishes it opens a pull request. Review the diff and merge, all without leaving the app.
Every conversation runs in one of three modes (chat, plan, or review), each
gating the system prompt, whether the agent can write files, and which tools it can reach.
Tip
The whole surface (agents, review, the code graph, memory, and ticketing) is exposed over an MCP / JSON-RPC server. Point any MCP client at it and drive Control Center the same way the app drives itself.
| Resource | What's there |
|---|---|
| usectrl.dev/manual | The full manual: tutorials, guides, concepts, and reference |
| Quick start | Zero to your first dispatched agent in five minutes |
| ARCH.md | Architecture, layering, and the technology stack |
| GLOSSARY.md | The ubiquitous-language glossary for the domain |
Flutter (desktop), Riverpod, Drift (SQLite with FTS5 + vector search), go_router, a token-based Material 3 base theme under the in-repo cc_ui design system, dio (GitHub, Linear & Google Calendar), tree-sitter, on-device Whisper transcription with speaker diarization, and an MCP / JSON-RPC tool server. See ARCH.md for the full picture.