Multi-Repo Workspace Management for Cursor
A Cursor plugin that brings order to multi-repo chaos. Workspace management, task tracking, PR linking, git status, architecture graphs, todo lists, standups, workspace knowledge base, missions & crews, and a static dashboard β all from chat.
Meet Lucius (@lucius or @lu for short) β your AI assistant who knows where everything is, how it all connects, and what needs doing next.
Cursor.Command.Center.Plugin.mp4
- Deterministic todo store β
cc todoCLI +todos.jsonsource of truth;todos.mdis now a generated view. Faster, token-cheap, no dropped items. Existingtodos.mdauto-migrates. - ~80% fewer always-on rule tokens β heavy lifecycle rules are now trigger-scoped, with a thin
session-lifecycledispatcher keeping greeting/logging intact. - 18 new tests for the todo store.
capture_pr_urlnow appends to a JSON list β multiple PRs per session preserveddetect_workspacelogs a warning when a repo path matches multiple workspaces- 14 tests added for
cc_session.py(tests/test_cc_session.py) - CONTRIBUTING.md added
- Easter egg moved into
lucius.md(frees a rule slot; behaviour unchanged)
- Install script auto-resets dirty plugin clones on update (local edits in the install folder only)
- README troubleshooting for blocked
git pullduring updates - Script executable bits fixed for
cc_session.py,cc_lock.py,install-mission-tools.sh
- Hardened session hooks β Python JSON parsing; context files moved to
~/.command-center/(no project git leaks) - Missions opt-in at session start β no dashboard regen or mission scan until roles are seeded
- Prerequisites documented; CHANGELOG.md added
See CHANGELOG.md for full history.
This release merges the open feature branches into main:
| Merged work | Highlights |
|---|---|
| Audit & token reduction (#3) | Leaner @lu usage guidance, consolidated rules, improved session-start context |
| Daily log (#2) | Real-time work logging integrated with standups |
| Docs & markdown style (#1) | Confluence-style doc templates, graph delegation, CLI migration skill |
| Missions & crews (new) | Multi-role missions, manual handoffs, behavior modes, static dashboard |
New capabilities:
- Workspace knowledge base β infra, databases, logs, services, runbooks under
docs/[workspace]/ @lu onboardβ gap report for what's documented vs missing- Missions β
@lu init missions,@lu new mission,@lu next role,@lu complete role - Static dashboard β
@lu dashboardβ open~/.command-center/dashboard/index.htmlin Simple Browser - Migrate from CLI β
@lu migrate from CLIpreserves all~/.command-center/data - Preview dashboard β open
assets/dashboard-preview.htmlin Simple Browser to see the UI with mock data
| Feature | Description |
|---|---|
| Workspace Management | Create and manage multi-repo .code-workspace files from chat |
| Task Tracking | Auto-creates task files with optional Jira ticket linking |
| PR Auto-Linking | Captures PR URLs from gh pr create and adds them to task files |
| Git Status | Check status across all repos, auto-pull clean repos that are behind |
| Architecture Graphs | Visualize service dependencies from code β zero AI tokens |
| Todo List | Persistent todos across workspaces with priorities and smart queries |
| Standups | Daily and weekly standup summaries from todos and task history |
| Daily Recap | Time-aware greetings, session recaps, and standup prompts after idle |
| Daily Log | Session work log integrated with standups and recaps |
| Knowledge Base | Workspace docs β infra, databases, logs, services, runbooks |
| Onboarding | Gap report for undocumented workspace knowledge (@lu onboard) |
| Personalization | Remembers your name, preferences, and work schedule across sessions |
| Export/Import | Backup and restore workspaces, todos, docs, missions, roles, crews |
| Missions & Crews | Multi-role missions, manual handoffs, agent behavior modes, artifacts |
| Static Dashboard | Visual mission board β no server (@lu dashboard) |
| CLI Migration | Move from cursor-command-center CLI without losing data |
| Cross-Repo Context | @Codebase searches all repos in your workspace at once |
| Tool | Required | Used for |
|---|---|---|
| Cursor | Yes | Plugin host |
| git | Yes | Workspace repos, status, PR workflow |
| python3 | Yes | Session hooks, dashboard generator, file locks |
| gh | Recommended | PR creation/linking (gh pr create) |
| jq | Optional | Not required β hooks use Python for JSON |
Cursor loads local plugins from ~/.cursor/plugins/local/<name>/. The plugin name is command-center (see .cursor-plugin/plugin.json).
curl -fsSL https://raw.githubusercontent.com/lionelresnik/cursor-command-center-plugin/main/scripts/install-plugin.sh | bashOr from a clone:
git clone https://github.com/lionelresnik/cursor-command-center-plugin.git
cd cursor-command-center-plugin
./scripts/install-plugin.shgit clone https://github.com/lionelresnik/cursor-command-center-plugin.git \
~/.cursor/plugins/local/command-center
chmod +x ~/.cursor/plugins/local/command-center/scripts/*.sh
chmod +x ~/.cursor/plugins/local/command-center/scripts/cc_session.py \
~/.cursor/plugins/local/command-center/scripts/cc_lock.py
~/.cursor/plugins/local/command-center/scripts/install-mission-tools.sh- Reload Cursor β
Cmd+Shift+Pβ Developer: Reload Window - Enable plugin β Cursor Settings β Plugins β enable command-center
- Verify β type
@lucius helpin chat
The install script automatically seeds roles, crews, and dashboard tools into ~/.command-center/ (idempotent β skips files you already have).
Optional: @lu init demo missions for sample missions on the dashboard; @lu remove demo missions to clean them up.
Your data (~/.command-center/) is separate from the plugin β updates do not touch todos, task history, or docs.
~/.cursor/plugins/local/command-center/scripts/install-plugin.sh
# or: git -C ~/.cursor/plugins/local/command-center pullThen Reload Window again.
If an old install has edited or untracked files, git pull may abort. Your ~/.command-center/ data is safe β only the plugin copy under ~/.cursor/plugins/local/command-center/ is affected.
Fix (recommended): re-run the install script β it resets a dirty clone automatically:
~/.cursor/plugins/local/command-center/scripts/install-plugin.shOr manually:
cd ~/.cursor/plugins/local/command-center
git fetch origin
git reset --hard origin/main
git clean -fd
chmod +x scripts/*.sh scripts/cc_session.py scripts/cc_lock.py
./scripts/install-mission-tools.shThen Reload Window.
If you hack on the repo locally:
rm -rf ~/.cursor/plugins/local/command-center
ln -s ~/Projects/cursor-command-center-plugin ~/.cursor/plugins/local/command-centerReload Cursor after each change to rules/skills/agents.
- Install the plugin β see Install above (seeds roles, crews, dashboard tools automatically)
- Type
@lucius helpto see everything available (or@lufor short) - Follow the intro β Lucius will ask your name and remember it
- Type
@lucius setup a new workspaceand follow the guided setup - Optional:
@lu init demo missionsβ sample missions for the dashboard - Start working β task tracking, PR linking, and todo management happen automatically
Lucius is your Command Center AI assistant. Type @lucius or @lu in chat and talk naturally:
@lucius set up a new workspace called backend with repos from ~/Projects
@lu check git status across all my repos
@lucius generate an architecture graph for the backend workspace
@lu what's next on my todo list?
@lucius add "fix auth bug" to my todos as high priority
@lu mark the auth task as done
@lu add server and api-gateway to my platform workspace
@lucius export my config for backup
@lu what PRs are open for this task?
@lucius what's left to do?
@lu have I forgotten something?
@lu standup
@lucius weekly recap
@lu init missions
@lu init demo missions
@lu remove demo missions
@lu new mission "Fix auth bug" crew:backend-crew
@lu next role
@lu dashboard
@lu onboard
@lu migrate from CLI
Lucius remembers your name and work schedule, greets you based on time of day, recaps what you were working on, and offers standup summaries at the start of each day or week.
Create, open, and manage multi-repo .code-workspace files. Add or remove repos, rename workspaces, rescan directories, and regenerate workspace files β all conversationally.
A persistent todo list that lives across sessions and workspaces:
- Two sources: Todos you add (
#user) and todos Lucius detects (#lucius) - Smart queries: "What's next?", "What's left?", "Have I forgotten something?"
- Auto-completion: Lucius auto-marks his own detected todos when resolved
- Priorities: High, medium, low with smart ordering
- Cross-workspace: All todos in one place, tagged by workspace
- Auto-creates task files in
task-history/[workspace]/when you start working - Jira ticket linking is optional β skip it and add later if discovered
- PRs are automatically captured from
gh pr createandgit pushoutput - Task files track PRs across multiple repos with status
Generate Mermaid dependency diagrams by analyzing go.mod, package.json, Terraform, Docker Compose, and serverless configs. Zero AI tokens β pure static analysis.
Check status across all repos in a workspace. See which repos are behind, have uncommitted changes, or need attention. Auto-pull repos that are clean and behind.
When you return after 4+ hours:
Good morning, Lionel. Here's where you left off:
Last session: backend workspace, worked on auth service refactor
Open todos: 3 pending, 1 in progress
Next up: Fix retry logic in API gateway (high priority)
Want to continue where you left off, or start something new?
On new days, Lucius offers to generate a standup summary. On the first day of your work week, he offers a weekly recap instead. Standups pull from your todos, task history, and previous standups to build a done/doing/next format β saved to ~/.command-center/standups/.
Your work week is configurable (MonβFri or SunβThu) and stored in your profile.
Structured docs under ~/.command-center/docs/[workspace]/:
- Infrastructure β cloud resources, networking, environments
- Databases β connections, schemas, ownership
- Logs & monitoring β where to find logs, dashboards
- Services β architecture overviews per service
- Runbooks β operational procedures
Findings from tasks are captured automatically (auto-doc-updates, infrastructure-knowledge). Use @lu onboard for a gap report of what's documented vs missing.
Optional multi-role workflows for work that spans sessions (implement β review β document):
- Install the plugin β roles/crews/dashboard tools are seeded automatically (or run
@lu init missionsto repair) @lu init demo missionsβ optional sample missions for the board@lu new mission "β¦" crew:backend-crew behavior:ask_meβ create a mission@lu next roleβ get the role prompt bundle (then use the regular agent for coding)@lu complete roleβ save artifact; mission pauses for review (default)@lu dashboardβ regenerate and open the static board in Simple Browser
Remove sample data anytime: @lu remove demo missions (keeps roles, crews, and your real missions).
Agent behavior modes (per mission):
| Mode | Behavior |
|---|---|
assume_and_document |
Continue; prefix guesses with ASSUMPTION: |
ask_me |
Up to 3 blocking QUESTION: lines β waits for you |
async |
Log ASYNC_QUESTION: at end; keeps going |
Ad-hoc work still uses task-history/ β missions are optional.
Plain Cursor Plan mode hands off via Build on the plan markdown (.cursor/plans/). CC missions are file-based β they do not auto-read Plan mode output or chat context.
| Step | What to do |
|---|---|
| After Plan mode | Save decisions to the task file (Analysis, Key Decisions) β Lucius offers this when exiting Plan mode |
| Create mission | @lu new mission "β¦" crew:backend-crew ticket:AUTH-123 β links via ticket + missionId in task frontmatter |
| Start work | @lu next role β role prompt should include linked task file sections (not full chat history) |
If the plan never reached the task file, the mission only gets the one-line goal unless you use @lu checkpoint or save the plan first. For simple fixes, use Cursor Build directly; use missions when you want crew handoffs across sessions.
Plan-first with crews: run a planning step into the task file (or a prior mission artifact), then start a backend crew mission that reads that file.
Backup and restore workspaces, repo lists, todos, profile, task history, docs, standups, roles, crews, and missions. Export format v2.0. Supports path remapping when switching machines.
@lu loads workspace context β great for standups, todos, missions, and cross-repo questions. For pure coding (debugging, reviews, refactors), use the regular agent to save tokens. See rules/when-to-use-lu.mdc.
If you used the cursor-command-center CLI, say @lu migrate from CLI. The plugin reads the same ~/.command-center/ directory β no data migration needed.
| Command | What it does |
|---|---|
/help |
Show all capabilities |
/setup-workspace |
Create a new multi-repo workspace |
/check-status |
Git status across all repos |
/todos |
Show and manage your todo list |
/standup |
Generate a daily or weekly standup summary |
/mission |
Mission status, crews, and next-role guidance |
/dashboard |
Regenerate static mission board |
| Skill | What it does |
|---|---|
workspace-manager |
Create, open, add/remove repos from workspaces |
graph-generator |
Generate architecture dependency diagrams (delegates static analysis) |
repo-status |
Check git status, auto-pull clean repos |
todo-manager |
Persistent todo list with priorities and queries |
export-import |
Backup and restore configurations (v2.0 incl. missions) |
standup-generator |
Daily/weekly standup summaries from todos, task history, daily log |
onboard |
Workspace knowledge gap inventory |
mission-manager |
Missions, crews, roles β new/next/complete role, handoff gates |
migrate-from-cli |
Transition from CLI to plugin without data loss |
| Rule | What it does |
|---|---|
task-lifecycle |
Task files, Jira detection, PR linking, proactive updates |
auto-doc-updates |
Capture findings into workspace docs |
infrastructure-knowledge |
Route infra/DB/logs findings to specialized docs |
markdown-style |
Confluence-style doc formatting |
context-preservation |
Save in-progress investigation state before context fills |
daily-log |
Real-time session work logging |
daily-recap |
Time-aware greetings, recaps, standup prompts |
mission-lifecycle |
Mission vs task files, handoff gates |
assumption-capture |
ASSUMPTION: lines from missions β docs |
when-to-use-lu |
When @lu saves tokens vs regular agent |
personalization |
Name, preferences, work schedule |
commit-style |
Commit message conventions |
naming-conventions |
.code-workspace naming (contextual) |
easter-egg |
The Fox Protocol |
| Hook | What it does |
|---|---|
| Session start | Workspace detection, profile, todos, idle recap β writes ~/.command-center/cc-context.json |
| After shell execution | Captures PR URLs to ~/.command-center/cc-last-pr.txt |
| Session end | Saves session state for next recap |
Use @Codebase for |
Skip @Codebase for |
|---|---|
| Finding code across repos | Working in a single file |
| Understanding patterns | General questions |
| Cross-repo search | After you've found the code |
| Architecture questions | Simple edits |
Rule of thumb: Use @Codebase to find, then regular chat to modify.
All Command Center data lives in ~/.command-center/:
| Path | Contents |
|---|---|
workspaces/ |
.code-workspace files |
contexts/ |
Repo lists per workspace |
task-history/ |
Work logs organized by workspace |
docs/ |
Reference guides organized by workspace |
docs/[workspace]/_index.md |
Optional doc index (title + summary per file) |
standups/ |
Daily and weekly standup summaries |
daily-log/ |
Session work logs (when used) |
todos.json |
Persistent todo list β source of truth (managed by cc todo) |
todos.md |
Human-readable todo view β generated from todos.json; do not hand-edit |
cc-context.json |
Session context (workspace, idle hours, todos counts) β written by session-start hook |
cc-last-pr.txt |
Temp PR URL from shell hook (cleared on session end) |
locks/ |
File locks for concurrent todo/mission writes |
logs/ |
Session debug log (timestamp parse failures, etc.) |
roles/ |
Mission role prompts |
crews/ |
Ordered role lists for crews |
missions/ |
Mission JSON, artifacts, checkpoints |
dashboard/index.html |
Generated static board (@lu dashboard) |
profile.json |
Your name and preferences |
session-state.json |
Last session timestamp for recap detection |
command-center/
βββ rules/ # AI guidance (contextual + always-on)
β βββ task-lifecycle.mdc # Task files, PR linking, proactive updates
β βββ auto-doc-updates.mdc # Capture findings to docs
β βββ infrastructure-knowledge.mdc
β βββ markdown-style.mdc # Confluence-style doc format
β βββ context-preservation.mdc
β βββ daily-log.mdc
β βββ daily-recap.mdc
β βββ mission-lifecycle.mdc
β βββ assumption-capture.mdc
β βββ when-to-use-lu.mdc
β βββ personalization.mdc
β βββ commit-style.mdc
β βββ naming-conventions.mdc
β βββ easter-egg.mdc
βββ skills/
β βββ workspace-manager/
β βββ graph-generator/
β βββ repo-status/
β βββ todo-manager/
β βββ standup-generator/
β βββ onboard/
β βββ mission-manager/
β βββ migrate-from-cli/
β βββ export-import/
βββ templates/ # Default roles, crews, demo missions
β βββ roles/
β βββ crews/
β βββ demo-missions/
βββ agents/
β βββ lucius.md # @lucius and @lu
βββ commands/
β βββ help.md
β βββ setup-workspace.md
β βββ check-status.md
β βββ todos.md
β βββ standup.md
β βββ mission.md
β βββ dashboard.md
βββ assets/
β βββ logo.svg
β βββ overview.png
β βββ dashboard-preview.html
β βββ dashboard-template.html
βββ hooks/
β βββ hooks.json
βββ scripts/
βββ cc # CLI dispatcher (cc todo ...)
βββ cc_todos.py # Todo store (JSON source of truth + md view)
βββ cc_session.py # Session hooks (JSON-safe)
βββ cc_lock.py # File locking for todos/missions
βββ session-start.sh
βββ session-end.sh
βββ after-shell-execution.sh
βββ generate-dashboard.py
βββ generate-dashboard.sh
βββ install-mission-tools.sh
βββ seed-demo-missions.sh
βββ remove-demo-missions.sh
βββ install-plugin.sh # Install/update into ~/.cursor/plugins/local/
| Tool | Use when |
|---|---|
| cursor-command-center CLI | Terminal menus, ./cc workspace graph β same ~/.command-center/ data |
| Mission Control | Optional team server with web UI, MCP, and shared DB (separate project) |
Say @lu migrate from CLI when switching from CLI to this plugin.
Found a bug or have a feature request?
- GitHub Issues: Open an issue
- Email: lionel.resnik@outlook.com
Lionel M. Resnik
MIT License β Use it, share it, improve it!
Made for developers who juggle many repos β meet Lucius, your command center AI
