WORLDBOOK

wrangler | Worldbooks | WebMCP | Search | Submit

wrangler

Category: Unknown Author: Unknown Version: 1.0.0 Updated: Unknown
0

Wrangler

Website: https://developers.cloudflare.com/workers/wrangler/ CLI Tool: wrangler Authentication: Cloudflare account

Description

Wrangler is the official CLI tool for Cloudflare Workers, Pages, R2, KV, D1, and other Cloudflare developer products. Build, test, and deploy serverless applications on Cloudflare's global network. Essential for edge computing and serverless deployments.

Commands

Authentication

Login

wrangler login
wrangler login --scopes-list

Authenticate with Cloudflare account.

Logout

wrangler logout

Remove authentication credentials.

Whoami

wrangler whoami

Display current user and account info.

Workers

Create Worker

wrangler init
wrangler init my-worker
wrangler init my-worker --type javascript
wrangler init my-worker --type typescript

Create new Workers project.

Develop Locally

wrangler dev
wrangler dev --local
wrangler dev --remote
wrangler dev --port 8787

Start local development server.

Publish Worker

wrangler publish
wrangler deploy
wrangler publish --name my-worker
wrangler publish --env production

Deploy Worker to Cloudflare.

List Workers

wrangler deployments list

List deployed Workers.

Delete Worker

wrangler delete
wrangler delete --name my-worker

Delete Worker from Cloudflare.

Tail Logs

wrangler tail
wrangler tail --format pretty
wrangler tail --format json

Stream real-time Worker logs.

KV (Key-Value Storage)

Create KV Namespace

wrangler kv:namespace create <name>
wrangler kv:namespace create MY_KV
wrangler kv:namespace create MY_KV --preview

Create KV namespace.

List KV Namespaces

wrangler kv:namespace list

List all KV namespaces.

Delete KV Namespace

wrangler kv:namespace delete --namespace-id <id>

Delete KV namespace.

Put KV Value

wrangler kv:key put <key> <value> --namespace-id <id>
wrangler kv:key put "mykey" "myvalue" --namespace-id abc123
wrangler kv:key put "config" '{"enabled":true}' --namespace-id abc123

Store key-value pair.

Get KV Value

wrangler kv:key get <key> --namespace-id <id>
wrangler kv:key get "mykey" --namespace-id abc123

Retrieve value by key.

List KV Keys

wrangler kv:key list --namespace-id <id>
wrangler kv:key list --namespace-id abc123 --prefix "user:"

List keys in namespace.

Delete KV Key

wrangler kv:key delete <key> --namespace-id <id>

Delete key-value pair.

Bulk Operations

wrangler kv:bulk put <file> --namespace-id <id>
wrangler kv:bulk delete <file> --namespace-id <id>

Bulk upload/delete from JSON file.

R2 (Object Storage)

Create R2 Bucket

wrangler r2 bucket create <name>
wrangler r2 bucket create my-bucket

Create R2 storage bucket.

List R2 Buckets

wrangler r2 bucket list

List all R2 buckets.

Delete R2 Bucket

wrangler r2 bucket delete <name>

Delete R2 bucket.

Upload to R2

wrangler r2 object put <bucket>/<key> --file <path>
wrangler r2 object put my-bucket/image.jpg --file ./image.jpg

Upload file to R2 bucket.

Download from R2

wrangler r2 object get <bucket>/<key> --file <path>
wrangler r2 object get my-bucket/image.jpg --file ./downloaded.jpg

Download file from R2 bucket.

List R2 Objects

wrangler r2 object list <bucket>
wrangler r2 object list my-bucket --prefix folder/

List objects in R2 bucket.

Delete from R2

wrangler r2 object delete <bucket>/<key>

Delete object from R2 bucket.

D1 (SQL Database)

Create D1 Database

wrangler d1 create <name>
wrangler d1 create my-database

Create D1 database.

List D1 Databases

wrangler d1 list

List all D1 databases.

Execute SQL

wrangler d1 execute <database> --command "SELECT * FROM users"
wrangler d1 execute my-db --file schema.sql

Run SQL queries against D1 database.

Delete D1 Database

wrangler d1 delete <name>

Delete D1 database.

Pages

Create Pages Project

wrangler pages project create <name>
wrangler pages project create my-site

Create Pages project.

Deploy to Pages

wrangler pages deploy <directory>
wrangler pages deploy ./dist
wrangler pages deploy ./build --project-name my-site

Deploy static site to Pages.

List Pages Projects

wrangler pages project list

List all Pages projects.

List Pages Deployments

wrangler pages deployment list

List deployments for Pages project.

Tail Pages Logs

wrangler pages deployment tail

Stream Pages function logs.

Queues

Create Queue

wrangler queues create <name>
wrangler queues create my-queue

Create message queue.

List Queues

wrangler queues list

List all queues.

Delete Queue

wrangler queues delete <name>

Delete queue.

Durable Objects

Create Durable Object

# Defined in wrangler.toml
[durable_objects]
bindings = [
  { name = "MY_OBJECT", class_name = "MyObject" }
]

Configure Durable Objects in wrangler.toml.

Migrate Durable Objects

wrangler deployments list

Manage DO migrations through deployments.

Environment Variables

Add Secret

wrangler secret put <name>
wrangler secret put API_KEY
# Enter value when prompted

Add encrypted environment variable.

List Secrets

wrangler secret list

List secret names (not values).

Delete Secret

wrangler secret delete <name>

Remove secret.

Configuration

Generate Types

wrangler types

Generate TypeScript types from wrangler.toml.

Validate Config

wrangler publish --dry-run

Test configuration without deploying.

Versions

Version Info

wrangler version
wrangler --version

Show Wrangler version.

Update Wrangler

npm update -g wrangler

Update Wrangler to latest version.

Examples

Create and Deploy Worker

# Create new Worker
wrangler init my-worker
cd my-worker

# Develop locally
wrangler dev

# Deploy to Cloudflare
wrangler deploy

# View logs
wrangler tail

Worker with KV Storage

# Create KV namespace
wrangler kv:namespace create MY_KV
# Add binding to wrangler.toml

# Put value
wrangler kv:key put "user:123" '{"name":"Alice"}' --namespace-id abc123

# Get value
wrangler kv:key get "user:123" --namespace-id abc123

# Deploy Worker
wrangler deploy

R2 File Storage

# Create bucket
wrangler r2 bucket create my-uploads

# Upload file
wrangler r2 object put my-uploads/avatar.jpg --file ./avatar.jpg

# List files
wrangler r2 object list my-uploads

# Download file
wrangler r2 object get my-uploads/avatar.jpg --file ./downloaded.jpg

D1 Database Setup

# Create database
wrangler d1 create my-app-db

# Create schema
wrangler d1 execute my-app-db --file schema.sql

# Run query
wrangler d1 execute my-app-db --command "SELECT * FROM users"

# Add binding to wrangler.toml
# Then deploy Worker
wrangler deploy

Pages Deployment

# Build your site
npm run build

# Deploy to Pages
wrangler pages deploy ./dist --project-name my-site

# Deploy with custom branch
wrangler pages deploy ./dist --branch production

# View deployments
wrangler pages deployment list

Environment Management

# Add production secret
wrangler secret put API_KEY --env production

# Deploy to different environments
wrangler deploy --env staging
wrangler deploy --env production

# Tail logs for specific env
wrangler tail --env production

Local Development

# Start dev server
wrangler dev

# With remote resources
wrangler dev --remote

# Custom port
wrangler dev --port 3000

# Enable inspector
wrangler dev --inspect

Queue Operations

# Create queue
wrangler queues create email-queue

# Add binding to wrangler.toml
# Deploy Worker that produces/consumes messages
wrangler deploy

# Monitor queue
wrangler tail

TypeScript Support

# Initialize with TypeScript
wrangler init my-worker --type typescript

# Generate types
wrangler types

# Develop with types
wrangler dev

Secrets Management

# Add secrets
wrangler secret put DATABASE_URL
wrangler secret put API_KEY

# List secret names
wrangler secret list

# Delete secret
wrangler secret delete OLD_KEY

Multi-Environment Setup

# wrangler.toml
name = "my-worker"
main = "src/index.ts"

[env.staging]
vars = { ENVIRONMENT = "staging" }

[env.production]
vars = { ENVIRONMENT = "production" }
routes = [{ pattern = "example.com/*", zone_name = "example.com" }]
# Deploy to staging
wrangler deploy --env staging

# Deploy to production
wrangler deploy --env production

CI/CD Integration

# GitHub Actions
- name: Deploy to Cloudflare Workers
  run: wrangler deploy
  env:
    CLOUDFLARE_API_TOKEN: ${{ secrets.CLOUDFLARE_API_TOKEN }}
    CLOUDFLARE_ACCOUNT_ID: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}

Notes

  • Workers: Serverless JavaScript/TypeScript on Cloudflare edge
  • Pages: Static site hosting with functions
  • KV: Global key-value data storage
  • R2: S3-compatible object storage
  • D1: SQLite at the edge
  • Durable Objects: Stateful serverless objects
  • Queues: Message queues for async processing
  • Bindings: Connect Workers to resources
  • Environments: Staging, production configs
  • Routes: Map Workers to URL patterns
  • Custom Domains: Use your own domains
  • Analytics: Built-in analytics dashboard
  • Tail: Real-time log streaming
  • Miniflare: Local development simulator
  • wrangler.toml: Configuration file
  • Secrets: Encrypted environment variables
  • Compatibility Dates: Version pinning
  • Module Workers: ESM module format
  • Service Workers: Classic format
  • TypeScript: Full TypeScript support
  • Source Maps: Debugging support
  • Dev Server: Local development environment
  • Remote Dev: Test against real resources
  • Pricing: Generous free tier
  • Global Network: 300+ cities worldwide
  • Cold Starts: Near-zero cold starts
  • Best Practices:
  • Use wrangler.toml for configuration
  • Test with wrangler dev first
  • Use environments for staging/prod
  • Store secrets securely
  • Use KV for global state
  • Use R2 for large files
  • Use D1 for relational data
  • Use Durable Objects for consistency
  • Monitor with tail logs
  • Set up CI/CD for deployments
  • Use TypeScript for type safety
  • Version your compatibility date
  • Keep wrangler updated
  • Use bindings instead of fetch

Get this worldbook via CLI

worldbook get wrangler

Comments (0)

Add a Comment

No comments yet. Be the first to comment!