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 |
|---|---|
| π€ Lucius 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.
git clone https://github.com/lionelresnik/cursor-command-center.git ~/cursor-command-center
cd ~/cursor-command-center
./sync.shThat's it! The sync script will:
- Set up data directories at
~/.command-center/ - Install the global plugin (enables Lucius in all Cursor windows, including Agents Window "Home" chats)
- Detect existing workspaces β if you have
.code-workspacefiles, it offers to import them - Create your first workspace β if no existing workspaces found, launches the setup wizard
If you already have .code-workspace files you created manually, sync.sh will find them and ask:
Found 3 existing Cursor workspace(s):
β my-project (/Users/you/Projects/my-project.code-workspace)
β frontend (/Users/you/Workspaces/frontend.code-workspace)
β backend (/Users/you/Code/backend.code-workspace)
Importing adds Command Center to your workspaces so you get:
β’ Task tracking, todos, and standups in the sidebar
β’ Lucius agent with full context of your work
β’ Your code stays exactly where it is (no files moved)
? Import all 3 workspace(s)? [Y/n]: y
No data is lost β your code stays where it is. We just add ~/.command-center/ to your workspace for sidebar access.
./cc open # Show menu
./cc open backend # Open specific workspace
./cc open --last # Re-open last workspaceIn any Cursor window, talk to your AI assistant naturally β no @ required. Say lu, lucius, or use /lucius:
lu good morning
lucius show my todos
/lucius standup
lu what did I work on yesterday?
Note: All Lucius features are built-in (todos, standups, personalization, task tracking, PR linking, easter eggs). You can also use slash commands like
/standup,/todos, and/helpfor quick access.
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:
cd ~/cursor-command-center
git pull
./sync.shWhat sync.sh does:
- β
Syncs rules, skills, agents to
~/.command-center/.cursor/ - β
Updates global plugin at
~/.cursor/plugins/local/command-center/ - β Initializes data directories (task-history/, docs/, standups/, daily-log/)
- β Fixes workspace file paths
- β First run: detects existing workspaces and offers to import them
- β First run: launches setup wizard if no workspaces found
Partial sync options:
./sync.sh --plugin # Developer only: sync from local plugin repo
./sync.sh --data # Only initialize data files
./sync.sh --workspaces # Only fix workspace filesImport existing workspaces anytime:
./cc import-workspace ~/path/to/workspace.code-workspace # Import specific file
./cc import-workspace --scan # Scan and select| 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 β Lucius 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 Lucius
β βββ frontend/
β βββ backend/
β βββ shared/
β
βββ docs/ # Reference docs (by workspace) β auto-updated by Lucius
β βββ 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 (Lucius, task tracking, standups, etc.)
βββ skills/ # Lucius 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 Lucius 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, say 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
