Introduction

open-bot is a self-hosted, multi-user conversational bot — not a coding agent. Each user gets a chat plus an isolated Linux desktop that the bot can see and operate: it browses, runs apps, writes and runs code, and manages files on your behalf. Long-term memory comes from OpenViking, bound per desktop.

OpenCode is only the runtime inside the desktop container. The control plane runs in Docker so it never reads the host OpenCode config.

Core concepts

ConceptWhat it is
Control planeThe Bun server in Docker: sqlite database, dashboard API, docker orchestration of desktops.
DesktopA per-user container running OpenCode, a thread screen (Xvfb), and the agent CLIs.
ThreadOne conversation. Threads map 1:1 to OpenCode sessions on the user's desktop.
Thread screenA virtual display the agent can see and drive — native apps, browser, terminal.
OpenVikingThe long-term memory/context database bound to each desktop.
Web dashboardThe browser UI: chat, workspace views, config pages.
PersonaA named personality (name + behavior instructions) applied to threads.
PluginA marketplace-published extension: skills, tools, cron, dashboard surfaces.

Feature tour

  • Chat — streaming replies, personas, @projects / @reports composer mentions, stop button, image/video/3D generation.
  • Workspace views — Reports, Media vault, Hardware, Projects, and Plugins tabs beside the thread.
  • Voice — hold-to-speak input and read-aloud replies with per-user STT/TTS providers (Voice).
  • Thread preview — the agent serves a dev server and embeds it in the thread (Thread preview).
  • Native apps — the agent installs and launches real GUI apps on the thread screen (Native apps).
  • Reports — the agent files product and plugin findings into reviewable queues (Product reports, Plugin reports).
  • Plugins + marketplace — manifest-driven extensions with security review (Plugin system, Marketplace).
  • Cron — scheduled prompts that run as hidden sessions and post results back (Agent threads).

Where to go next

Everything in these docs describes the shipped product. For development on open-bot itself, start with the repo's AGENTS.md.