where it runs
On your laptop — a different OS, Python, and network than production.
On the agent's dev box: the same base image and runtime it deploys on.
Local dev runs your agent on your laptop, at localhost, on a runtime that isn't production. `a2a dev` keeps the fast local inner loop — your editor, your keystrokes — but runs the agent on its scale-to-zero cloud dev box, hot-reloads it on every save, and serves it on a public URL. The same infra it deploys on, with a link you can share.
local edit · cloud run · public URL · hot reload
You build the agent on your laptop — one OS, one Python, one network — then find out at deploy time what actually breaks in the cloud. Sharing a work-in-progress means standing up a tunnel and keeping it alive. Getting parity means a Dockerfile and a per-agent environment before you write a line. The inner loop is fast, but it's fast against the wrong target.
`a2a dev` is the local inner loop with a cloud runtime. It syncs your project to the agent's dev box, runs the agent's hot-reloading server there, and serves it on a public URL — while you keep editing in your own editor.
You stay in your own editor — vim, VS Code, Cursor, whatever. `a2a dev` syncs the project to the agent's dev box and runs it there. The keystrokes are local; the runtime is the cloud.
Every session serves the agent at https://<agent>-devbox.a2acloud.io/ — a live, shareable endpoint. Point a webhook at it, drop it in a PR, demo it to a teammate. No ngrok, no tunnel to babysit.
Save a file and the change is live in a couple of seconds. The CLI keeps files in sync; the box's own dev server watches them and reloads. The edit-refresh loop you expect, against cloud infrastructure.
The dev box runs the same base image as your deployed agent — same Python, same runtime, real managed Postgres and egress. If it works in `a2a dev`, it works deployed. No 'works on my machine.'
The box wakes on your first command and drains to zero when you disconnect. You don't provision a VM, don't leave one running, and don't pay for an idle dev environment.
No Docker, no per-agent virtualenv, no toolchain setup. The box already has it. `a2a dev` and you're editing against a live cloud agent — offline fallback with `--local` when you want it.
On your laptop — a different OS, Python, and network than production.
On the agent's dev box: the same base image and runtime it deploys on.
Run a separate tunnel (ngrok, cloudflared) and keep it alive by hand.
A shareable https:// URL for the agent every session, over the platform ingress.
Install Docker, build images, create a virtualenv per agent before you start.
`a2a dev` — the box already has the toolchain and your logged-in CLI.
Restart the process, or wire up your own file watcher and sync.
Save locally; files sync and the box hot-reloads automatically.
A dev VM you remember to stop — or forget, and pay for.
Scale-to-zero: the box drains when you disconnect. Nothing idle.
It runs your agent in the cloud while you edit locally. `a2a dev` syncs your project to the agent's scale-to-zero dev box, runs the agent's hot-reloading server there, and serves it on a public URL like https://<agent>-devbox.a2acloud.io/. Save a file and the box reloads with your change in a couple of seconds — the local inner loop, cloud execution.
Local dev runs on your machine — a different OS, Python, and network than production, reachable only at localhost. `a2a dev` runs the agent on the same base image it deploys on, with a real managed Postgres and egress, and gives it a public shareable URL. You still edit in your own editor; only the runtime moves to the cloud. Prefer local? `a2a dev --local` keeps the classic on-machine dev server.
Yes. Every `a2a dev` session serves the agent at https://<agent>-devbox.a2acloud.io/ over the platform's HTTPS ingress. It's a real endpoint — send it a webhook, connect it to a client, share it in a review, or demo it — with no separate tunneling tool to run.
The CLI watches your local files and syncs each save to the box with rsync over the same secure tunnel that carries the shell. The box's own dev server watches the synced files and reloads on change, so a save becomes a live reload without any manual push. In practice the change is serving within a couple of seconds.
Nothing when idle. The dev box scales to zero the moment you disconnect and wakes on your next command (a few seconds of cold start, which the CLI waits through). You never provision or babysit a VM.
For cloud dev, yes — the box runs under your account with your quota and your CLI credentials injected, the same model as `a2a ssh`. If you're offline or don't want an account in the loop, `a2a dev --local` runs the agent on your machine with the same hot reload.
a2a cloud deploys any agent — LangGraph, OpenAI Agents SDK, CrewAI, or custom — with a managed Postgres database, an MCP server, an API, a frontend, and signed receipts. `a2a dev` gives you that same runtime as your dev environment: edit locally, run in the cloud, hot-reload on save, and a public URL every session. `pip install a2a-pack` to start.