| name | cloudflare-3 |
| description | Manage Cloudflare Workers, KV, D1, R2, and secrets using the Wrangler CLI. Use when deploying workers, managing databases, storing objects, or configuring Cloudflare resources. Covers worker deployment, KV namespaces, D1 SQL databases, R2 object storage, secrets management, and tailing logs. |
Cloudflare (Wrangler CLI)
Manage Cloudflare Workers and associated services via the wrangler CLI.
Prerequisites
- Node.js v20+ required
- Install:
npm install -g wrangler or use project-local npx wrangler
- Auth:
wrangler login (opens browser for OAuth)
- Verify:
wrangler whoami
Quick Reference
Workers
wrangler init <name>
wrangler dev [script]
wrangler deploy [script]
wrangler deployments list
wrangler deployments view [deployment-id]
wrangler rollback [version-id]
wrangler delete [name]
wrangler tail [worker]
Secrets
wrangler secret put <key>
echo "value" | wrangler secret put <key>
wrangler secret list
wrangler secret delete <key>
wrangler secret bulk secrets.json
KV (Key-Value Store)
wrangler kv namespace create <name>
wrangler kv namespace list
wrangler kv namespace delete --namespace-id <id>
wrangler kv key put <key> <value> --namespace-id <id>
wrangler kv key get <key> --namespace-id <id>
wrangler kv key delete <key> --namespace-id <id>
wrangler kv key list --namespace-id <id>
wrangler kv bulk put <file> --namespace-id <id>
wrangler kv bulk delete <file> --namespace-id <id>
D1 (SQL Database)
wrangler d1 create <name>
wrangler d1 list
wrangler d1 info <name>
wrangler d1 execute <database> --command "SELECT * FROM users"
wrangler d1 execute <database> --file schema.sql
wrangler d1 execute <database> --local --command "..."
wrangler d1 export <name> --output backup.sql
wrangler d1 delete <name>
wrangler d1 migrations create <database> <name>
wrangler d1 migrations apply <database>
wrangler d1 migrations list <database>
R2 (Object Storage)
wrangler r2 bucket create <name>
wrangler r2 bucket list
wrangler r2 bucket delete <name>
wrangler r2 object put <bucket>/<key> --file <path>
wrangler r2 object get <bucket>/<key> --file <path>
wrangler r2 object delete <bucket>/<key>
Queues
wrangler queues create <name>
wrangler queues list
wrangler queues delete <name>
Configuration Files
Wrangler supports both TOML and JSON/JSONC config formats:
wrangler.toml — traditional format
wrangler.json or wrangler.jsonc — newer, with JSON schema support
⚠️ Important: If both exist, JSON takes precedence. Pick one format to avoid confusion where edits to TOML are ignored.
JSONC format (with schema autocomplete)
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2024-12-30"
}
TOML format
name = "my-worker"
main = "src/index.ts"
compatibility_date = "2024-12-30"
With bindings:
name = "my-worker"
main = "src/index.ts"
compatibility_date = "2024-12-30"
[[kv_namespaces]]
binding = "MY_KV"
id = "xxx"
[[d1_databases]]
binding = "DB"
database_name = "my-db"
database_id = "xxx"
[[r2_buckets]]
binding = "BUCKET"
bucket_name = "my-bucket"
[vars]
API_URL = "https://api.example.com"
Static assets (for frameworks like Next.js):
name = "my-site"
main = ".open-next/worker.js"
compatibility_date = "2024-12-30"
compatibility_flags = ["nodejs_compat"]
[assets]
directory = ".open-next/assets"
binding = "ASSETS"
Common Patterns
Deploy with environment
wrangler deploy -e production
wrangler deploy -e staging
Custom domain (via dashboard or API)
Custom domains must be configured in the Cloudflare dashboard under Worker Settings > Domains & Routes, or via the Cloudflare API. Wrangler doesn't directly manage custom domains.
Local development with bindings
wrangler dev --local
Checking deployment status
wrangler deployments list
wrangler deployments view
What Wrangler Does NOT Do
- DNS management — Use the Cloudflare dashboard or API for DNS records
- Custom domains — Configure via dashboard (Worker Settings > Domains & Routes) or API
- SSL certificates — Managed automatically by Cloudflare when custom domains are added
- Firewall/WAF rules — Use dashboard or API
For DNS/domain management, see the cloudflare skill (uses Cloudflare API directly).
Troubleshooting
| Issue | Solution |
|---|
| "Not authenticated" | Run wrangler login |
| Node version error | Requires Node.js v20+ |
| "No config found" | Ensure config file exists (wrangler.toml or wrangler.jsonc) or use -c path/to/config |
| Config changes ignored | Check for wrangler.json/wrangler.jsonc — JSON takes precedence over TOML |
| Binding not found | Check wrangler.toml bindings match code references |
Resources