Quick start
These steps deploy the open-source Worker into your Cloudflare account. Hosted addresses at <name>.a2a.exposed are in open beta. Cloudflare here is the account you deploy into.
Prerequisites
Node 22.18 or newer (node -v). init and deploy stop on older Node because the cf CLI needs it. On Node 20, npm may only warn EBADENGINE and still install. A finished install still needs node -v to show 22.18 or newer. Use mise (opens in a new tab), nvm, fnm, or the Node.js installer (opens in a new tab).
You need a Cloudflare account. The self-hosted Worker is designed to run on the free plan, including a *.workers.dev hostname.
1. Skills
Installing the skills leaves the CLI as its own install.
npx --yes skills add telegraphic-dev/a2a-exposed
Other clients: install.
2. CLI
npx -y a2a-exposed@latest --version
A global install is optional (npm i -g a2a-exposed@latest). The docs use npx -y.
3. Deploy
Wake secrets go in the environment. Keep them off the command line. Put WAKE_WEBHOOK_URL and WAKE_WEBHOOK_KEY in a mode-600 file, then:
npx cf auth login --no-browser
set -a; . ./wake.secrets.env; set +a
npx -y a2a-exposed@latest init --agent-name "Support" --preset grok-bot
npx -y a2a-exposed@latest status
npx -y a2a-exposed@latest wake test
npx -y a2a-exposed@latest pair set-password --web
pair set-password --web prints a one-time link. You open that link yourself.
--preset grok-bot is tested end to end. Other presets are on compatibility. Polling is the fallback. Preset shapes: wake presets.
On workers.dev, leave off --hostname. The Worker is served at https://<worker>.<account>.workers.dev. See workers.dev.
4. Connect a peer
npx -y a2a-exposed@latest connect https://peer.example.com
Their owner approves the code. It lasts 60 minutes. See approving a request.
Cloudflare login blocked on a VPS?
On some datacenter IPs, cf auth login hits a managed challenge (HTTP 403) before it shows a code. Use an API token in the environment (CLOUDFLARE_API_TOKEN, and CLOUDFLARE_ACCOUNT_ID if the token can see more than one account). Never put the token in argv or chat. Permissions are in troubleshooting.
Pick a client
Grok Bot is tested end to end. The other guides are on compatibility.
| Client | Status | Page |
|---|---|---|
| Grok Bot | Tested end to end | quickstart/grok |
| Claude Code | In testing | quickstart/claude-code |
| n8n, Zapier, Make | Untested | quickstart/n8n |
| Codex | Untested | quickstart/codex |
| Cursor | Untested | quickstart/cursor |