Operator dashboard

AI Ops Dashboard

Where it all comes together

โš™ Tabs

Show or hide any dashboard tab.

How: Toggle tabs on/off and pick the default tab. Hidden tabs stay installed and can be turned back on anytime โ€” nothing is deleted.

Change the dashboard's color theme.

How: Pick any of the 8 themes โ€” your choice is saved in this browser only (it doesn't change the shared default).

Data updated 10/19/2018, 6:46 PM PDT
Rendered 6/20/2026, 12:16 AM PDT ยท auto-refresh 120s
โ† AI Operations Dashboard docsยทCHANGELOG.md

Changelog

All notable changes to AI Operations Dashboard will be documented in this file. The format follows Keep a Changelog and the project adheres to Semantic Versioning.

[Unreleased]

Added

  • Sprints panel (id: sprints) โ€” a dedicated sprint-progress board, split out of the Plan panel. The Plan tab is now roadmap-only (roadmap + sub-task ledger + decision log); the sprint board lives on its own tab. Brings the built-in panel count to 12: Overview, Plan, Sprints, Activity, Pending, Log, Postmortems, Usage, Scheduled Jobs, Repos, Docs, Skills.
  • In-app `/help` page โ€” the dashboard's own product guides now render in-app at /help (index) and /help/<slug>. Root docs (HANDBOOK, USAGE, AGENTS, README, CHANGELOG) are reachable at /help/<slug> too. A footer link "AI Operations Dashboard docs" โ†’ /help was added.

Changed

  • Schedule โ†’ Scheduled Jobs โ€” the tab/panel label is renamed "Scheduled Jobs". The panel id stays scheduled, the data file data/scheduled-jobs.json and the job names are unchanged.
  • Product guides moved `docs/` โ†’ `help/` โ€” the 9 product guides (getting-started, configuration, panels, custom-tabs, data-schemas, connecting-repos, deployment, upgrading, faq) now live in help/ and serve at /help. The operator's own docs/ (operator-log.md excluded) now drives the Docs tab; in this product repo it is empty by default.
  • Doc-page layout โ€” widened and left-aligned for more comfortable long-form reading.

The "custom tabs + Skills" release. v0.3 gave the dashboard a multi-repo surface; v0.4 makes the panel set itself extensible. Five panel archetypes, a generic CLI dispatcher, a visual /admin/add-tab wizard, a Claude-only Skills inventory panel, and a dashboard-level CLAUDE.md that orients every new Claude Code session before it does anything else.

Added

  • 5 panel archetypes โ€” list, timeline, metrics, folder, rest. Each lives under lib/panels/archetypes/<name>/ and ships with a loader, a default Component, a JSON schema, and a verb set (list โ†’ add | edit | close | remove; timeline โ†’ append; metrics โ†’ record; folder โ†’ new; rest โ†’ refresh). All custom panels are scaffolded from one of these โ€” no bespoke per-panel handlers.
  • `/admin/add-tab` visual wizard โ€” archetype โ†’ slug โ†’ label โ†’ fields โ†’ AI allow-list โ†’ review. On commit writes the panel component, appends the import + registration to ai-ops-dashboard.config.ts, registers the entry in .ai-ops-dashboard/manifest.json -> customPanels[], and seeds the data file. Idempotent on re-run.
  • `npx ai-ops-dashboard panel add` CLI โ€” same flow, no browser. Interactive or non-interactive via --fields name:type:required syntax.
  • Generic CLI dispatcher โ€” npx ai-ops-dashboard <slug> <verb> looks the slug up in customPanels[], finds the archetype, validates the verb against aiAllowedTasks, delegates to the matching archetype handler. Falls back to the existing top-level subcommands (log, pending, postmortem, etc.) when the slug isn't a custom panel.
  • Skills inventory panel (components/panels/skills-panel.tsx) โ€” Claude Code only, opt-in via ai.includeSkillsInventory: true. Read-only scan of ~/.claude/skills, ~/.claude/agents, ~/.claude/plugins, and declared MCP servers. Review mode exports the selection to ~/Downloads/ai-ops-dashboard-skills-inventory-<timestamp>.{json,md}. Silently drops out of the tab strip when ~/.claude/ doesn't exist at render time.
  • Dashboard-level `CLAUDE.md` โ€” top-level orientation file. Short pointer to AGENTS.md, must-read trio, canonical commands list, conventions cheatsheet. Auto-loaded by Claude Code at session boot.
  • `docs/custom-tabs.md` โ€” full archetype reference: shape per archetype, verb set, JSON schema, field-type table, allow-list conventions, debugging tips.
  • HANDBOOK Days 5 + 6 โ€” Day 5: scaffold a custom panel end-to-end. Day 6: enable + read + export the Skills inventory.
  • AGENTS.md ยง v0.4 โ€” contract for custom panels (the 5 archetypes, the customPanels[] schema, the registration triple, the dispatcher) and the Skills inventory panel (Claude-only gating, Review mode, the hard rule against AI-initiated deletions of ~/.claude/*).
  • `skills/ai-ops-dashboard-operator/SKILL.md` ยง 7 intent triggers โ€” natural-language phrases mapped to recipes: "add a custom tab" โ†’ .ai-ops-dashboard/recipes/add-custom-tab.md; "show me my Claude installations" / "remove these skills" โ†’ .ai-ops-dashboard/recipes/skills-inventory.md.
  • `ArchetypeName` + `CustomPanelEntry` exported types in lib/panels/types.ts.
  • `ai.includeSkillsInventory` optional field on AiOpsDashboardConfig.
  • Footer "Add a tab" link โ€” components/dashboard/footer.tsx gains a one-click entry into the wizard.

Changed

  • ai-ops-dashboard.config.ts now declares the ai object as a local before the config literal so the panels array can reference ai.includeSkillsInventory without a self-referential lookup. Skills panel imported + conditionally registered.
  • scripts/refresh-manifest.mjs now extracts customPanels[] from the .ai-ops-dashboard/custom-panels.json sidecar (written by the scaffolder), cross-checks against ai-ops-dashboard.config.ts for registration drift (emits registered: false on orphans), and emits a skillsEnabled boolean derived from the config. Manifest schema URL bumped to manifest-0.4.json. aiOpsDashboardVersion in the emitted manifest pinned to 0.4.0.
  • README roadmap: v0.4 marked shipped; v0.5 absorbs the static-export + SSE + Hosted Studio bundle that was on the v0.4 line; v0.6 broadens to "panel + archetype marketplace".

Not changed

  • All v0.3 connected-repo wiring works unchanged. Custom panels can be created from inside any connected repo via the same CLI dispatcher.
  • The 9 templates from v0.2 install cleanly. The Skills panel stays off by default โ€” existing installs see no surprise tab.

[0.3.0] โ€” 2026-06-02

The "one dashboard, many repos" release. v0.2 made it trivial to wire ONE repo into a dashboard; v0.3 turns the dashboard into a true multi-repo hub. New CLI, new customer-repo kit, new wizard step, new panel, new aggregation โ€” all backwards-compatible with v0.2 installs.

Added

  • `ai-ops-dashboard` CLI (cli/ai-ops-dashboard.mjs, exposed via the ai-ops-dashboard bin) โ€” Node CLI for the customer-repo side. Subcommands: init (create .ai-ops-dashboard-client/ kit + register repo with dashboard), link (re-issue write token), log (append operator-log entry), pending add | close, postmortem (write a new postmortem file), status (show dashboard wiring), refresh (re-fingerprint tokens). All writes atomic via .tmp + rename. Token-bound against data/connected-repos.json.
  • Customer-repo kit โ€” .ai-ops-dashboard-client/ directory that ai-ops-dashboard init drops into a connected repo: config.json (dashboard path, repo id, write token, emit-signals allowlist), AGENTS.md (Claude Code briefing for sessions in that repo), README.md (human summary), .gitignore (keeps the write token out of git). Schema versioned 0.3.
  • `/setup/connect` wizard step โ€” new step 7 (web + CLI). Captures connectedRepos (absolute paths, one per line), runInit (whether to shell ai-ops-dashboard init per path), and defaultEmitSignals (per-repo signal allowlist). Wired through app/api/setup/route.ts โ†’ lib/setup/apply.ts so both wizards converge on the same applier.
  • `SetupAnswers.connectedRepos / runInit / defaultEmitSignals` โ€” new fields on the wizard payload. The apply step validates each path, optionally spawns ai-ops-dashboard init, and falls back to registering a stub row in data/connected-repos.json when runInit is off.
  • `/repos` panel (components/panels/repos-panel.tsx) โ€” renders every row in data/connected-repos.json with last-write timestamp, write count, emit-signals chips, and pendingInit: true warnings for stub registrations awaiting their first ai-ops-dashboard init. Registered in the default ai-ops-dashboard.config.ts.
  • Multi-repo Activity aggregation โ€” the Activity panel folds external commits from each connected repo's commitsSnapshotPath into the heat map alongside the dashboard's own git log.
  • `docs/connecting-repos.md` โ€” full SOP: per-repo setup (wizard vs CLI), one-time Claude Code briefing prompt, troubleshooting (token mismatch, dashboard path moved, multiple machines), schema reference for data/connected-repos.json.
  • AGENTS.md + `skills/ai-ops-dashboard-operator/SKILL.md` updates โ€” top-level AGENTS.md now references the multi-repo contract; SKILL.md documents the CLI subcommands as the canonical write interface so Claude Code reaches for npx ai-ops-dashboard log instead of hand-editing JSON.

Changed

  • Setup wizard step count bumped from 6 โ†’ 7 (Welcome โ†’ Branding โ†’ Template โ†’ Panels โ†’ Data โ†’ AI โ†’ Connect โ†’ Review). Layout progress strip already supported 7 dots; the new step slots in between AI and Review without breaking deep links.
  • lib/setup/apply.{ts,mjs} SETUP_VERSION constant bumped to 0.3. Existing v0.2 installs continue to read fine โ€” the new fields are optional and default to no-op.
  • README roadmap re-numbered (the previous "v0.3 โ€” Hosted Studio" entry shifts to v0.5; the previous "v0.4 โ€” Marketplace" shifts to v0.6).
  • Setup layout footer now reads AI Operations Dashboard v0.3 โ€” first-run setup.

Not changed

  • All v0.2 templates still install cleanly. The Connect step is opt-in โ€” leaving it blank produces a single-repo dashboard identical to v0.2.
  • v0.2 dashboards upgrade to v0.3 by pulling the new code; data/connected-repos.json is created lazily on first wire-up.

[0.2.0] โ€” 2026-05-23

The "wires itself up" release. v0.1 sold a dashboard you had to configure by hand; v0.2 ships an interactive wizard, a richer template library, AI-agent integration, and a schema validator so buyers go from npm install to "my dashboard, my data" in under 5 minutes.

Added

  • `npm run setup` โ€” interactive CLI wizard (and matching /setup web route) that walks through product naming, theme pick, template selection, data seeding, optional AI-agent integration, and final review. Flips setupComplete: true on commit. Replaces the manual "edit ai-ops-dashboard.config.ts then read USAGE.md sections 4โ€“6" path.
  • 9 starter templates under templates/ (up from 3 example configs): AI project tracker, indie SaaS ops, personal OS, content publication ops, agency client tracker, open-source maintainer, research lab, freelance pipeline, dev journal. Each is a full ai-ops-dashboard.config.ts + seeded data files for that persona.
  • HANDBOOK.md โ€” new top-level "how AI Operations Dashboard thinks" doc. Mental model first, code references second. README + USAGE both link to it.
  • AI-agent integration โ€” new optional ai field on AiOpsDashboardConfig ({ enabled, lastRefreshedAt?, allowedTasks? }). When enabled, the wizard generates AGENTS.md + .ai-ops-dashboard/manifest.json + the ai-ops-dashboard-operator SKILL + a starter recipe library in .ai-ops-dashboard/recipes/ so any AI coding agent (Claude Code, Cursor, Aider) can read + write the dashboard's data files without re-discovering paths every session.
  • Schema validator โ€” npm run check:data validates every data file against its declared PanelSource.schema. Wired into prebuild so deploys block on malformed JSON / missing required fields.
  • Manifest refresh script โ€” npm run manifest:refresh rebuilds .ai-ops-dashboard/manifest.json from current panel sources[] declarations. Use after adding a new panel or changing a source path.
  • `AiOpsDashboardConfig.setupComplete` + `setupVersion` fields โ€” drive the wizard gate. When setupComplete: false, the dashboard short-circuits to /setup. setupVersion enables future "complete the new wizard steps" migration prompts without forcing a full re-onboarding.
  • `PanelSource.schema` field โ€” free-form type hint used by the manifest + the operator SKILL to validate writes before commit.

Changed

  • README Quick start is now 3 steps (npm install โ†’ npm run setup โ†’ npm run dev) instead of 2.
  • USAGE.md leads with a v0.2 Quick start callout pointing at HANDBOOK.md and npm run setup before the long-form walkthrough.
  • ai-ops-dashboard.config.ts ships with setupComplete: false so a fresh clone gates into the wizard on first npm run dev.

Removed

  • examples/ directory โ€” superseded by the richer templates/ library + the wizard's template picker. Migration: every config previously in examples/ exists as a template under the same persona name.

[0.1.0] โ€” 2026-05-18

Initial public release.

Added

  • Next.js 16 + Tailwind 4 base
  • Plugin-based panel architecture (PanelDefinition API)
  • 8 built-in panels: Overview, Plan, Activity, Pending, Log, Postmortems, Usage, Schedule
  • 4 data-source adapters: readJson, readMarkdown, walkMarkdown, readGitLog, fetchJson
  • 3 themes: dark (default), warm, paper
  • 3 deploy modes via AI_OPS_DASHBOARD_MODE env var: vercel (SSR), static (export), node
  • AI spend watchdog banner with configurable yellow/red thresholds
  • Generator scripts: freeze-commits.mjs, aggregate-usage.mjs, build-data.mjs, new-panel.mjs, watch-data.mjs
  • 3 example configs: ai-project-tracker, indie-product-ops, personal-os
  • Documentation: getting-started, configuration, panels, deployment, upgrading, FAQ
  • Sales materials: landing page, one-pager, headline variations, launch thread
  • Interactive HTML pitch deck (15 slides)

Changelog