a2a cloud
no local Docker

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

0
local Docker daemons
0
cloud dev box
0
laptop image builds
the problem

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.

Docker Desktop runs locally, consuming RAM and CPU before any agent code executes.
`docker build` and layer caching sit between you and the first run.
Local resources mean writing and maintaining a `docker-compose.yml`.
Every dependency or base-image change means rebuilding the image again.
the a2a way

`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 laptopPre-built, not `docker build`Managed resources, no compose fileEdit locally, run remotelyOr a plain Python process — still no DockerScale-to-zero, so it's cheap to leave on

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.

side-by-side

Local Docker setup vs. no-local-infra dev.

dimension
local Docker
a2a cloud dev
runtime
Docker Desktop running locally, eating RAM before you write a line.
`a2a dev` runs the agent on a cloud box; your laptop just syncs files.
first run
`docker build` + layer caching before the agent starts the first time.
Box pre-built with Node 20, Python 3.11, a2a-pack — connect and go.
resources
Author a `docker-compose.yml` and keep containers up for Postgres/Qdrant.
Managed Postgres and Qdrant in the cloud, reached through scoped grants.
rebuilds
Rebuild the image whenever a dependency or base layer changes.
Sync edits on save; the box restarts the agent — no image to rebuild.
idle cost
Local daemon + containers running whether or not you're coding.
Scale-to-zero dev box parks itself when idle, wakes on the next sync.
questions

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.

keep reading

Related guides.

All guides live in the guides index.

edit locally, run remotely

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.