Your AI-Powered Multi-Repo Development Hub
A central hub for managing AI-assisted development across multiple repositories with Cursor.
Cursor-Command-Center.mp4
| Feature | Description |
|---|---|
| π€ @lu AI Assistant | Full-featured AI assistant with todos, standups, personalization, task tracking |
| π Super-fast @Codebase | All your repos indexed together for instant AI search |
| π Project Groups | Organize repos into contexts (Backend, Frontend, etc.) |
| π Deep Scanning | Finds nested repos (5 levels deep) |
| π Repo Status | See git status across all repos at a glance |
| π Knowledge Base | Task history + docs at ~/.command-center/ β auto-updated as you work |
| π PR Auto-Linking | PRs automatically linked to task files |
| πΊοΈ Dependency Graph | Visualize service architecture (no tokens!) |
| π Quick Re-open | Jump back to your last workspace instantly |
| β Todo List | Persistent todos with priorities, workspace tagging, ticket linking (#PROJ-123) |
| π Standups | Cross-workspace daily/weekly summaries β always fresh, human-readable |
| π Personalization | Remembers your name, work schedule, greets you based on time of day |
| π¦ Export/Import | Backup and transfer your full setup (including todos + standups) |
| π Auto-Doc Updates | Findings from investigations auto-saved to docs/ with confidence levels |
| π PR Merge Detection | Detects merged PRs and offers to switch to main + pull |
Real example: A typical "find and fix across repos" task went from ~15 prompts to 3.
| Platform | Support |
|---|---|
| macOS | β Full support |
| Linux | β Full support |
| Windows |
Note: This project uses bash scripts. Windows users should run it inside WSL (recommended) or Git Bash.
# Clone the repo
git clone https://github.com/lionelresnik/cursor-command-center.git
# Run setup
cd cursor-command-center
./setup.shNote: All @lu / @lucius AI assistant features are built-in (todos, standups, personalization, task tracking, PR linking, easter eggs).
The wizard walks you through everything:
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Directory Browser β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β ls - List directories here β
β cd <dir> - Go to directory β
β select - β Pick repos from this directory β
β done - β Finish this project group β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π /Users/you/Projects
browse> select
Found 5 repos in /Users/you/Projects:
1) β api-service
2) β web-frontend
3) β mobile-app
4) β shared-utils
5) β legacy-code
Commands: 1,3,5 (select) | all | none | except 1,2 | confirm | cancel
select> except 5 # Select all EXCEPT repo 5
select> confirm
π Final Selection (4 repos):
β api-service
β web-frontend
β mobile-app
β shared-utils
? Confirm and create project? [Y/n]: y
β Added 4 repos
π‘ Pro tips:
- Type just numbers:
5,10,15to toggle specific repos- Use
except 5,10to select all EXCEPT those- Scans 5 levels deep (finds nested repos like
company/projects/...)- Workspace names: letters, numbers, hyphens, underscores only (no spaces)
./open.shSelect a project to open:
1) all (all projects combined)
2) none (command center only)
3) backend (5 repos)
4) frontend (3 repos)
5) β Add new project group...
6) β Cancel
? Enter number: 3
βΆ Opening backend workspace...
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π‘ Tip: Use @Codebase in your prompts to search all repos at once! β
β β
β Example: "@Codebase where is the auth logic?" β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Already have Command Center installed? Get the latest features without recreating workspaces:
cd cursor-command-center
git pull
./sync.shWhat sync.sh does:
- β Cleans up stale duplicate directories from old installs
- β Syncs assets (easter egg art, etc.)
- β Initializes new data files (profile.json, session-state.json, standups/)
- β Fixes workspace files (e.g., tilde path issues)
- β Works for existing setups β no need to recreate workspaces
Partial sync options:
./sync.sh --plugin # Developer only: sync from local plugin repo into CLI's .cursor/
./sync.sh --data # Only initialize data files
./sync.sh --workspaces # Only fix workspace files| Command | Description |
|---|---|
./cc open |
Open workspace menu |
./cc open --last |
Re-open last workspace |
./cc status |
Check git status across repos |
./cc graph |
Generate service dependency graph |
./cc add |
Add repos to a project |
./cc remove |
Remove repos from a project |
./cc rename <old> <new> |
Rename a workspace |
./cc todo |
Manage your persistent todo list |
./cc todo add <desc> |
Add a todo (with -w workspace, -p priority) |
./cc todo start [n] |
Move item to In Progress |
./cc todo done [n] |
Mark item as done |
./cc todo next |
Show what's next |
./cc standup |
Generate today's standup |
./cc standup weekly |
Generate weekly recap |
./cc standup view |
View most recent standup |
./cc export |
Backup configuration |
./cc import <file> |
Restore from backup |
./cc manage |
Rescan, regenerate workspaces |
./cc help |
Show all commands |
./open.sh # Show menu
./open.sh backend # Open 'backend' directly
./open.sh --last # Re-open last workspace (fastest!)./status.sh # All repos
./status.sh backend # Just backend reposπ Repository Status
backend:
β api-service (main)
β auth-service (main) - 3 uncommitted
β db-migrations (main) - β 2 behind
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Total: 3 repos checked
./cc add # Interactive: pick workspace, browse, select reposSelect a workspace to add repos to:
1) backend (5 repos)
2) frontend (3 repos)
? Enter number: 1
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
β π Directory Browser β
β ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ£
β ls - List directories here β
β cd <dir> - Enter a directory β
β select - β Pick repos from this dir β
β done - β Finish adding repos β
βββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
π /Users/you/Projects
browse> select
Found 8 repos:
1) β api-service
2) β shared-utils
3) auth-service (already in backend)
...
select> confirm
β Added 2 repos to backend
β contexts/backend.repos (7 repos)
β workspaces/backend.code-workspace
β workspaces/all.code-workspace
You can also create new project groups via ./open.sh β "β Add new project group..."
./cc remove # Interactive repo removalSelect a project:
1) backend
2) frontend
? Enter number: 1
Repos in backend (5 total):
1) β api-service
2) β auth-service
3) β db-migrations
4) β old-monolith (will be removed)
5) β shared-utils
Commands: toggle 1,3,5 | save | cancel
remove> save
β Kept 4 repos, removed 1
./cc rename mobile mobile-app # Direct rename
./cc rename # Interactive (shows menu)Available workspaces:
1) mobile
2) backend
3) frontend
? Select workspace to rename (number): 1
? New name for 'mobile': mobile-app
β contexts/mobile.repos β mobile-app.repos
β contexts/mobile.dirs β mobile-app.dirs
β workspaces/mobile.code-workspace β mobile-app.code-workspace
β task-history/mobile/ β mobile-app/
β docs/mobile/ β mobile-app/
β Renamed 'mobile' β 'mobile-app'
./cc graph # Current workspace
./cc graph backend # Specific workspace
./cc graph --open # Generate and open in browserGenerates a visual service dependency graph by parsing:
*.tffiles - Terraform (auto-detects AWS/GCP/Azure)docker-compose.yml- Services, databases, Redis, RabbitMQserverless.yml/template.yaml- Lambda, SQS, SNS, DynamoDBgo.mod/package.json- Go and Node.js services
Output: ~/.command-center/docs/[workspace]/architecture.html (interactive) + .md (Mermaid)
Example output:
βββββββββββββββββββββββ
β π³ Docker Services β
β βββββββββββββββββ β
β β api-gateway β β
β βββββββββ¬ββββββββ β
ββββββββββββΌβββββββββββ
β
βββββββββΌββββββββ¬βββββββββββ
βΌ βΌ βΌ β
βββββββ βββββββ βββββββ β
β AWS β β GCP β βAzureβ β
β ποΈ β β ποΈ β β ποΈ β β
βββββββ βββββββ βββββββ β
π‘ Zero tokens! Uses static file parsing, no AI calls.
When working on a task, PRs are automatically tracked:
- You ask the AI to create a PR β URL captured and added to task file
- You mention a PR (paste link or say "opened PR #123") β Added to task file
Task file gets updated:
## π¦ Pull Requests
| Repo | PR | Description | Status |
|------|-----|-------------|--------|
| api-gateway | [#142](url) | Add retry logic | π Open |
| auth-service | [#87](url) | Update validation | β
Merged |Understanding when to use @Codebase will save you time AND tokens (money!):
| Use Case | Example Prompt |
|---|---|
| Find code location | @Codebase where is authentication implemented? |
| Understand patterns | @Codebase how do we handle errors across services? |
| Find all usages | @Codebase find all places that call UserService |
| Cross-repo search | @Codebase which repos import the shared utils? |
| Architecture questions | @Codebase how do the frontend and backend communicate? |
| Use Case | Why Skip |
|---|---|
| Working in one file | AI already sees your open file |
| General questions | "What's a good naming convention?" - no codebase needed |
| After finding code | Once you've located it, chat directly about that file |
| Simple edits | "Add a try-catch here" - context is already there |
β Expensive: "@Codebase add a new endpoint to the API"
(Searches entire codebase unnecessarily)
β
Cheaper: "@Codebase where are API endpoints defined?"
Then: "Add a new endpoint here" (in the found file)
Rule of thumb: Use @Codebase to find, then regular chat to modify.
cursor-command-center/
βββ cc # Main command wrapper (./cc open, ./cc status, etc.)
βββ setup.sh # First-time setup wizard
βββ sync.sh # Sync/upgrade existing installs
βββ open.sh # Workspace launcher
βββ status.sh # Git status checker
βββ manage.sh # Add/remove repos, export/import
βββ graph.sh # Service dependency graph (legacy β @lu now generates natively)
βββ todo.sh # Persistent todo manager
βββ standup.sh # Daily/weekly standup generator
βββ help.sh # Central help command
βββ start.sh # Quick start (opens 'all')
β
βββ workspaces/ # Generated .code-workspace files
βββ contexts/ # Project group definitions
β
βββ task-history/ # Work logs (by workspace) β auto-created by @lu
β βββ frontend/
β βββ backend/
β βββ shared/
β
βββ docs/ # Reference docs (by workspace) β auto-updated by @lu
β βββ frontend/
β βββ backend/
β βββ shared/
β
βββ todos.md # Persistent todo list (In Progress / Pending / Done)
βββ standups/ # Daily and weekly standup summaries
βββ assets/ # Static assets (easter egg art, etc.)
β
βββ .cursor/
βββ rules/ # Always-on AI rules (@lu, task tracking, standups, etc.)
βββ skills/ # @lu capabilities (workspace, graph, todos, standups, etc.)
Your local knowledge base is organized by workspace and grows automatically as you work:
task-history/ # Work logs (what you did on specific tasks)
βββ frontend/
β βββ PROJ-123-fix-auth.md
βββ backend/
β βββ PROJ-456-add-api.md
βββ shared/ # Cross-workspace tasks
βββ general-refactor.md
docs/ # Reference guides (general knowledge)
βββ frontend/
β βββ api-integration.md
βββ backend/
β βββ deployment-guide.md
βββ shared/
βββ setup-guide.md
All content is local-only (gitignored) β safe for internal info.
| Type | Purpose | Example | Auto-created? |
|---|---|---|---|
task-history/ |
Work logs, decisions | "What I did on ticket X" | β Yes |
docs/ |
Reference guides, findings | "How service Y works" | β Yes |
todos.md |
Persistent todo list | "What's next" | β Yes |
standups/ |
Standup summaries | "What did I do this week" | β Yes |
When @lu investigates something by reading source code, it automatically documents the finding in docs/[workspace]/ β not in the task file. Findings are tagged with confidence levels:
- (no tag) β β Confirmed β verified in source code or tested
> β οΈ Assumedβ inferred, not yet verified> π Investigatingβ partially known, contradictory evidence
Assumed findings are automatically upgraded to confirmed when later verified.
Backup: ./cc export includes your knowledge base, todos, and standups
Reference: @task-history "What did we decide about auth?"
| Tip | Description |
|---|---|
| Smaller = Faster | Use project-specific workspaces for faster @Codebase |
| First open is slow | Indexing takes a few minutes, then it's instant |
| Install cursor CLI | Cmd+Shift+P β "Install cursor command" |
| Pretty UI | Install gum for nicer menus |
For a marketplace plugin with the same features (and more) installed directly through Cursor, check out Command Center:
The plugin provides the same capabilities as this CLI, installed through the Cursor Marketplace with no git cloning required. If both are installed, prefer the plugin β it integrates deeper with Cursor's tooling.
Migrating from CLI to plugin? Once you install the plugin from the Marketplace, use @lu migrate from CLI and Lucius will guide you through removing CLI files while preserving all your data (task-history/, docs/, todos.md, standups/).
This repo is designed to be shared:
| Share β | Local Only β |
|---|---|
| Scripts (*.sh) | profile.json |
| AI rules | workspaces/ |
| README files | contexts/*.repos |
task-history/**/*.md |
|
docs/**/*.md |
|
todos.md |
|
standups/ |
Each user runs ./setup.sh to configure for their system.
Transfer your setup: ./cc export β ./cc import
| Content | Included |
|---|---|
| Configuration | β Always |
| Workspace definitions | β Always |
| Todos | β Always (if exists) |
| Standups | β Always (if exists) |
| Task history | β Optional (prompted) |
| Docs | β Optional (prompted) |
Moving to a new machine? Import auto-detects different paths:
./cc import backup.tar.gz
β Detected paths from a different machine:
Old path: /Users/olduser/Projects
? Enter your projects directory: ~/code
Remapping paths:
/Users/olduser/Projects β /Users/newuser/code
β Remapped 15 repo paths
Lionel M. Resnik
MIT License - Use it, share it, improve it!
Made with β€οΈ for developers who juggle many repos
