Web dashboard
The dashboard (apps/web) is a React SPA served by the control plane. It talks to /api/* and subscribes to the EventHub WebSocket for live updates.
Chat
- Composer — markdown, file attachments,
@projects/<slug>and@reports/<plugin>mentions that resolve like file references, persona picker, model selector, stop button. - Transcript — streaming replies, collapsible tool-call rows, plugin cards, embedded previews, image/video/3D results.
- Personas — choose a personality per new thread; persona is locked at thread create and injected as a system line on every prompt. Built-ins: Assistant, Designer, Political expert, Software designer. Manage your own on the Config page (Other CLIs covers
ob-persona).
Workspace views (Views drawer)
| Tab | What it shows |
|---|---|
| Reports | Product report queue — read, filter, mark done/wontfix/reopen, copy @reports/<slug>. |
| Media | Media vault albums per thread with immutable copies. |
| Hardware | Desktop disk, RAM, CPU against the container limits; warning at 80%, error at 90%. |
| Projects | Registered projects; create opens a stepper, @projects mentions refresh on projects.changed. |
Main navigation tabs
- Apps — one entry per enabled plugin dashboard page: pick a plugin's tab and interact with its live UI or polled cards (mobile renders a phone-style home screen).
Config pages
- Providers — chat model auth (
opencode auth loginstate) with an inline login terminal; merged into Config as the first tab. - Keys — per-user vault secrets.
- Chat — default chat model and thinking effort.
- System1 provider — decision-model endpoint (Laya / Clef / Jev) for desktop navigation.
- Media — image/video/3D model selection.
- Voice — STT/TTS provider, key, model, voice, language (Voice).
- OpenViking — embedding + VLM config (OpenViking setup).
- Personas — CRUD for your personas.
- Cron — scheduled jobs moved here from the workspace Views drawer: add/edit/pause/run jobs and read their results (Agent threads).
- Backup — local/cloud backups, restore, factory reset.
- Plugins — marketplace browser, installed plugins, version picker with dev badges, re-install/update/remove, policy row (Plugins).
- Admin (role admin) — app settings (media caps, disk max), users, usage, invites, backups.
Desktop tab
Start/stop the desktop, watch the live screen, take over (with hold), and launch any installed catalog app on the current thread's screen (Native apps).
The thread list hides any session titled with the reserved worker: or cron-run: prefixes — those are background jobs, not conversations.