Introduction
What COMA is, what works today, and what you need to start.
COMA points your Docker and Podman workflows, and your coding agents, at a machine with more CPU, memory and disk. Bind mounts, localhost ports and interactive commands keep working, so nothing about how you work has to change.
You keep your editor, your files and your terminal on the laptop. The containers run on a Linux machine that COMA reaches over SSH. COMA sits above Docker, Podman and Compose: it does not replace them.
Start with one machine
You don't need COMA Cloud, Kubernetes or a new container runtime. If you have a Linux machine you can reach over SSH, it can be your first COMA machine.
No COMA account is needed.
Status
COMA is in pre-alpha.
It's used daily by its developers, but expect rough edges and breaking changes. Releases are private for now: get early access. Commands in these docs were checked against v0.1.0-rc.4-3-g07087e6.
What works today
- Machines over SSH.
coma machine addregisters a Linux server you own or rent. It verifies the SSH host key, records an inventory (OS, CPU, memory, disk, engines) and changes nothing on the machine. See Add a machine. - Bare VM setup.
coma machine bootstrapinstalls Docker or rootless Podman from the distribution's own packages on Debian and Ubuntu. It shows the plan and asks first. See Bootstrap a bare VM. - Your Docker CLI, pointed at the machine.
coma connectmakes a Docker context calledcomacurrent, sodocker, Docker Compose and every new shell, including shells started by coding agents, use the machine. With a Podman engine it also sets podman's default connection. The local socket is private to you, and traffic goes over SSH. - Bind mounts. COMA keeps a copy of your project directory on the machine and maps bind mounts to it, so
./src:/app/srcin a Compose file mounts your code. In the default mode, sync never deletes or overwrites files on the machine. See Source sync. localhostports. Every TCP port a container publishes on the machine is also available on yourlocalhostat the same number. On the machine, COMA publishes on127.0.0.1only. See Ports.- Interactive and streaming commands.
docker exec -it,docker logs -fanddocker compose upstream through COMA as they do locally. - Workspaces. A
coma.yamlin your project names its machine, engine, sync rules and ports.coma workspace upconnects and syncs in one step. See Your first workspace. - Sleep and wake. When the laptop wakes, COMA checks its SSH connections and reconnects the ones that died.
- Diagnostics.
coma doctorchecks the installation and the traps that send commands somewhere other than the machine, such as containers created on a local engine while you are connected. - Scripts and coding agents. Every command takes
--json, and every error has a stable code. See JSON output.
What you need
- A laptop running macOS or Linux (arm64 or amd64), with the
dockerCLI, thepodmanCLI, or both. Use Docker Compose v2:coma doctorwarns about Compose v1. - A Linux machine you can reach over SSH with a key, through ssh-agent or a key file. It needs Docker or Podman, or, on Debian or Ubuntu, passwordless sudo so
coma machine bootstrapcan install one.