Connecting your existing repos
This dashboard is a hub. Your other project repos report *into* it: when a Claude Code session (or you) finishes work in a connected repo, the ai-ops-dashboard CLI writes a log entry, a pending item, or a postmortem into this dashboard's data files, and the dashboard shows them on the next page load.
Same machine only โ both repos live on one filesystem. There is no API, server, or polling.
Three steps: install the CLI once, connect each repo once, then report work through the CLI.
> Every command below is verified end-to-end against this codebase. If a step doesn't behave as written, that's a bug โ please flag it.
0. Install the CLI (do this once)
The ai-ops-dashboard CLI is not published to npm, so npx ai-ops-dashboard โฆ will NOT work from your other repos (npm can't find the package). Make the command available everywhere by linking this dashboard repo once:
cd /path/to/ai-ops-dashboard # this dashboard repo
npm link # installs a global `ai-ops-dashboard` command
ai-ops-dashboard --version # -> ai-ops-dashboard CLI v0.3.0 (schema 0.3)Prefer not to link globally? Call it by full path everywhere instead: node /path/to/ai-ops-dashboard/cli/ai-ops-dashboard.mjs <command>.
1. Connect each repo (once per repo)
From inside each project repo you want to report into the dashboard:
cd ~/code/their-saas
ai-ops-dashboard init --dashboard /path/to/ai-ops-dashboard --name "their-saas"This:
- creates
.ai-ops-dashboard-client/(config + a per-repoAGENTS.md) in the project repo, - writes/updates a managed
CLAUDE.mdblock at the repo root, so any Claude Code session there learns the dashboard exists and how to report, - registers the repo in the dashboard's
data/connected-repos.json(it then appears on the Repos tab).
Verify from the connected repo:
ai-ops-dashboard status # prints the resolved dashboard path + last write time2. Report work (per Claude Code session, or by hand)
Each Claude Code session in a connected repo automatically reads the CLAUDE.md that init wrote, so it already knows to route writes through the CLI. You โ or the session โ report work with:
# Log what you shipped -> dashboard docs/operator-log.md (Log tab)
ai-ops-dashboard log --why "..." --shipped "..." [--tags "a,b"] [--next "..."]
# Add / close a pending task -> dashboard data/pending.json (Pending tab)
ai-ops-dashboard pending add --title "..." --priority high
ai-ops-dashboard pending close <id>
# File a postmortem -> dashboard knowledge/postmortems/ (Postmortems tab)
ai-ops-dashboard postmortem --slug <slug> --severity p1Every entry is tagged with the repo's id, token-verified against connected-repos.json, and written atomically. The dashboard reads files on each request (no polling) โ reload the page to see new entries.
Prefer to brief a session explicitly? Paste this into its first message:
This repo reports into an AI Operations Dashboard (see .ai-ops-dashboard-client/config.json).
When you finish a unit of work, run:
ai-ops-dashboard log --why "<why>" --shipped "<what>"
and `ai-ops-dashboard pending add` / `ai-ops-dashboard postmortem` as appropriate.
Read .ai-ops-dashboard-client/AGENTS.md first. Do NOT edit the dashboard's app/ or components/.What flows into the dashboard
| Signal | Command | Lands in | Shows on | |---|---|---|---| | Operator log entry | ai-ops-dashboard log | docs/operator-log.md | Log tab | | Pending task | ai-ops-dashboard pending add / close | data/pending.json | Pending tab | | Postmortem | ai-ops-dashboard postmortem | knowledge/postmortems/ | Postmortems tab | | Connected-repo metadata | ai-ops-dashboard init / status | data/connected-repos.json | Repos tab |
Commit / build / deploy *activity* reporting is not wired in v0.3 โ the Activity tab shows the dashboard repo's own frozen git history, not the connected repos'.
Committing the writes
The CLI writes (and stages) the dashboard's data files but does not commit or push them. Commit them from the dashboard repo yourself:
cd /path/to/ai-ops-dashboard
git add -A && git commit -m "operator updates"Re-pointing / disconnecting
- Re-point a repo at a different dashboard (run from the connected repo):
ai-ops-dashboard link --dashboard /new/path. - Disconnect: delete
.ai-ops-dashboard-client/in the repo, and remove its entry from the dashboard'sdata/connected-repos.json.
Limits (v0.3 โ intentionally small)
- Same machine only. No remote write, no API, no daemon.
- No auto-commit in the dashboard. The CLI writes the data files; you commit them.
- No polling. Reload the dashboard to see new writes.
- One operator at a time. Concurrent writes to the same JSON file can race.
Troubleshooting
- `ai-ops-dashboard: command not found` โ you didn't
npm linkthe dashboard (or it was unlinked). Re-runnpm linkin the dashboard repo, or call it by fullnode .../cli/ai-ops-dashboard.mjspath. - `write token โฆ does not match` โ re-run
ai-ops-dashboard init --dashboard <path>from the repo, orai-ops-dashboard link --rotate-token. - `no .ai-ops-dashboard-client/config.json` โ the repo was never connected; run
init. - Writes succeed but a tab looks empty โ reload the page (no polling). If still empty, check the target JSON is valid.
For the full agent contract, read the dashboard's AGENTS.md and the per-repo .ai-ops-dashboard-client/AGENTS.md.