Skip to content
Dashboard

The board stays honest.

The Hub's web app, its MCP endpoint, and the CLI read the same state. "In progress" means an agent is working right now, not that someone forgot to move a card.

Detent Cloud demo board in dark mode with Todo, In Progress, Blocked, and Merging lanes; the sidebar and empty lanes are collapsed.
Detent Cloud board in a demo organization with synthetic issues. The sidebar and empty lanes are collapsed.
01 · What it shows

Live state, and the reason behind it.

Live counts

Running, queued, waiting, blocked, and completed over the last 48 hours, across every project in the organization.

Running agents

Which issue each agent has, how long it has been working, and what it is doing right now: dispatch, gate command, or Change Request.

Why something is stopped

The lane, plus the actual reason: dependency not ready, project paused, plan capacity reached, landing refused with its reason.

Token, budget, and rate limit

Live spend against your cap and the current rate-limit posture, so a run that is about to hit a wall is visible before it does.

Reports and activity

Reports, an activity feed, and saved Work views that show where work is accumulating and how long it sits in each lane.

Density and staleness

Compact, cozy, and comfy card densities, in the same Templ and HTMX shell on desktop and narrow screens.

The dashboard is also an API. Everything the browser renders is available as JSON. Dashboard and APIs →

02 · The lanes

Detent's configured delivery path.

The Hub's native board holds the lanes. GitHub issues can be imported into it; they are not the source of truth.

composed snapshot 2 working 1 held at gate
Todo 2
#1626 detent

feat(admission): surface pending proposals

#1619 detent

feat(health): surface stranded active work

In Progress 2
#1614 detent

chore(safety): guard dispatch capacity paths

agent working
#1611 detent

fix(scheduler): clean orphan cycle state

make check running
Human Review 1
#1585 detent

fix(orchestrator): add token progress brake

held at the gate
the detent,
released only by you
Rework 1
#1593 detent

fix(board): collapse staleness warnings

2 threads unresolved
Merging 1
#1628 detent

docs(cli): refresh version output example

rebased, CI watch
Done 3202
#1624 detent

test(project): relax watcher deadlock guard

merged, green

The six lanes shown come from Detent's own production configuration, not a fixed product state model; each workflow defines its own states. This is not a live board: the issue numbers and titles come from real merged work in digitaldrywood/detent, composed across the path for this illustration. The counts describe the illustration; 3202 is the all-time landed pull requests on that repository. Lanes for other kinds of work →

03 · Beyond the browser

Your own agent can read the board.

The Hub exposes its board, issues, changes, runners, and settings over MCP, and the CLI reads the same state.

from a runner or your laptop
$ detent state
   fleet and project state

 $ detent issue
   issue explanation reads

 $ detent report
   operations report export

Create a key in Settings › API & MCP and point your client at your organization's MCP endpoint. Your agent can file issues, read run history, and review changes.

API & MCP setup →
04 · Design rules

The same system this site is built in.

The dashboard's palette, type scale, and geometry are the ones you are reading right now. The marketing site imports the product's tokens instead of approximating them.

Four semantics, one accent

ok, warn, error, and info, plus teal for interactivity only. Never a fifth semantic, and never accent for status.

Hairlines, not shadows

1px borders carry every boundary. Card radius 6px, chip radius 4px, on a strict 4px spacing grid.

Mono means machine

State names, config, CLI output, and lane labels are set in Geist Mono because they are literal strings, not decoration.

One thing animates

A 6px pulsing dot per active agent, and the held card's ring. Reduced-motion turns both off.

Keep reading