Docs
Install on Linux
On Linux, every conversation gets its own virtual desktop, so conversations run side by side. No screen, login or permission prompt is needed: a server or VM works.
Requirements
- Ubuntu 22.04 or 24.04, or Debian 12 or 13, on amd64 or arm64.
- systemd with cgroup v2, as these releases have by default. mobd runs as a systemd user service and puts each desktop in its own cgroup, so idle desktops can sleep.
- A normal user account for mobd and the agents. Nothing runs as root.
- Memory for the desktops you keep open: each runs its own X server and apps. mobd warns when memory or disk runs low (limits).
- At least one agent installed and set up (account or API key) as that user: Codex, Claude Code or Pi (how).
Other distributions (Fedora, Arch, openSUSE, …) build mobd from source: building on Linux lists the packages for each.
Install
The .deb (recommended)
Download the .deb for your architecture from the download page and install it. It brings what the desktops need: Xvfb, openbox, D-Bus, GStreamer and fonts.
sudo apt install ./mobd_*_amd64.deb # or _arm64.deb
Or the installer
As your normal user, without sudo. It checks the SHA-256 and puts only mobd in ~/.local/bin:
$ curl -fsSL https://dl.mymob.dev/mobd/install.sh | sh Then install the desktops' packages and put ~/.local/bin on your PATH:
sudo apt install xvfb openbox dbus-daemon x11-xkb-utils gstreamer1.0-plugins-base gstreamer1.0-plugins-bad fonts-dejavu-core echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc export PATH="$HOME/.local/bin:$PATH" mobd --version
Next, create the configuration: mobd init, then Configure agents. Come back here to start mobd.
Browsers and fonts
- A browser is optional. Agents that browse use Google Chrome, Chromium or Firefox installed as a normal package. Each conversation gets its own browser profile (more).
- Snap and Flatpak browsers don't work: they can't open the profiles. On Ubuntu, Firefox and Chromium are Snaps by default; install Google Chrome's .deb, or Firefox from Mozilla's apt repository. On Debian the packaged
chromiumandfirefox-esrwork. - Fonts: a server has almost none, so pages show boxes. The .deb installs DejaVu; add
fonts-noto-cjkfor Chinese, Japanese and Korean text.
Start mobd
mobd start # a systemd user service mobd start --login # or: also start at boot
mobd start writes ~/.config/systemd/user/mobd.service and turns on linger for your user, so mobd keeps running when you log out, or without ever logging in on a server.
Check
mobd status # address and readiness checks mobd desktops doctor # programs, cgroup v2, encoder, browsers, memory, disk, linger mobd logs # follow the log
mobd desktops doctor says what is missing and how to fix it. Then pair a device.
Firewall
If a firewall is on (sudo ufw status), let your office network reach mobd's port and the live view's UDP port:
sudo ufw allow 8080/tcp # conversations and pairing (the listen port) sudo ufw allow 9527/udp # live view over WebRTC
Limit both to your network if you can (e.g. from 192.168.1.0/24). Without UDP the live view falls back to a WebSocket. With Tailscale or a Cloudflare Tunnel only, open nothing.
Upgrade
Let running turns finish. Desktops stay open and re-attach to the new mobd.
- .deb: install the new one the same way, then
mobd restart. - Installer:
mobd stop --keep-desktops, run the install command again, thenmobd start(ormobd start --login).
Uninstall
mobd uninstall # closes every desktop, stops mobd, removes its service sudo apt remove mobd # the .deb; with the installer: rm ~/.local/bin/mobd
Removing the .deb also runs mobd uninstall for every user with mobd. Settings stay in ~/.mobd and conversations, desktops' files and browser profiles in ~/.local/share/mob; delete them if you no longer need them.