You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
khive ships a single MCP request tool over stdio. Agents drive it; humans get no
window into what the agents are doing without scraping the DB by hand. As the
plugin set grows (kg, gtd, future comm), as agent swarms drive PRs against
the graph (#69), and as self-correction (#68) needs human-overrideable surfaces,
the lack of a frontend becomes the bottleneck.
This issue tracks the khive frontend — Next.js-based dashboard product —
positioned as the primary observability + control surface for the kg/gtd/swarm
ecosystem.
Primary use cases
1. Swarm telemetry
The use case that crystallized this issue (Ocean, 2026-05-19): when running
agent swarms (gap-analyst → expander → polisher → gap-analyst), we want to see:
Data source: GTD task records + (eventually) khive-events event stream (ADR-038).
Without 038 the frontend is limited to current-state queries; with 038 it
becomes a real-time telemetry surface (projections over the event log).
2. KG explorer
Entity browser by kind/domain/status/properties
Edge inspector — pick an entity, see its neighborhood with relation labels
Path finder — shortest path between two concepts
Density heatmap by domain (which areas are dense vs sparse)
Diff view — what changed in the last N events (depends on ADR-038)
3. GTD board
Kanban: inbox / next / waiting / active / done / cancelled
Per-assignee swimlanes (one column per agent role + a "humans" lane)
Triggered by the unimpl-adr-sweep show's swarm test (2026-05-19) — the
question "can we visualize what just happened" had no answer because there's
no frontend yet
Motivation
khive ships a single MCP
requesttool over stdio. Agents drive it; humans get nowindow into what the agents are doing without scraping the DB by hand. As the
plugin set grows (
kg,gtd, futurecomm), as agent swarms drive PRs againstthe graph (#69), and as self-correction (#68) needs human-overrideable surfaces,
the lack of a frontend becomes the bottleneck.
This issue tracks the khive frontend — Next.js-based dashboard product —
positioned as the primary observability + control surface for the kg/gtd/swarm
ecosystem.
Primary use cases
1. Swarm telemetry
The use case that crystallized this issue (Ocean, 2026-05-19): when running
agent swarms (
gap-analyst → expander → polisher → gap-analyst), we want to see:tags=["from:X"]anddepends_onchainsData source: GTD task records + (eventually)
khive-eventsevent stream (ADR-038).Without 038 the frontend is limited to current-state queries; with 038 it
becomes a real-time telemetry surface (projections over the event log).
2. KG explorer
3. GTD board
4. Gap inventory + frontier ranking visualizer
gap_inventory.mdartifactsassign(assignee=expander)5. Event stream (depends on #38)
6. PR review surface (depends on #69)
mainbranches7. Plugin marketplace (depends on #19)
kg,gtd; eventuallycomm, custom)Architecture
The HTTP layer is a thin wrapper — every endpoint maps to one or a few
requestDSL ops. The frontend never bypasses pack semantics.
Build phases
Phase 0 — design + scaffolding
crates/khive-http/web/orproducts/khive-dashboard/khive-httpcrate exposing/api/request(REST wrapper over the DSL)/kg/entities)Phase 1 — read-only observability
/swarm(the use case that drove this issue)/kgbrowser + edge inspector/tasksboard/gapsviewerPhase 2 — action surfaces
/tasksbecomes interactive)/gaps/pluginsPhase 3 — agent control plane
Phase 4 — event-driven UX (depends on #38)
Phase 5 — PR review + kg.github (depends on #69)
Open design questions
Mirror khive-mcp's existing approach.
with polling, migrate to WS when feat(marketplace): kg plugin — 4 workflow skills, researcher agent, 11-verb MCP surface #38 lands.
v1 is a standalone web app.
local browser storage? Defer until phase 2.
Dependencies on other issues
So Phase 0-1 is unblocked today — read-only views of the existing KG and
GTD state are buildable without any other issue landing.
Out of scope (for this issue)
Refs
feat(marketplace): kg plugin — 4 workflow skills, researcher agent, 11-verb MCP surface #38 (events surface), DX: link verb rejects entity names — 5 ingestion agents hit the same UUID-as-name error in one session #65/MCP display: default to short IDs + YYYY/MM/DD dates; --verbose for full fidelity #66 (DX), Pack design: communication + schedule (events, reminders, time-triggers) #67 (comm pack), Self-correction mechanism for the kg swarm — preventing noise amplification in the gap→expand→polish loop #68 (self-correction),
Agent-driven PR workflow on top of kg-versioning: autonomous mutators commit, branch, open PRs, merge #69 (agent PRs)
question "can we visualize what just happened" had no answer because there's
no frontend yet