wrangler by cloudflare/skills
npx skills add https://github.com/cloudflare/skills --skill wrangler您对 Wrangler CLI 标志、配置字段和子命令的了解可能已过时。对于任何 Wrangler 任务,优先检索而非依赖预训练知识。
在编写或审查 Wrangler 命令和配置之前,请获取最新信息。不要依赖已内置的知识来了解 CLI 标志、配置字段或绑定结构。
| 来源 | 如何检索 | 用途 |
|---|---|---|
| Wrangler 文档 | https://developers.cloudflare.com/workers/wrangler/ | CLI 命令、标志、配置参考 |
| Wrangler 配置模式 | node_modules/wrangler/config-schema.json | 配置字段、绑定结构、允许值 |
| Cloudflare 文档 | 搜索工具或 https://developers.cloudflare.com/workers/ | API 参考、兼容性日期/标志 |
广告位招租
在这里展示您的产品或服务
触达数万 AI 开发者,精准高效
wrangler --version # 需要 v4.x+
如果未安装:
npm install -D wrangler@latest
wrangler.jsonc:优先使用 JSON 配置而非 TOML。较新的功能仅支持 JSON。compatibility_date:使用最近的日期(30 天内)。检查 https://developers.cloudflare.com/workers/configuration/compatibility-dates/wrangler types 以更新 TypeScript 绑定。remote: true,否则绑定使用本地模拟。wrangler check 以尽早捕获错误。env.staging 和 env.production。# 初始化新项目
npx wrangler init my-worker
# 或使用框架
npx create-cloudflare@latest my-app
| 任务 | 命令 |
|---|---|
| 启动本地开发服务器 | wrangler dev |
| 部署到 Cloudflare | wrangler deploy |
| 部署试运行 | wrangler deploy --dry-run |
| 生成 TypeScript 类型 | wrangler types |
| 验证配置 | wrangler check |
| 查看实时日志 | wrangler tail |
| 删除 Worker | wrangler delete |
| 认证状态 | wrangler whoami |
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2026-01-01"
}
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2026-01-01",
"compatibility_flags": ["nodejs_compat_v2"],
// 环境变量
"vars": {
"ENVIRONMENT": "production"
},
// KV 命名空间
"kv_namespaces": [
{ "binding": "KV", "id": "<KV_NAMESPACE_ID>" }
],
// R2 存储桶
"r2_buckets": [
{ "binding": "BUCKET", "bucket_name": "my-bucket" }
],
// D1 数据库
"d1_databases": [
{ "binding": "DB", "database_name": "my-db", "database_id": "<DB_ID>" }
],
// Workers AI(始终远程)
"ai": { "binding": "AI" },
// Vectorize
"vectorize": [
{ "binding": "VECTOR_INDEX", "index_name": "my-index" }
],
// Hyperdrive
"hyperdrive": [
{ "binding": "HYPERDRIVE", "id": "<HYPERDRIVE_ID>" }
],
// Durable Objects
"durable_objects": {
"bindings": [
{ "name": "COUNTER", "class_name": "Counter" }
]
},
// Cron 触发器
"triggers": {
"crons": ["0 * * * *"]
},
// 环境
"env": {
"staging": {
"name": "my-worker-staging",
"vars": { "ENVIRONMENT": "staging" }
}
}
}
# 生成 worker-configuration.d.ts
wrangler types
# 自定义输出路径
wrangler types ./src/env.d.ts
# 检查类型是否最新(CI)
wrangler types --check
# 本地模式(默认)- 使用本地存储模拟
wrangler dev
# 使用特定环境
wrangler dev --env staging
# 强制仅本地(禁用远程绑定)
wrangler dev --local
# 远程模式 - 在 Cloudflare 边缘运行(旧版)
wrangler dev --remote
# 自定义端口
wrangler dev --port 8787
# HTML 更改的实时重载
wrangler dev --live-reload
# 测试计划/cron 处理程序
wrangler dev --test-scheduled
# 然后访问:http://localhost:8787/__scheduled
在绑定配置中使用 remote: true,以便在本地运行时连接到真实资源:
{
"r2_buckets": [
{ "binding": "BUCKET", "bucket_name": "my-bucket", "remote": true }
],
"ai": { "binding": "AI", "remote": true },
"vectorize": [
{ "binding": "INDEX", "index_name": "my-index", "remote": true }
]
}
推荐的远程绑定:AI(必需)、Vectorize、浏览器渲染、mTLS、图像。
为本地开发密钥创建 .dev.vars:
API_KEY=local-dev-key
DATABASE_URL=postgres://localhost:5432/dev
# 部署到生产环境
wrangler deploy
# 部署特定环境
wrangler deploy --env staging
# 试运行(验证而不部署)
wrangler deploy --dry-run
# 保留仪表板设置的变量
wrangler deploy --keep-vars
# 压缩代码
wrangler deploy --minify
# 交互式设置密钥
wrangler secret put API_KEY
# 从标准输入设置
echo "secret-value" | wrangler secret put API_KEY
# 列出密钥
wrangler secret list
# 删除密钥
wrangler secret delete API_KEY
# 从 JSON 文件批量设置密钥
wrangler secret bulk secrets.json
# 列出最近版本
wrangler versions list
# 查看特定版本
wrangler versions view <VERSION_ID>
# 回滚到上一个版本
wrangler rollback
# 回滚到特定版本
wrangler rollback <VERSION_ID>
# 创建命名空间
wrangler kv namespace create MY_KV
# 列出命名空间
wrangler kv namespace list
# 删除命名空间
wrangler kv namespace delete --namespace-id <ID>
# 设置值
wrangler kv key put --namespace-id <ID> "key" "value"
# 设置带过期时间的值(秒)
wrangler kv key put --namespace-id <ID> "key" "value" --expiration-ttl 3600
# 获取值
wrangler kv key get --namespace-id <ID> "key"
# 列出键
wrangler kv key list --namespace-id <ID>
# 删除键
wrangler kv key delete --namespace-id <ID> "key"
# 从 JSON 批量设置
wrangler kv bulk put --namespace-id <ID> data.json
{
"kv_namespaces": [
{ "binding": "CACHE", "id": "<NAMESPACE_ID>" }
]
}
# 创建存储桶
wrangler r2 bucket create my-bucket
# 创建时指定位置提示
wrangler r2 bucket create my-bucket --location wnam
# 列出存储桶
wrangler r2 bucket list
# 获取存储桶信息
wrangler r2 bucket info my-bucket
# 删除存储桶
wrangler r2 bucket delete my-bucket
# 上传对象
wrangler r2 object put my-bucket/path/file.txt --file ./local-file.txt
# 下载对象
wrangler r2 object get my-bucket/path/file.txt
# 删除对象
wrangler r2 object delete my-bucket/path/file.txt
{
"r2_buckets": [
{ "binding": "ASSETS", "bucket_name": "my-bucket" }
]
}
# 创建数据库
wrangler d1 create my-database
# 创建时指定位置
wrangler d1 create my-database --location wnam
# 列出数据库
wrangler d1 list
# 获取数据库信息
wrangler d1 info my-database
# 删除数据库
wrangler d1 delete my-database
# 执行 SQL 命令(远程)
wrangler d1 execute my-database --remote --command "SELECT * FROM users"
# 执行 SQL 文件(远程)
wrangler d1 execute my-database --remote --file ./schema.sql
# 本地执行
wrangler d1 execute my-database --local --command "SELECT * FROM users"
# 创建迁移
wrangler d1 migrations create my-database create_users_table
# 列出待处理迁移
wrangler d1 migrations list my-database --local
# 本地应用迁移
wrangler d1 migrations apply my-database --local
# 远程应用迁移
wrangler d1 migrations apply my-database --remote
# 导出模式和数据
wrangler d1 export my-database --remote --output backup.sql
# 仅导出模式
wrangler d1 export my-database --remote --output schema.sql --no-data
{
"d1_databases": [
{
"binding": "DB",
"database_name": "my-database",
"database_id": "<DATABASE_ID>",
"migrations_dir": "./migrations"
}
]
}
# 创建带维度的索引
wrangler vectorize create my-index --dimensions 768 --metric cosine
# 使用预设创建(自动配置维度和度量)
wrangler vectorize create my-index --preset @cf/baai/bge-base-en-v1.5
# 列出索引
wrangler vectorize list
# 获取索引信息
wrangler vectorize get my-index
# 删除索引
wrangler vectorize delete my-index
# 从 NDJSON 文件插入向量
wrangler vectorize insert my-index --file vectors.ndjson
# 查询向量
wrangler vectorize query my-index --vector "[0.1, 0.2, ...]" --top-k 10
{
"vectorize": [
{ "binding": "SEARCH_INDEX", "index_name": "my-index" }
]
}
# 创建配置
wrangler hyperdrive create my-hyperdrive \
--connection-string "postgres://user:pass@host:5432/database"
# 列出配置
wrangler hyperdrive list
# 获取配置详情
wrangler hyperdrive get <HYPERDRIVE_ID>
# 更新配置
wrangler hyperdrive update <HYPERDRIVE_ID> --origin-password "new-password"
# 删除配置
wrangler hyperdrive delete <HYPERDRIVE_ID>
{
"compatibility_flags": ["nodejs_compat_v2"],
"hyperdrive": [
{ "binding": "HYPERDRIVE", "id": "<HYPERDRIVE_ID>" }
]
}
# 列出可用模型
wrangler ai models
# 列出微调模型
wrangler ai finetune list
{
"ai": { "binding": "AI" }
}
注意:Workers AI 始终远程运行,即使在本地开发中也会产生使用费用。
# 创建队列
wrangler queues create my-queue
# 列出队列
wrangler queues list
# 删除队列
wrangler queues delete my-queue
# 向队列添加消费者
wrangler queues consumer add my-queue my-worker
# 移除消费者
wrangler queues consumer remove my-queue my-worker
{
"queues": {
"producers": [
{ "binding": "MY_QUEUE", "queue": "my-queue" }
],
"consumers": [
{
"queue": "my-queue",
"max_batch_size": 10,
"max_batch_timeout": 30
}
]
}
}
# 构建容器镜像
wrangler containers build -t my-app:latest .
# 一个命令内构建并推送
wrangler containers build -t my-app:latest . --push
# 将现有镜像推送到 Cloudflare 注册表
wrangler containers push my-app:latest
# 列出容器
wrangler containers list
# 获取容器信息
wrangler containers info <CONTAINER_ID>
# 删除容器
wrangler containers delete <CONTAINER_ID>
# 列出注册表中的镜像
wrangler containers images list
# 删除镜像
wrangler containers images delete my-app:latest
# 列出已配置的注册表
wrangler containers registries list
# 配置外部注册表(例如 ECR)
wrangler containers registries configure <DOMAIN> \
--public-credential <AWS_ACCESS_KEY_ID>
# 删除注册表配置
wrangler containers registries delete <DOMAIN>
# 列出工作流
wrangler workflows list
# 描述工作流
wrangler workflows describe my-workflow
# 触发工作流实例
wrangler workflows trigger my-workflow
# 带参数触发
wrangler workflows trigger my-workflow --params '{"key": "value"}'
# 删除工作流
wrangler workflows delete my-workflow
# 列出实例
wrangler workflows instances list my-workflow
# 描述实例
wrangler workflows instances describe my-workflow <INSTANCE_ID>
# 终止实例
wrangler workflows instances terminate my-workflow <INSTANCE_ID>
{
"workflows": [
{
"binding": "MY_WORKFLOW",
"name": "my-workflow",
"class_name": "MyWorkflow"
}
]
}
# 创建管道
wrangler pipelines create my-pipeline --r2 my-bucket
# 列出管道
wrangler pipelines list
# 显示管道详情
wrangler pipelines show my-pipeline
# 更新管道
wrangler pipelines update my-pipeline --batch-max-mb 100
# 删除管道
wrangler pipelines delete my-pipeline
{
"pipelines": [
{ "binding": "MY_PIPELINE", "pipeline": "my-pipeline" }
]
}
# 创建存储
wrangler secrets-store store create my-store
# 列出存储
wrangler secrets-store store list
# 删除存储
wrangler secrets-store store delete <STORE_ID>
# 向存储添加密钥
wrangler secrets-store secret put <STORE_ID> my-secret
# 列出存储中的密钥
wrangler secrets-store secret list <STORE_ID>
# 获取密钥
wrangler secrets-store secret get <STORE_ID> my-secret
# 从存储中删除密钥
wrangler secrets-store secret delete <STORE_ID> my-secret
{
"secrets_store_secrets": [
{
"binding": "MY_SECRET",
"store_id": "<STORE_ID>",
"secret_name": "my-secret"
}
]
}
# 创建 Pages 项目
wrangler pages project create my-site
# 将目录部署到 Pages
wrangler pages deploy ./dist
# 使用特定分支部署
wrangler pages deploy ./dist --branch main
# 列出部署
wrangler pages deployment list --project-name my-site
# 流式传输实时日志
wrangler tail
# 跟踪特定 Worker
wrangler tail my-worker
# 按状态过滤
wrangler tail --status error
# 按搜索词过滤
wrangler tail --search "error"
# JSON 输出
wrangler tail --format json
{
"observability": {
"enabled": true,
"head_sampling_rate": 1
}
}
npm install -D @cloudflare/vitest-pool-workers vitest
vitest.config.ts:
import { defineWorkersConfig } from "@cloudflare/vitest-pool-workers/config";
export default defineWorkersConfig({
test: {
poolOptions: {
workers: {
wrangler: { configPath: "./wrangler.jsonc" },
},
},
},
});
# 在开发中启用
wrangler dev --test-scheduled
# 通过 HTTP 触发
curl http://localhost:8787/__scheduled
| 问题 | 解决方案 |
|---|---|
command not found: wrangler | 安装:npm install -D wrangler |
| 认证错误 | 运行 wrangler login |
| 配置验证错误 | 运行 wrangler check |
| 配置更改后类型错误 | 运行 wrangler types |
| 本地存储未持久化 | 检查 .wrangler/state 目录 |
| Worker 中绑定未定义 | 验证绑定名称与配置完全匹配 |
# 检查认证状态
wrangler whoami
# 验证配置
wrangler check
# 查看配置模式
wrangler docs configuration
wrangler.jsonc:将其视为 Worker 配置的单一事实来源。wrangler types:添加到构建步骤以捕获绑定不匹配。env.staging、env.production 分离暂存/生产环境。compatibility_date:每季度更新以获取新的运行时功能。.dev.vars 存储本地密钥:切勿将密钥提交到配置中。wrangler dev。--dry-run:验证更改而不进行部署。每周安装量
3.4K
代码库
GitHub 星标数
571
首次出现
2026年1月19日
安全审计
安装于
opencode2.9K
codex2.8K
gemini-cli2.8K
github-copilot2.6K
amp2.4K
kimi-cli2.3K
Your knowledge of Wrangler CLI flags, config fields, and subcommands may be outdated. Prefer retrieval over pre-training for any Wrangler task.
Fetch the latest information before writing or reviewing Wrangler commands and config. Do not rely on baked-in knowledge for CLI flags, config fields, or binding shapes.
| Source | How to retrieve | Use for |
|---|---|---|
| Wrangler docs | https://developers.cloudflare.com/workers/wrangler/ | CLI commands, flags, config reference |
| Wrangler config schema | node_modules/wrangler/config-schema.json | Config fields, binding shapes, allowed values |
| Cloudflare docs | Search tool or https://developers.cloudflare.com/workers/ | API reference, compatibility dates/flags |
wrangler --version # Requires v4.x+
If not installed:
npm install -D wrangler@latest
wrangler.jsonc: Prefer JSON config over TOML. Newer features are JSON-only.compatibility_date: Use a recent date (within 30 days). Check https://developers.cloudflare.com/workers/configuration/compatibility-dates/wrangler types to update TypeScript bindings.remote: true.wrangler check to catch errors early.env.staging and env.production in config.# Initialize new project
npx wrangler init my-worker
# Or with a framework
npx create-cloudflare@latest my-app
| 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 |
{
"$schema": "./node_modules/wrangler/config-schema.json",
"name": "my-worker",
"main": "src/index.ts",
"compatibility_date": "2026-01-01"
}
{
"$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" }
],
// Hyperdrive
"hyperdrive": [
{ "binding": "HYPERDRIVE", "id": "<HYPERDRIVE_ID>" }
],
// Durable Objects
"durable_objects": {
"bindings": [
{ "name": "COUNTER", "class_name": "Counter" }
]
},
// Cron triggers
"triggers": {
"crons": ["0 * * * *"]
},
// Environments
"env": {
"staging": {
"name": "my-worker-staging",
"vars": { "ENVIRONMENT": "staging" }
}
}
}
# Generate worker-configuration.d.ts
wrangler types
# Custom output path
wrangler types ./src/env.d.ts
# Check types are up to date (CI)
wrangler types --check
# Local mode (default) - uses local storage simulation
wrangler dev
# With specific environment
wrangler dev --env staging
# Force local-only (disable remote bindings)
wrangler dev --local
# Remote mode - runs on Cloudflare edge (legacy)
wrangler dev --remote
# Custom port
wrangler dev --port 8787
# Live reload for HTML changes
wrangler dev --live-reload
# Test scheduled/cron handlers
wrangler dev --test-scheduled
# Then visit: http://localhost:8787/__scheduled
Use remote: true in binding config to connect to real resources while running locally:
{
"r2_buckets": [
{ "binding": "BUCKET", "bucket_name": "my-bucket", "remote": true }
],
"ai": { "binding": "AI", "remote": true },
"vectorize": [
{ "binding": "INDEX", "index_name": "my-index", "remote": true }
]
}
Recommended remote bindings : AI (required), Vectorize, Browser Rendering, mTLS, Images.
Create .dev.vars for local development secrets:
API_KEY=local-dev-key
DATABASE_URL=postgres://localhost:5432/dev
# 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
# Minify code
wrangler deploy --minify
# 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
# Bulk secrets from JSON file
wrangler secret bulk secrets.json
# List recent versions
wrangler versions list
# View specific version
wrangler versions view <VERSION_ID>
# Rollback to previous version
wrangler rollback
# Rollback to specific version
wrangler rollback <VERSION_ID>
# Create namespace
wrangler kv namespace create MY_KV
# List namespaces
wrangler kv namespace list
# Delete namespace
wrangler kv namespace delete --namespace-id <ID>
# 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>
# Delete key
wrangler kv key delete --namespace-id <ID> "key"
# Bulk put from JSON
wrangler kv bulk put --namespace-id <ID> data.json
{
"kv_namespaces": [
{ "binding": "CACHE", "id": "<NAMESPACE_ID>" }
]
}
# Create bucket
wrangler r2 bucket create my-bucket
# Create with location hint
wrangler r2 bucket create my-bucket --location wnam
# List buckets
wrangler r2 bucket list
# Get bucket info
wrangler r2 bucket info my-bucket
# Delete bucket
wrangler r2 bucket delete 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
{
"r2_buckets": [
{ "binding": "ASSETS", "bucket_name": "my-bucket" }
]
}
# Create database
wrangler d1 create my-database
# Create with location
wrangler d1 create my-database --location wnam
# List databases
wrangler d1 list
# Get database info
wrangler d1 info my-database
# Delete database
wrangler d1 delete 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
# Execute locally
wrangler d1 execute my-database --local --command "SELECT * FROM users"
# Create migration
wrangler d1 migrations create my-database create_users_table
# List pending migrations
wrangler d1 migrations list my-database --local
# Apply migrations locally
wrangler d1 migrations apply my-database --local
# Apply migrations to remote
wrangler d1 migrations apply my-database --remote
# Export schema and data
wrangler d1 export my-database --remote --output backup.sql
# Export schema only
wrangler d1 export my-database --remote --output schema.sql --no-data
{
"d1_databases": [
{
"binding": "DB",
"database_name": "my-database",
"database_id": "<DATABASE_ID>",
"migrations_dir": "./migrations"
}
]
}
# Create index with dimensions
wrangler vectorize create my-index --dimensions 768 --metric cosine
# Create with preset (auto-configures dimensions/metric)
wrangler vectorize create my-index --preset @cf/baai/bge-base-en-v1.5
# List indexes
wrangler vectorize list
# Get index info
wrangler vectorize get my-index
# Delete index
wrangler vectorize delete my-index
# Insert vectors from NDJSON file
wrangler vectorize insert my-index --file vectors.ndjson
# Query vectors
wrangler vectorize query my-index --vector "[0.1, 0.2, ...]" --top-k 10
{
"vectorize": [
{ "binding": "SEARCH_INDEX", "index_name": "my-index" }
]
}
# Create config
wrangler hyperdrive create my-hyperdrive \
--connection-string "postgres://user:pass@host:5432/database"
# List configs
wrangler hyperdrive list
# Get config details
wrangler hyperdrive get <HYPERDRIVE_ID>
# Update config
wrangler hyperdrive update <HYPERDRIVE_ID> --origin-password "new-password"
# Delete config
wrangler hyperdrive delete <HYPERDRIVE_ID>
{
"compatibility_flags": ["nodejs_compat_v2"],
"hyperdrive": [
{ "binding": "HYPERDRIVE", "id": "<HYPERDRIVE_ID>" }
]
}
# List available models
wrangler ai models
# List finetunes
wrangler ai finetune list
{
"ai": { "binding": "AI" }
}
Note : Workers AI always runs remotely and incurs usage charges even in local dev.
# Create queue
wrangler queues create my-queue
# List queues
wrangler queues list
# Delete queue
wrangler queues delete my-queue
# Add consumer to queue
wrangler queues consumer add my-queue my-worker
# Remove consumer
wrangler queues consumer remove my-queue my-worker
{
"queues": {
"producers": [
{ "binding": "MY_QUEUE", "queue": "my-queue" }
],
"consumers": [
{
"queue": "my-queue",
"max_batch_size": 10,
"max_batch_timeout": 30
}
]
}
}
# Build container image
wrangler containers build -t my-app:latest .
# Build and push in one command
wrangler containers build -t my-app:latest . --push
# Push existing image to Cloudflare registry
wrangler containers push my-app:latest
# List containers
wrangler containers list
# Get container info
wrangler containers info <CONTAINER_ID>
# Delete container
wrangler containers delete <CONTAINER_ID>
# List images in registry
wrangler containers images list
# Delete image
wrangler containers images delete my-app:latest
# List configured registries
wrangler containers registries list
# Configure external registry (e.g., ECR)
wrangler containers registries configure <DOMAIN> \
--public-credential <AWS_ACCESS_KEY_ID>
# Delete registry configuration
wrangler containers registries delete <DOMAIN>
# List workflows
wrangler workflows list
# Describe workflow
wrangler workflows describe my-workflow
# Trigger workflow instance
wrangler workflows trigger my-workflow
# Trigger with parameters
wrangler workflows trigger my-workflow --params '{"key": "value"}'
# Delete workflow
wrangler workflows delete my-workflow
# List instances
wrangler workflows instances list my-workflow
# Describe instance
wrangler workflows instances describe my-workflow <INSTANCE_ID>
# Terminate instance
wrangler workflows instances terminate my-workflow <INSTANCE_ID>
{
"workflows": [
{
"binding": "MY_WORKFLOW",
"name": "my-workflow",
"class_name": "MyWorkflow"
}
]
}
# Create pipeline
wrangler pipelines create my-pipeline --r2 my-bucket
# List pipelines
wrangler pipelines list
# Show pipeline details
wrangler pipelines show my-pipeline
# Update pipeline
wrangler pipelines update my-pipeline --batch-max-mb 100
# Delete pipeline
wrangler pipelines delete my-pipeline
{
"pipelines": [
{ "binding": "MY_PIPELINE", "pipeline": "my-pipeline" }
]
}
# Create store
wrangler secrets-store store create my-store
# List stores
wrangler secrets-store store list
# Delete store
wrangler secrets-store store delete <STORE_ID>
# Add secret to store
wrangler secrets-store secret put <STORE_ID> my-secret
# List secrets in store
wrangler secrets-store secret list <STORE_ID>
# Get secret
wrangler secrets-store secret get <STORE_ID> my-secret
# Delete secret from store
wrangler secrets-store secret delete <STORE_ID> my-secret
{
"secrets_store_secrets": [
{
"binding": "MY_SECRET",
"store_id": "<STORE_ID>",
"secret_name": "my-secret"
}
]
}
# Create Pages project
wrangler pages project create my-site
# Deploy directory to Pages
wrangler pages deploy ./dist
# Deploy with specific branch
wrangler pages deploy ./dist --branch main
# List deployments
wrangler pages deployment list --project-name my-site
# Stream live logs
wrangler tail
# Tail specific Worker
wrangler tail my-worker
# Filter by status
wrangler tail --status error
# Filter by search term
wrangler tail --search "error"
# JSON output
wrangler tail --format json
{
"observability": {
"enabled": true,
"head_sampling_rate": 1
}
}
npm install -D @cloudflare/vitest-pool-workers vitest
vitest.config.ts:
import { defineWorkersConfig } from "@cloudflare/vitest-pool-workers/config";
export default defineWorkersConfig({
test: {
poolOptions: {
workers: {
wrangler: { configPath: "./wrangler.jsonc" },
},
},
},
});
# Enable in dev
wrangler dev --test-scheduled
# Trigger via HTTP
curl http://localhost:8787/__scheduled
| Issue | Solution |
|---|---|
command not found: wrangler | Install: npm install -D wrangler |
| Auth errors | Run wrangler login |
| Config validation errors | Run wrangler check |
| Type errors after config change | Run wrangler types |
| Local storage not persisting | Check .wrangler/state directory |
| Binding undefined in Worker |
# Check auth status
wrangler whoami
# Validate config
wrangler check
# View config schema
wrangler docs configuration
wrangler.jsonc: Treat as source of truth for Worker config.wrangler types in CI: Add to build step to catch binding mismatches.env.staging, env.production.compatibility_date: Update quarterly to get new runtime features..dev.vars for local secrets: Never commit secrets to config.wrangler dev with local bindings before deploying.Weekly Installs
3.4K
Repository
GitHub Stars
571
First Seen
Jan 19, 2026
Security Audits
Gen Agent Trust HubPassSocketWarnSnykPass
Installed on
opencode2.9K
codex2.8K
gemini-cli2.8K
github-copilot2.6K
amp2.4K
kimi-cli2.3K
97,600 周安装
| Delete Worker | wrangler delete |
| Auth status | wrangler whoami |
| Verify binding name matches config exactly |
--dry-run