Devplane

The workbench

A tour of Devplane's interface: the regions, a change's six views, the review, the inbox, the palette and the keys that matter.

One page served by the host on loopback, laid out like an editor. Nothing is fetched from the internet; no account.

devplane up           # in your browser
devplane up --window  # in its own window (the desktop app, or --features app)

? lists the keys bound where you are.

A change open in the workbench: the changes by project in the sidebar, the change as a document with its lifecycle, six views and the evidence cards

The regions

RegionWhat it holds
Title barwhere you are, the find box (⌘K / Ctrl+K), New change, sidebar and panel toggles
Activity barone icon per surface, each with a count (none at zero)
Sidebarthe current surface’s list
Editortabs of what you opened
Bottom panelActivity and Sight (⌘J)
Status barthe host connection, sessions working, projects, what needs you, the theme
SurfaceKeyWhat it lists
Inboxg iwhat needs a person, most urgent first, across every project
Changesg cevery change, grouped by project, with its state
Sessionsg bevery agent session on the machine, watched or driven
Specificationsg seach project’s spec folders, task counts and open questions
Ledgerg levery decision, and on whose authority it was made
Forgeg fopen GitHub issues and pull requests across your projects
Setupg ,this machine’s channels, and each repository’s devplane.toml read back

A click opens a preview tab (italic) that the next click replaces; double-click or Enter keeps it. Open tabs stay in this browser tab only. The address names what is showing, so a link or reload reopens it.

First run

With nothing set up, the workbench opens on Setup’s checklist: sessions already running, update checks, connect an agent, trust a repository, declare a check, the spec layout, and a first change. Each step reads what is true on this machine, so closing the window loses nothing. Any step can be skipped and brought back. A step that writes configuration shows the exact diff and writes only on Confirm. Trusting a repository needs the desktop window; a browser tab gives you the devplane project trust command instead.

A project with no gates says so wherever gates are shown — no gates declared — and offers Declare a check instead of Run gates.

A change

Open it from Changes, the palette, or a devplane://change/<id> link.

  • Header: title, state, and the actions that apply; the rest under More. Below it, the gate standing as a sentence (check exited zero against the working tree as it stands).
  • Actions: Review, Run gates, Offer as pull request (verified only); More holds Finish, Archive, Editor and Terminal.
  • A weakened check leads the header — 1 check weakened · verified — and hides the green sentence until read. While a weakened row is unseen, Review is the primary action and the offer is refused, with a button to each row. Files nobody opened are named beside the offer; they never refuse it.
  • Alt+1 … Alt+6 (⌥1 … ⌥6) switch the six views:
ViewWhat it shows
Overviewcards for gates, tasks, ledger and agent; the facts; the history
Tasksticked and seen-by-a-passing-check counts, requirements and the tasks citing them, spec drift with Tell the run / Accept what it saw
Reviewthe diff, below
Gatesevery gate run with its commands and exit codes, Run base checks, the certificate with Copy as markdown
Ledgerthis change’s decisions, filterable by authority
Agentthe latest run’s conversation, a composer to prompt it, Stop…, the files it wrote and commands it ran

What the states and standing mean: Verified done.

The review

The review: a skipped test listed first under checks weakened or changed, the file tree beside the diff

Every hunk of every file in one column against the merge base (uncommitted and untracked files included), with the file tree beside it. Each file’s header stays on screen while its hunks scroll: path, lines, role, test coverage, what it was asked for, and facts with the command to check each.

  • Checks weakened or changed come first (the kinds). The line that made a row carries ⚠ in the gutter. A row is read when its hunks are marked seen.
  • Then files in [review] roles order (path order without roles, and the view says so). By intent groups them by the run that wrote them; files nobody asked for get their own heading.
  • Formatting-only hunks are collapsed and counted. The tree counts unread hunks per file.
KeyDoes
j / knext / previous hunk, across files
n / pnext / previous file
smark the hunk seen
fstart a comment on the hunk
⌘Enter / Ctrl+Entersend the pending review
xexpand this file’s formatting-only hunks
vunified or side by side
1 / 2by risk / by intent
  • Seen is kept by the host, keyed by the hunk’s content: a hunk the agent rewrites is unread again. The CLI, the inbox and the offer read the same marks. Scrolling marks nothing.
  • Comments: press a line number (or f). Comments wait in a pending review and survive a reload. Send N comments sends them as one turn to the change’s agent, each with its path, line and the tree it was written against, and says whether the agent reads it now, after its turn, or was resumed for it. After the agent’s next turn each sent comment says whether its hunk changed.
  • devplane://review/<id> opens this view; the CLI is devplane change review <id> [--by intent].

The inbox

What needs you: the ranked list beside the item in full

Each key is printed on the control it presses; one that does not apply says why. The same keys work in the desktop app’s answer window.

KeyDoes
1–9choose that option (on a form, for the first unanswered question)
t · ⌘Enter / Ctrl+Entertype an answer · send it
a · dallow once · deny, for a permission Devplane holds
wa dialog the vendor owns: open its session, or copy its resume command
ssnooze until the session or change next reports activity (an hour for a pull request or issue)
o · ropen what the item is about · open the change’s review
ztake back an answer before it is sent, or bring a snoozed item back
  • An answer is held for 5 seconds before it reaches the agent, with a countdown; z takes it back with nothing sent or recorded. Answering another item sends the held one at once. Quitting the host cancels it, and the question is waiting again at the next start. devplane inbox answer sends at once.
  • Snoozed items leave the list and are counted at its foot, with list them and bring back.
  • The inbox badge, the status bar’s need you and the tray count are one number.

Sessions

Every session, watched or driven, in one grid; state counts are filters, grouped by project or state. What each state means: Watching sessions.

Every session in one grid, grouped by project

New change, the palette, the bottom panel

  • New change (Alt+N): projects, optional spec, title (also the branch), first prompt, agent, and worktree or in place. It shows each project’s preflight and every refusal before creating anything.
  • The palette (⌘K / Ctrl+K) finds changes, surfaces, actions and projects; > lists only actions; other text also searches every session’s tool calls, questions and errors. Over an inbox item or a change, its own actions come first.
  • Activity: every session’s events, newest first.
  • Sight: what this machine can and cannot see — vendors watched end to end, wired but unproved, only seen when Devplane starts them, and projects whose configuration cannot be read. An empty Sessions list is not proof that nothing runs.

Keys

KeyDoes
⌘K / Ctrl+Kcommand palette
?the keys bound here
Escclose the palette, help or new-change form
Alt+Nnew change
⌘B / Ctrl+Bshow or hide the sidebar
⌘J / Ctrl+Jshow or hide the bottom panel
Alt+W · Alt+] · Alt+[close tab · next tab · previous tab
j k / ↓ ↑ · Entermove through a list · open
g g · Gfirst · last
rreview, on a change

No key fires while you type in a field, except Esc and the ⌘/Ctrl chords.

The window

devplane up --window adds desktop notifications when an agent asks or gives up, a tray count, and a global shortcut (⌘⇧Space; [app] shortcut) that shows the top item over whatever you are doing. Install: The window.

A permission or question can be answered from its notification:

macOS (installed app)Windows (installed app)Linux
Allow / Deny on a permissionyesyeswhere the notification service reports actions
A question’s optionsup to 4up to 5up to 3
A typed replyyesyesno; a click opens the answer window
Withdrawn when answered elsewhereyesyesyes

A build run from source, a Windows build run from target/, or a desktop without a notification service gets a plain notification with no actions. devplane doctor says which you have. devplane up without a window notifies through the system notifier, plainly.

Something wrong or out of date? Edit this page.