Develop AI agents without Docker.
You don't need Docker set up on your machine to build an agent. `a2a dev` syncs your source to a scale-to-zero cloud dev box and runs the agent there — no local daemon, no Compose file, no image builds on your laptop. You keep your editor and your git; the box runs the code. Prefer local? `a2a dev --local --host-runtime` is a plain Python process, also no container.
cloud dev box · pre-built runtime · no local daemon · scale-to-zero
Local agent dev shouldn't start with Docker Desktop.
The usual agent dev loop asks you to run Docker Desktop, author a Dockerfile, wait on `docker build` and layer caching, and stand up a `docker-compose.yml` just to get a Postgres or a vector store. That's a daemon eating RAM before you write a line, an image to rebuild whenever a dependency moves, and containers you keep alive to keep coding. It's a lot of container plumbing for what is, in the end, editing Python and watching it run.
`a2a dev` runs the agent on a cloud box.
Cloud dev mode syncs your source to a scale-to-zero dev box pre-built with Node 20, Python 3.11, and a2a-pack, then runs the agent there. Managed Postgres and Qdrant live in the cloud through scoped grants. Nothing runs on your machine but the editor and the sync — and if you'd rather stay local, `--host-runtime` gives you a plain Python process instead of a container.
The box runs it, not your laptop
`a2a dev` syncs your source to a scale-to-zero cloud dev box and runs the agent there. Nothing runs on your machine except your editor and the file sync. No local Docker daemon to start, no image to build, no port juggling.
Pre-built, not `docker build`
The cloud box already has Node 20, Python 3.11, and a2a-pack installed. You don't write a Dockerfile, you don't wait on layer caching, and you don't burn laptop CPU rebuilding an image every time a dependency moves. The runtime is there when you connect.
Managed resources, no compose file
Postgres and Qdrant exist in the cloud, reached through scoped grants. You don't stand up a `docker-compose.yml`, you don't run containers to get a database, and you don't keep them running to keep developing. The resources outlive your session.
Edit locally, run remotely
You keep your own editor, your own git, your own files. File sync pushes edits to the box on save; the agent restarts there. The developer loop feels local — the container-shaped work happens somewhere you don't have to manage.
Or a plain Python process — still no Docker
Prefer to run on your own machine? `a2a dev --local --host-runtime` starts a direct uvicorn process, no container at all. `--local` on its own uses Docker by default; `--host-runtime` opts out. Two honest ways to develop without Docker in the loop.
Scale-to-zero, so it's cheap to leave on
The dev box scales to zero when you stop touching it and wakes on the next sync. You don't pay for an idle VM and you don't tear down and rebuild an environment each morning. Close the laptop; the box parks itself.
Local Docker setup vs. no-local-infra dev.
Frequently asked.
Can I develop agents without Docker installed?
Yes. `a2a dev` (cloud mode) syncs your source to a scale-to-zero cloud dev box and runs the agent there — nothing runs on your machine except your editor and the file sync, so no local Docker daemon is required. If you'd rather run locally, `a2a dev --local --host-runtime` starts a plain uvicorn process with no container either. Docker is genuinely optional for developing on a2a.
Does a2a ever use Docker at all?
In some paths, yes — we won't pretend otherwise. `a2a dev --local` uses Docker by default, and `a2a chat` uses Docker Compose to bring up local resources. The point is that you don't need Docker set up on your machine to develop: cloud `a2a dev` uses none of it, and `--local --host-runtime` opts out of the container locally. Pick a path and you can work Docker-free.
How does the cloud dev box run my agent without me building an image?
The box is pre-built with Node 20, Python 3.11, and a2a-pack already installed. `a2a dev` syncs your source into it and starts the agent in that environment, so there's no `docker build`, no Dockerfile to author, and no layer caching to wait on. Dependency installs happen on the box, not as image-build steps on your laptop.
Where do Postgres and Qdrant come from if I'm not running containers?
They're managed resources that exist in the cloud, reached through scoped grants — you don't run a `docker-compose.yml` to get a database or a vector store, and you don't keep containers alive to keep developing. The resources persist across sessions, so the agent has state without you hosting any infrastructure locally.
What's actually running on my machine during cloud dev?
Just your editor, your git, and the file-sync process. Edits push to the dev box on save and the agent restarts there; logs and output stream back to your terminal. It feels like a local dev loop, but the container-shaped work — the runtime, the resources, the rebuilds — happens on a box you never have to manage.
Related guides.
All guides live in the guides index.
Skip the daemon. Ship the agent.
`a2a dev` runs any agent — LangGraph, OpenAI Agents SDK, CrewAI, or custom — on a scale-to-zero cloud dev box with a pre-built runtime and managed Postgres, Qdrant, and an MCP server reached through scoped grants. No local Docker daemon, no Compose file, no laptop image builds. Prefer local? `a2a dev --local --host-runtime` is a plain uvicorn process. Two honest ways to develop without Docker in the loop — and one deploy to production with an Ed25519-signed receipt per run.