See your agent runs
as a graph.

Your coding agent already wrote down everything it did — rungraph turns those transcripts into an interactive graph, retroactively, for every session still on your disk, with no hooks, no setup, and nothing leaving your machine.

Star on GitHub
a real run, staged on a demo repo — click around j/k walk · f fit · / find · esc clear

Runs, not conversations.

Agent sessions stopped being conversations a while ago. They're runs: an orchestrator spawning subagents, tools failing and retrying, a human occasionally saying no. rungraph draws that structure, so a 4,000-line transcript becomes something you can actually read.

Subagents fan out and return. Parallel work gets side-by-side lanes, and every agent returns to the turn that collected its result.
Tool nodes say what ran. Not just which tool — and consecutive calls collapse into one node, so a test loop doesn't become a hairball.
The moment you said no is a node. Interventions are first-class, and the edge that follows carries the reason.

The graph has an opinion.

A graph that renders everything with equal weight points at nothing. rungraph derives signals from the run and puts them in a strip above the canvas — and on a clean run that strip costs zero height, because a marker you can't trust is worse than no marker.

hover or tap a signal — the run lights up. dimmed, never hidden.

Ask your agent
about a run.

The dashboard is for you; the MCP server is for your agent. They're two ends of one loop: you ask in your own terminal, the answer arrives there — your model, your session — and the graph you have open lights up the exact nodes it's describing.

This exchange is real — captured from the MCP loop running against the run above, then tightened for length.

A run can leave the machine —
as a file, on your terms.

rungraph export writes a .rungraph bundle you send over whatever you already trust. The inventory prints every time — and the export blocks outright when it finds a high-confidence secret.


    

Built for agents too.

Everything the UI can do, a coding agent can do over the CLI — JSON on stdout, logs on stderr, exit codes 0/1/2, no prompts anywhere. Paste this into a prompt and the agent can self-serve.

npx rungraph list --json
# {"runs":[{"runId":"claude-code:…","kind":"session","title":"Fix flaky auth test",…}]}

npx rungraph graph <runId> --json
# the full Graph IR: nodes, edges, groups — and derived signals
# {"irVersion":1,"nodes":[…],"signals":[{"kind":"retry-storm","severity":"high",…}]}

npx rungraph find <runId> token.js --json
# narrow before you pull — a big graph is 20k+ tokens of context

npx rungraph serve --no-open
# {"url":"http://127.0.0.1:4321"} — same data over HTTP + SSE live tail

The same surface is available as MCP tools — rungraph mcp --install. The IR is versioned and vendor-neutral, with two adapters today: Claude Code and Codex CLI. Schema in SCHEMA.md.