cloudflare-workers

Wrangler CLI for Cloudflare Workers

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "cloudflare-workers" with this command: npx skills add 5dlabs/cto/5dlabs-cto-cloudflare-workers

Wrangler CLI for Cloudflare Workers

Deploy, develop, and manage Cloudflare Workers and associated resources.

First: Verify Installation

wrangler --version # Requires v4.x+

If not installed:

npm install -D wrangler@latest

Key Guidelines

  • Use wrangler.jsonc : Prefer JSON config over TOML. Newer features are JSON-only.

  • Set compatibility_date : Use a recent date (within 30 days)

  • Generate types after config changes: Run wrangler types to update TypeScript bindings

  • Local dev defaults to local storage: Bindings use local simulation unless remote: true

  • Use environments for staging/prod: Define env.staging and env.production in config

Quick Start: New Worker

Initialize new project

npx wrangler init my-worker

Or with a framework

npx create-cloudflare@latest my-app

Quick Reference: Core Commands

Task Command

Start local dev server wrangler dev

Deploy to Cloudflare wrangler deploy

Deploy dry run wrangler deploy --dry-run

Generate TypeScript types wrangler types

Validate configuration wrangler check

View live logs wrangler tail

Delete Worker wrangler delete

Auth status wrangler whoami

Configuration (wrangler.jsonc)

Minimal Config

{ "$schema": "./node_modules/wrangler/config-schema.json", "name": "my-worker", "main": "src/index.ts", "compatibility_date": "2026-01-01" }

Full Config with Bindings

{ "$schema": "./node_modules/wrangler/config-schema.json", "name": "my-worker", "main": "src/index.ts", "compatibility_date": "2026-01-01", "compatibility_flags": ["nodejs_compat_v2"],

// Environment variables "vars": { "ENVIRONMENT": "production" },

// KV Namespace "kv_namespaces": [{ "binding": "KV", "id": "<KV_NAMESPACE_ID>" }],

// R2 Bucket "r2_buckets": [{ "binding": "BUCKET", "bucket_name": "my-bucket" }],

// D1 Database "d1_databases": [{ "binding": "DB", "database_name": "my-db", "database_id": "<DB_ID>" }],

// Workers AI (always remote) "ai": { "binding": "AI" },

// Vectorize "vectorize": [{ "binding": "VECTOR_INDEX", "index_name": "my-index" }],

// Durable Objects "durable_objects": { "bindings": [{ "name": "COUNTER", "class_name": "Counter" }] },

// Environments "env": { "staging": { "name": "my-worker-staging", "vars": { "ENVIRONMENT": "staging" } } } }

Local Development

Local mode (default) - uses local storage simulation

wrangler dev

With specific environment

wrangler dev --env staging

Remote mode - runs on Cloudflare edge

wrangler dev --remote

Custom port

wrangler dev --port 8787

Test scheduled/cron handlers

wrangler dev --test-scheduled

Then visit: http://localhost:8787/__scheduled

Local Secrets

Create .dev.vars for local development secrets:

API_KEY=local-dev-key DATABASE_URL=postgres://localhost:5432/dev

Deployment

Deploy to production

wrangler deploy

Deploy specific environment

wrangler deploy --env staging

Dry run (validate without deploying)

wrangler deploy --dry-run

Keep dashboard-set variables

wrangler deploy --keep-vars

Manage Secrets

Set secret interactively

wrangler secret put API_KEY

Set from stdin

echo "secret-value" | wrangler secret put API_KEY

List secrets

wrangler secret list

Delete secret

wrangler secret delete API_KEY

KV (Key-Value Store)

Create namespace

wrangler kv namespace create MY_KV

Put value

wrangler kv key put --namespace-id <ID> "key" "value"

Put with expiration (seconds)

wrangler kv key put --namespace-id <ID> "key" "value" --expiration-ttl 3600

Get value

wrangler kv key get --namespace-id <ID> "key"

List keys

wrangler kv key list --namespace-id <ID>

R2 (Object Storage)

Create bucket

wrangler r2 bucket create my-bucket

Upload object

wrangler r2 object put my-bucket/path/file.txt --file ./local-file.txt

Download object

wrangler r2 object get my-bucket/path/file.txt

Delete object

wrangler r2 object delete my-bucket/path/file.txt

D1 (SQL Database)

Create database

wrangler d1 create my-database

Execute SQL command (remote)

wrangler d1 execute my-database --remote --command "SELECT * FROM users"

Execute SQL file (remote)

wrangler d1 execute my-database --remote --file ./schema.sql

Create migration

wrangler d1 migrations create my-database create_users_table

Apply migrations

wrangler d1 migrations apply my-database --remote

Vectorize (Vector Database)

Create index with dimensions

wrangler vectorize create my-index --dimensions 768 --metric cosine

Create with preset

wrangler vectorize create my-index --preset @cf/baai/bge-base-en-v1.5

Insert vectors

wrangler vectorize insert my-index --file vectors.ndjson

Query vectors

wrangler vectorize query my-index --vector "[0.1, 0.2, ...]" --top-k 10

Observability

Stream live logs

wrangler tail

Filter by status

wrangler tail --status error

Filter by search term

wrangler tail --search "error"

JSON output

wrangler tail --format json

Best Practices

  • Version control wrangler.jsonc : Source of truth for Worker config

  • Use automatic provisioning: Omit resource IDs for auto-creation on deploy

  • Run wrangler types in CI: Catch binding mismatches early

  • Use environments: Separate staging/production with env.staging , env.production

  • Set compatibility_date : Update quarterly for new runtime features

  • Use .dev.vars for local secrets: Never commit secrets to config

  • Test locally first: wrangler dev before deploying

  • Use --dry-run before major deploys: Validate changes first

Attribution

Based on cloudflare/skills wrangler skill.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Coding

code-review

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

github-mcp

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

test-driven-development

No summary provided by upstream source.

Repository SourceNeeds Review
Coding

project-development

No summary provided by upstream source.

Repository SourceNeeds Review