Features
A tour of the interface
- Brain card at the top of the sidebar — the chief controller; expand it to see its sessions.
- Session list — click to chat; the landing page goes straight to the most recent session. Under the composer: live context usage, and (when the endpoint supports it) per-session model selection and access-mode switching between read-only and workspace-write.
- Nodes page (
/nodes) — three views: a live topology (manager → machines → nodes, heartbeat edges), the node list (start / stop / restart / logs, plus the New node wizard), and the machine directory for hosts that joined through a node agent. - Runs page (
/runs) — every dispatched run across all workspaces, filterable by workspace and state, newest first. - Skills page — what each workspace has installed (version = workspace git HEAD).
- Cost page — spend detail, per-workspace and per-model breakdown.
- Bell — in-app notifications: offline machine, abnormal node, budget breaker, finished brain dispatch.
- ⋮ menu — skills / archived / cost / audit / password, the language switcher (English ⇄ 中文) and the GitHub link.
Chat
Multi-turn conversation with streaming output, tool-call cards, and inline question/authorization answers. Concurrent sessions are serial within a session and parallel across sessions, with git commit locks and surfaced conflicts.
Nodes
Adding a node: nodes page → New node → name and workspace path; ports, gateway keys and
DSH_HOME are allocated for you. Two shapes:
- Container worker (isolated) — runs in a container image (
hellodac/dac-node:<version>). - Host process (whole-machine capability) — runs on the host with a risk warning and audit; its dependencies install into its own directory, never the global npm.
Every node row carries a Native GUI card: one SSH tunnel command (the key stays on your machine) plus a one-click open of the node's native UI. Local nodes (loopback endpoints) skip the tunnel — one click opens the native UI directly.
Each node's DSH version is pinned against a version matrix; the nodes page shows the configured version plus drift state, and one click aligns it.
Skills
A skill is a .skills/<name>/SKILL.md file inside a workspace. The skills page lists
them per workspace; each agent reads its own workspace's skills.
Scheduled runs
Unattended runs are configured through the scheduler API: a schedule, a target node and a task description. Repeated failures disable the schedule instead of burning budget, and brain dispatch stays behind the daily budget breaker.