BETA In open beta. Install live. Lock $5/mo for your first 12 months. See pricing →
Docs / Concepts

Dashboard

The Hydrate dashboard runs locally at http://localhost:<port>/. The port is auto-picked on first run and written to ~/.hydrate/server.port. Open it with hydrate dashboard or paste the URL yourself. It reads the same SQLite file the daemon writes to; nothing leaves the machine.

Pages: Home (live cockpit) · Displacement · Orchestration · Fatigue · Facts · Chunks · Dehydrate · Handovers · Files · Skills · Settings · Help.

The dashboard during a real 7-minute session (recorded on Hydrate v0.6.7 with Claude Opus 4.8): the terminal drives Claude Code on the left, the live dashboard updates on the right. Click to play.

Home

The default landing is a five-section live cockpit composed from project rollups, in-flight orchestrations, and the day's token usage. It updates in real time via Server-Sent Events while sessions are running.

The SSE channel is fanned out by an in-memory broadcaster with a per-subscriber buffer cap; a slow tab loses its events instead of slowing the whole stream. Each event carries a small HTML fragment that the page swaps into place via HTMX, so the dashboard does not need a client-side state model. Per-row fact updates use indexed FactByID lookups (rather than scanning the full fact list per event), keeping update latency flat as the project's fact count grows.

Home page of the Hydrate dashboard

Settings: tabbed configuration

Two tabs. Current settings shows what's configured on this machine (licence tier, storage paths, LLM provider, enterprise hooks). Customise is a script-builder: pick options in the form and the page emits a shell script for macOS / Linux / Windows that you copy and run yourself. The dashboard never changes settings on its own; you always run the generated script.

Current settings tab

The Customise tab surfaces the knobs that aren't visible elsewhere: context-injection mode (full / economy / turbo), tool-output guard threshold, daemon auto-start, spawn rate limits, and UI notification preferences. Generated as exports to your shell rc (or SetEnvironmentVariable on Windows), framed by # >>> hydrate config >>> markers so re-runs cleanly replace the previous block.

Settings → Customise tab: the script builder

Orchestration: three tabs

Live shows current orchestrations and their pane states, streamed live. Build orchestration is a form that creates a tmux session with one window per agent: pick a name, working directory, and per-terminal agent (Claude Code / Codex / shell) + model. Save / load configurations to localStorage; the generated script also registers the layout via hydrate orchestrator set so it shows up in your orchestrator state. Customise env is the orchestrator-specific equivalent of the settings script-builder.

Orchestration live view Orchestration build form

Facts

A force-directed graph of the facts Hydrate has learned. Filter by project, area, time window, or pinned state. Use the dashboard to audit drift and prune stale entries; facts you never re-touch are candidates for removal.

Facts force-directed graph

Chunks new in v0.5.0

An explorer for the chunker's output on any distilled session. Pick a project, then a session, and the page renders the ranked chunks the rollup pipeline built: the same content that ends up in /hydrate-last briefings. Useful when a briefing feels wrong: you can see exactly what the chunker kept, what it dropped, and where a fact you expected to survive landed in the rank order. Sessions without chunks show an empty-state hint; the Recent Sessions card on Home cross-links straight into this page.

Chunks explorer: ranked chunker output for a distilled session

Dehydrate new in v0.5.0

A three-tab Tools page wrapping the hydrate dehydrate pipeline. File mode points at a markdown file on disk and shows the rewriter's before / after with byte counts. Text mode is a paste-in box with a density slider (compact / standard / verbose). Settings exposes the same knobs the CLI accepts. The rewriter runs entirely on the deterministic-NLP pipeline introduced in v0.5.0: zero LLM calls, reproducible output, and an honest reduction display that explains when small inputs cannot compress further.

Dehydrate Tools page: File / Text / Settings tabs

Handovers new in v0.6.0

Browse the per-project handover archive written by /hydrate-distill. A two-pane layout: the left rail lists every project that has at least one entry in .hydrate/handovers/, sorted by most-recent archive first with name, entry count, and a relative-age badge. The right pane shows entries for the selected project (timestamp, size, first H1) with a viewer that toggles between server-rendered HTML (goldmark with GitHub-flavoured tables) and the raw markdown source. A Reveal-in-Finder button on each entry opens the file in the platform file manager.

Handovers: project list, entry list, rendered viewer with Reveal-in-Finder

Files renamed and restructured in v0.6.0

Formerly Wiki. The page now leads with a tree browser that mirrors the actual source layout (cmd/, internal/, etc.), with the internal files/ prefix and .md extension stripped, so you see cmd/hydrate/main.go rather than files/cmd/hydrate/main.go.md. Clicking any node renders the curated per-file page inline (Purpose, API, Callers, Tests, Invariants, Configuration, Dependencies, See also). The project-level prose pages (00-overview through 06-configuration) collapse into a small Generated overview section at the top of the tree, closed by default. Every page header and every source chip carries a Reveal-in-Finder button; the source viewer renders .md as HTML and everything else as plain text, with path validation against the project root.

Files page: tree browser mirroring source layout, curated per-file notes inline

Displacement

A per-session view of where your context budget actually went: what was injected by Hydrate, what came from CLAUDE.md and tool output, what the LLM produced, and how that mix evolved as the session ran. The timeline view makes it obvious when a hook, an MCP tool burst, or a CLAUDE.md re-read displaced the working context you actually wanted in the window.

Displacement view: per-session breakdown of context budget over time

Fatigue

Aggregate signal counts pointing at sessions or projects under repeated context pressure: max token utilisation, distinct category counts, re-read penalty totals. Designed to make "this project keeps eating its window" visible at a glance rather than requiring a per-session forensic dig. No fact bodies, no transcripts, only aggregate telemetry already collected for other panes.

Fatigue: aggregate session-pressure signals

Skills

Tool-call sequences your past selves repeat across sessions, mined by hydrate skill-mine. The dashboard surfaces every pattern that fires in at least 3 distinct sessions, sorted by frequency. Hit Draft to have the LLM generate a skill markdown from the pattern's sample prompts; Install copies the resulting file into Claude Code's skills directory (global or repo-scoped depending on project-dominance heuristics).

Skills page: mined workflow patterns

Skill mining is local; no LLM call unless you click Draft. Patterns also surface synthetic prompts (skill loaders, slash commands) which are filtered automatically.

Help: Reference and Builders

The in-product help page has two tabs. Reference covers the patterns that don't show up elsewhere (distill / clear / hydrate-last cycle, Opus-to-Sonnet handoff, auto-compact behaviour, slash commands, parallel-worker pattern) plus a complete catalogue of every CLI command grouped by purpose. Builders hosts eight task builders (Initialise a project, Dehydrate docs, Add facts & canon, Hydration packs, Backup & restore, Team git sync, Skill mining, and Narrative), each generating a shell script you copy and run.

Help → Builders tab

Where the data comes from

  • ~/.hydrate/data.db: Hydrate's SQLite store (facts, canon, sessions, retrievals).
  • ~/.claude/projects/*/*.jsonl: Claude Code session transcripts; skill-mining walks these.
  • ~/.codex/sessions/*: Codex rollouts (when present).

The dashboard is an embedded single-page app served by the Hydrate daemon. No build step, no framework, no network calls; everything runs against the local SQLite.