agents-control-tower
v0.1.0
Published
Launch, watch, and command your Cursor agents from one terminal
Maintainers
Readme
The Tower Is Watching
You launched a Cursor cloud agent 20 minutes ago. Did it finish? Did it open a PR? Did it crash?
Your options right now:
- Open cursor.com, find the agents page, scroll, click, read
- Check your email for a notification that may or may not come
- Hope for the best
agents-control-tower is a retro terminal dashboard that connects to the Cursor Cloud Agents API and shows you everything in one screen. Launch new agents, send follow-up instructions, stop runaway agents, delete finished ones. All without leaving your terminal.
npx agents-control-towerOne command. The tower lights up.
The Dashboard
Running agents pulse amber. Done agents link to their PR. Errors glow red.
What's Different
| | Cursor web dashboard | Conduit | SwarmClaw | agents-control-tower | |---|---|---|---|---| | Cursor-native | yes | no | no | yes | | Terminal UI | no | yes | no | yes | | Launch agents | no | no | partial | yes | | Follow-up / stop / delete | no | no | no | yes | | Local agent hooks | no | no | no | Phase 2 | | Retro ASCII aesthetic | no | no | no | yes | | One command install | n/a | yes | no | yes |
What You Can Do
| Key | Action | |
|-----|--------|-|
| n | Launch a new cloud agent | Pick repo, write prompt, choose model |
| f | Send follow-up | Give a running agent new instructions |
| s | Stop an agent | Kill it mid-run |
| d | Delete an agent | Remove permanently |
| o | Open in browser | Jump to the PR or agent URL |
| enter | View details | Full conversation, metadata, status |
| ↑↓ / jk | Navigate | Move between agents |
| r | Refresh | Force sync with Cursor API |
| c | Reconfigure | Re-run setup wizard |
The dashboard polls every 5 seconds. Scroll through agents with arrow keys, view full agent messages with scrollable detail view.
Install
Run directly with npx (nothing to install):
npx agents-control-towerOr install globally for a shorter command:
npm install -g agents-control-tower
control-towerBoth agents-control-tower and control-tower work after global install.
First run asks for your Cursor API key. Grab one from cursor.com/dashboard - Integrations. Saved to ~/.agents-control-tower/config.json.
Or pass it as an env var:
CURSOR_API_KEY=sk-... control-towerHow It Works
| Source | What | How | |--------|------|-----| | Cursor Cloud API | List, launch, stop, delete agents. Read conversations | REST, polled every 5s | | Cursor Hooks (coming) | Local IDE sessions, file edits, shell commands | File-based event stream |
graph LR
A[Cursor Cloud API] -->|poll 5s| B[State Store]
C[Cursor Hooks] -->|file watcher| B
B --> D[Ink TUI]Tech Stack
| | | |---|---| | | TUI framework | | | Type safety | | | Runtime | | | Bundler | | | Tests |
Screens
Launch wizard - 3 steps: pick repo (with fuzzy filter), write the task prompt, select model and launch.
Agent detail - repo, branch, PR link, the prompt you gave it, and the full agent response with scroll.
Follow-up - send new instructions to a running agent without leaving the terminal.
Stop / Delete - inline confirmation. Press s or d, then y.
Keyboard Map
DASHBOARD DETAIL VIEW
────────────────────────── ──────────────────────────
n launch new agent esc back to dashboard
↑ / k move up f send follow-up
↓ / j move down s stop agent
enter open detail d delete agent
s stop selected o open PR / URL
d delete selected ↑↓ scroll message
r force refresh
q quit LAUNCH FLOW
──────────────────────────
GLOBAL ↑↓ navigate options
────────────────────────── / filter repos
ctrl+c quit immediately enter select / confirm
c reconfigure esc cancel / go backContributing
Contributions welcome. See CONTRIBUTING.md for setup.
Author
If this helped you, star the repo, open an issue if something breaks.
