Getting started 2 min read

What comcon is

commonconsole (comcon) turns a single VPS into a multi-user workspace for AI agents. Each user gets an isolated Podman container with a persistent terminal, a real signed-in browser, and their agent of choice. When the work is done, the whole host parks as a disk snapshot and compute billing stops.

The design rule underneath everything: the container is the user. There are no unix accounts per person and no shared desktop session. Every surface a user touches is its own subdomain serving only that user's container.

Your surfaces, one URL each

With a wildcard DNS record on your domain, every capability is a plain HTTPS URL you open in your own browser:

URLWhat it serves
term.<user>.<domain>Persistent Zellij web terminal
browser.<user>.<domain>A real headful Chromium you and your agent share
<agent>.<user>.<domain>Agent web UIs, for example MagicStride on port 4096
<port>.web.<user>.<domain>Any dev server you run inside your container
auth.<domain>The identity portal, when SSO is enabled

No domain yet? The same surfaces work over the host IP at https://<ip>/<user>/term with a self-signed certificate and basic auth.

Two ways agents work

Native web surfaces. Anything that already serves HTTP is proxied as-is: Zellij, agent web UIs, your dev servers. No screen scraping involved.

Remote attach over SSH. The agent runs inside your container; your local client is a thin UI over a published SSH port (ssh -p 2200+slot dev@<host>, key-only). Devin attaches to a devin-server backend in your home, the way VS Code Remote attaches to a server. Claude Code and Codex run as terminal UIs over the same path.

One streamed surface. The browser is the only thing streamed, because a signed-in, visible browser is genuinely needed. You log into sites once inside browser.<user>; the agent then drives that same Chromium over the Chrome DevTools Protocol. It runs headful, not headless, so sites see a real browser.

The economics

Compute bills by the hour; storage bills by the month. comcon separates the two.

  • Working: a normal cloud VM, sized to your users.
  • Parked: the entire disk becomes a snapshot (~$1–2/mo on DigitalOcean), the VM is destroyed, and billing drops to $0/hr.
  • Resuming: a fresh VM boots from the snapshot and every URL, session, and file returns byte-identical within a few minutes.

What a deploy gives you

  1. A hardened Debian host with Podman, Caddy, and automatic HTTPS.
  2. One container per user with sudo inside the container only — never on the host.
  3. Your choice of auth gate: per-user passwords, full SSO, or an external OIDC provider.
  4. Scheduled state backups, hibernate/warmup scripts, and per-user routes — all self-contained. No Cloudflare, no Tailscale, no third-party control plane.
Deploy now