Documentation

Desktop UI Reference

AgentHub Desktop is the local control surface for visible agent work. This reference maps the expected UI regions, states, and interactions so previews and screenshots can be evaluated consistently.

Layout Model

Desktop stays dense, readable, and work-focused. The primary layout is:

RegionPurposeExpected behavior
SidebarProjects, workspaces, recent runs, runtime shortcutsCompact rows, clear active state, no oversized marketing cards
Chat streamUser request, agent messages, tool state, approvalsStable layout while messages stream
Context railFiles, diff, artifacts, preview, terminalSwitchable panels with read-only defaults
ComposerPrompt, target runtime, approval mode, submit/cancelKeyboard-friendly, no layout jump
Status areaEdge, runtime, run state, syncSmall status indicators, not a noisy banner

The website hero mock follows the same model. It can compress content for presentation, but it must not invent a different product.

Run States

Use consistent language across Desktop, Web, docs, and screenshots:

StateMeaningUI rule
IdleNo active runComposer enabled, context remains visible
PreparingEdge is validating workspace/runtimeShow quiet progress, not a full-screen spinner
RunningRuntime is producing messages or tool eventsStream content without shifting side panels
Needs approvalRuntime requested write, shell, apply, or publish permissionRequire explicit user action
CompletedRun ended successfullyKeep transcript, diff, and artifacts reviewable
FailedRun ended with a recoverable errorShow code, safe message, and next action
CancelledUser or policy stopped the runKeep partial transcript and audit trail

Do not use browser focus outlines, selection boxes, or hover colors inside the static website mock that do not exist in Desktop. Mock interactions should feel like the product, not like raw DOM elements.

Workspace And Edge Selector

The workspace selector makes the execution boundary obvious:

  • show the selected workspace name without exposing private absolute paths in public screenshots;
  • show whether the connected Edge is local, remote, or unavailable;
  • explain blocked state through policy language, not generic failure text;
  • keep Local Edge loopback state distinct from Hub/Web session state.

If Desktop is connected to Local Edge, the UI may show local execution controls. If Web is open without an authorized Edge target, it must not display controls that imply direct local file access.

Runtime Picker

The runtime picker shows only configured or discoverable adapters:

RuntimeDisplay rule
MockSafe default for UI and event verification
Claude CodeUse the Claude Code mark, not a generic Anthropic mark
CodexUse the Codex/OpenAI-compatible mark configured by the product
OpenCodeUse the configured OpenCode mark
CustomUse a neutral adapter icon and explicit profile label

Unavailable runtimes remain visible only when that helps diagnosis. Their disabled state explains whether the CLI is missing, authentication is missing, or the adapter profile failed validation.

Diff And File Panels

Diff and file panels are review surfaces, not automatic write surfaces.

Required behaviors:

  • render changed files as read-only until the user approves an apply action;
  • show added, changed, deleted, and renamed files clearly;
  • keep long lines scrollable without breaking the page shell;
  • preserve syntax highlighting when available, but do not rely on color alone;
  • show generated artifacts separately from source diffs when possible.

Approval buttons use concise action labels: apply, reject, continue, ask, cancel. High-risk actions include a short reason or policy label.

Motion And Feedback

Desktop motion stays subtle:

  • no jumping hero text;
  • no heavy hover shadow on the mock window;
  • no rainbow/color strips unrelated to TokenDance Blue;
  • no flash from full-size mock to scaled mock after hydration;
  • respect prefers-reduced-motion.

Interactive previews can auto-play scenario changes, but transitions are state changes inside the mock, not layout reflow of the whole hero.

Screenshot QA

Before using a Desktop screenshot or mock on the public site, verify:

CheckPass condition
ThemeLight/dark follows site theme toggle if the mock is interactive
Languagezh/en mock copy changes with site language
Runtime logosClaude Code, Codex, OpenCode icons match configured sources
FocusNo unwanted blue DOM outline in hover/click states
DensityMock remains compact on desktop and mobile
PrivacyNo private paths, keys, tokens, emails, or host names

Related pages: Desktop Guide, Design System, and Troubleshooting.