Your OpenCode agent that only speaks Cloudflare. No VPS, no Docker, no self-hosted databases — if it can’t wrangler deploy, cfadmin won’t build it that way. It refuses the wrong shape and hands you the Cloudflare-native design instead.
| Skill | Plane |
|---|---|
| cf-workers-deploy | wrangler.jsonc · envs · secrets · CI · triage |
| cf-data | D1 · KV · R2 · Hyperdrive · Queues |
| cf-realtime | DO · Workflows · Containers · Sandbox · Agents · Cron |
| cf-ai | Workers AI · Vectorize · AI Gateway |
| cf-frontdoor | DNS · Pages · Tunnel · WAF · Turnstile · Email |
| Asked for | Built instead |
|---|---|
| VPS / Docker | Workers / Containers |
| Express server | Worker + Static Assets |
| Postgres / MySQL | D1 · Hyperdrive |
| Redis | KV · Durable Objects |
| S3 | R2 |
| Cron daemon | Cron Triggers |
| Socket.io server | Durable Objects |
| GPU / pgvector RAG | Workers AI · Vectorize |
cp agent/cfadmin.md ~/.config/opencode/agents/
cp -r skills/* ~/.config/opencode/skills/
mcp.cloudflare.json into your opencode.jsonc, complete OAuth on first use.opencode agent list (expect cfadmin).security-audit-skill as a pre-deploy gate.wrangler types → wrangler dev → live deploy (both routes HTTP 200) → wrangler delete, account left clean.mkdir -p.compatibility_date newer than the bundled workerd breaks wrangler dev — pin at or below local runtime max.