Native apps
Each thread screen (Xvfb + openbox) can run real native apps. The agent installs them with sudo apt-get install (persisted across updates by record-apt.sh/restore-apt.sh) and launches them with ob-app (seed skill apps).
ob-app
ob-app --session SESSION launch APP [ARGS...] # start maximized, track pid
ob-app launch chrome [URL] [--profile NAME] # standalone Chrome
ob-app list # running apps for the session
ob-app focus TITLE # raise a window
ob-app close APP|PID
ob-app catalog # installed apps from .desktop files- Launching tracks the pid under
~/.open-bot/apps/<session>/;screen-down.shsweeps leftover pids. launch chromeopens a standalone Chrome with its own profile under~/.config/apps/chrome/— the managed per-thread browser (ob-nav/ob-page/CDP) is untouched.chromium/google-chromestay denied in bash permissions; use thechromeentry.- A refused-list blocks screen-stack tools (
Xvfb,x11vnc,websockify,vncdo, clipboard tools,ttyd, ...).
Dashboard launcher
The Desktop tab has an autocomplete launcher backed by:
GET /api/desktop/apps # catalog
POST /api/desktop/apps/launch # start on the current thread's screenThe thread screen has no audio stack — apps render but are silent.
Existing desktops need bun run images && bun run update before the CLI and seed skill appear.