A black, one-page, fully offline localhost dashboard for observing AI-agent workflows: goal-based constellations (a Hermes run and an independent Pi run), typed handoff edges (spawn vs trigger), official runtime marks, per-session harness + active skills, and a click-to-zoom focus on any constellation.
Paste this prompt:
Install and launch the Agent Workflow Observatory on my machine:
clone https://github.com/animepics/agent-dashboard, run ./agent-dashboard
from the clone, and give me the local URL it prints. It is a localhost-only
static dashboard; keep the server running.
npx github:animepics/agent-dashboard./agent-dashboardEither way the dashboard comes up on http://127.0.0.1:4173/
(or the next free port), bound to localhost only.
This repo ships an agent skill at skills/agent-dashboard/SKILL.md.
Install it into Claude Code / Codex / compatible harnesses:
npx skills add animepics/agent-dashboardAfter that, asking your agent to "open the agent dashboard" makes it
call ./agent-dashboard (cloning first if needed) and hand you the URL.
- Goal constellations — each connected graph is one goal, captioned in small gray English text; click a boundary to smoothly zoom into that constellation, click again to return to the overview.
- Honest edges — solid = proven spawn (parent session), dashed = trigger (transcript evidence). Independent runs are never linked.
- Lineage on every node —
ORDER › HERMES › CLAUDE › SUB. - Harness + skills — each session names its harness
(
oh-my-hermes,oh-my-opencode,oh-my-pi,codex-cli, ...) and its loaded skills in the inspector. - Supported runtimes marquee — Gemini CLI, Qwen Code, opencode, Aider, Cline, Goose, Crush, Roo Code, Kilo Code.
- Vertical / horizontal layouts, a designed mobile vertical rail,
and
prefers-reduced-motionsupport throughout.
The graph renders an observed TraceDocument, not baked-in data. Drop
a trace.json in the directory you launch from and the dashboard
renders your observation instead of the bundled sample (which is
clearly labeled demo trace · example observation):
cd my-workspace # contains trace.json
agent-dashboard # serves your trace at /trace.jsonagent-dashboard --scan # scan + serve in one command
pnpm scan # writes trace.json from your local stores
pnpm scan public/trace.json # for the dev serverThe scanner reads only what actually exists on your machine:
~/.claude/projects, ~/.codex/sessions, ~/.senpi/agent/sessions,
~/.local/share/opencode/opencode.db, and ~/.hermes/state.db. It emits
observed sessions grouped into work units, with models and usage from
store metadata, skills only from tool-call evidence, harnesses only when
a store proves them, and handoff edges only from parent records or
trigger evidence. Nothing is assumed; absent stores are skipped.
Relationship inference is automatic. Native parent fields from Claude
subagent, Codex, Hermes, and OpenCode stores produce solid spawn edges.
For cross-runtime launches, the scanner accepts only structured,
completed shell tool-calls using tested new-session forms (codex exec
or claude -p / --print, and hermes chat). Exactly one launch and
one child session must agree on runtime, working directory, and the
recorded call/result time span; that produces a dashed trigger edge.
Missing results, resume commands, unsupported commands, and ambiguous
candidates remain unlinked.
Accepted links merge workspaces into one work unit, while independent
sessions in the same directory may share a workspace boundary without
receiving a relationship edge. The four-node display cap retains
complete ancestor chains. Users do not configure IDs or maintain a
relationship file.
The document is validated with Zod at the boundary
(TraceDocumentSchema in src/workflow.ts). Harness, model, and
skill identifiers are open-world strings — oh-my-*, third-party
skill packs, personal harnesses, anything a scanner actually observes
in your local session stores (see RESEARCH.md for the per-runtime
source-of-truth table). A malformed or missing file falls back to the
sample.
pnpm install
pnpm dev # dev server on http://127.0.0.1:5173
pnpm test # vitest
pnpm lint # biome
pnpm typecheck # strict tsc
pnpm build # production build to dist/Design decisions live in DESIGN.md; research and source
citations live in RESEARCH.md. Without trace.json the
graph renders clearly labeled deterministic sample telemetry; --scan
replaces it with a timestamped local observation.
See CONTRIBUTING.md. Security reports: SECURITY.md. Licensed under the MIT License.