a2a dev now runs your agent in the cloud
`a2a dev` keeps the local inner loop but moves the runtime to the cloud: edit locally, run your agent on its scale-to-zero dev box, hot-reload on save, and share it on a public URL.
a2a dev now runs your agent in the cloud
The best part of building on your laptop is the loop: edit, save, see it live. The worst part is that "live" means localhost, on a runtime that isn't the one you deploy on. So the loop is fast — against the wrong target.
a2a dev fixes that. It keeps the local inner loop and moves the runtime to the cloud.
cd my-agent/
a2a devThat one command:
- wakes your agent's scale-to-zero dev box,
- syncs your project up to it,
- runs the agent's hot-reloading server on the box, and
- serves it on a public URL —
https://my-agent-devbox.a2acloud.io/.
You keep editing in your own editor. Save a file and, a couple of seconds later, the running agent in the cloud has your change. It's the edit-refresh loop you already have — pointed at real infrastructure, with a link you can share.
Why move the runtime, not the editor
The inner loop should be local — nothing beats your own editor and instant keystrokes. But the *runtime* being local is what causes the pain:
- Parity. The dev box runs the same base image as your deployed agent — same
Python, same runtime, real managed Postgres and egress. If it runs in a2a dev, it runs deployed. No "works on my machine."
- A public URL, for free. Every session gives the agent a real, shareable
endpoint. Point a webhook at it, drop it in a pull request, demo it to a teammate, wire it to a client. No ngrok, no tunnel to keep alive.
- Nothing to install. No Docker, no per-agent virtualenv. The box already has
the toolchain and your logged-in CLI.
- Nothing idle. The box wakes on your first command and drains to zero when
you disconnect. You never provision or babysit a VM.
How it works
A dev box exposes a single public origin over the platform's HTTPS ingress. A small bridge on the box fronts two things on that origin: the /ssh WebSocket tunnel that carries file sync and shell access, and everything else — reverse-proxied to the agent's dev server running inside the box.
So https://<agent>-devbox.a2acloud.io/ reaches your running agent, while the CLI syncs files over that same ingress. Files sync with rsync over the tunnel; the box's own dev server watches them and hot-reloads on change. The CLI keeps files in sync — the reload comes for free.
No extra ports. No bastion. No firewall rules. The same secure tunnel that powers a2a ssh now carries your whole dev loop.
Still want it local?
a2a dev --local is the classic on-machine dev server — hot reload at http://127.0.0.1:8000, using .env.local and a local workspace. Reach for it when you're offline, air-gapped, or just want the agent in your own process.
a2a dev # cloud: sync + run + public URL
a2a dev --local # run on this machine with hot reload
a2a dev --local --host-runtime # local, directly in this Python processTry it
pip install -U a2a-pack
a2a login
cd my-agent/
a2a devEdit agent.py, hit save, and watch the change go live on the public URL. Edit locally, run in the cloud.
Full reference in the cloud dev docs.