#376 by GitHub stars
cloudflare/skills
Skills for teaching agents how to build on Cloudflare.
History
Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.
View weekly changes
skills/agents-sdk/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 203
+ 204 ## Skill feedback
+ 205
+ 206 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/basin/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 25
+ 26 ## Skill feedback
+ 27
+ 28 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/cf-cli/SKILL.md
Week of Nov 2, 2026 · +6 / −1 lines
Before Instructions only → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 29 | Find slow or expensive D1 databases and queries with `cf sql query` | https://developers.cloudflare.com/d1/observability/find-expensive-queries/index.md |
- 80 For Wrangler equivalents, use the [Wrangler to cf reference](https://developers.cloudflare.com/cf/wrangler/reference/index.md) or `cf cli search`. Do not translate Wrangler commands from memory. For the full comparison, refer to [`cf` for Wrangler users](https://developers.cloudflare.com/cf/wrangler/index.md).
+ 81 Product documentation often shows only Wrangler commands and `wrangler.jsonc` configuration. In a `cf` project, treat those as tasks to translate, not commands to run, and do not add a Wrangler configuration file. Use one CLI per project; the only exceptions are the commands under [Commands `cf` does not support yet](#commands-cf-does-not-support-yet). For Wrangler equivalents, use the [Wrangler to cf reference](https://developers.cloudflare.com/cf/wrangler/reference/index.md) or `cf cli search`. Do not translate Wrangler commands from memory. For the full comparison, refer to [`cf` for Wrangler users](https://developers.cloudflare.com/cf/wrangler/index.md).
+ 91
+ 92 ## Skill feedback
+ 93
+ 94 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/cloudflare/SKILL.md
Week of Nov 2, 2026 · +6 / −2 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
- 17 The product guidance below applies with either CLI. Where it names a Wrangler command or file, find the `cf` equivalent with `cf cli search "<task>"` or the [Wrangler to cf reference](https://developers.cloudflare.com/cf/wrangler/reference/index.md) instead of translating from memory.
+ 17 The product guidance below, and the documentation it links to, applies with either CLI. Many documentation pages show only Wrangler commands and configuration; in a `cf` project, do not run them or add a Wrangler configuration file. Use one CLI per project, apart from the `npx wrangler` commands the `cf-cli` skill lists as not yet supported by `cf`. Where guidance names a Wrangler command or file, find the `cf` equivalent with `cf cli search "<task>"` or the [Wrangler to cf reference](https://developers.cloudflare.com/cf/wrangler/reference/index.md) instead of translating from memory.
- 88 | Reduce Worker-to-backend latency | Smart Placement | Place Worker execution closer to the backends it calls | [Smart Placement](references/smart-placement/README.md) |
+ 88 | Reduce Worker-to-backend latency | Workers placement | Use explicit region hints for known regional databases, or traffic-based Smart Placement | [Workers placement docs](https://developers.cloudflare.com/workers/configuration/placement/index.md) |
+ 152
+ 153 ## Skill feedback
+ 154
+ 155 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/cloudflare-email-service/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 74
+ 75 ## Skill feedback
+ 76
+ 77 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/cloudflare-one/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 181
+ 182 ## Skill feedback
+ 183
+ 184 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/cloudflare-one-migrations/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Instructions only → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 111
+ 112 ## Skill feedback
+ 113
+ 114 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/durable-objects/SKILL.md
Week of Nov 2, 2026 · +5 / −1 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
- 37 - `./references/workers.md` - Workers handlers, types, wrangler config, observability
+ 37 - [Workers reference](./references/workers.md) - Workers handlers, types, configuration, tracing, and local debugging
+ 181
+ 182 ## Skill feedback
+ 183
+ 184 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/gateway-workers/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 39
+ 40 ## Skill feedback
+ 41
+ 42 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/k2/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Instructions only → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 24
+ 25 ## Skill feedback
+ 26
+ 27 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/nextjs-on-cloudflare/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Instructions only → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 34
+ 35 ## Skill feedback
+ 36
+ 37 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/sandbox-migrate-to-next/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 186
+ 187 ## Skill feedback
+ 188
+ 189 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/sandbox-next/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Instructions only → After Instructions only
86505e44f87d → 1a33048817d0
+ 93
+ 94 ## Skill feedback
+ 95
+ 96 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/sandbox-stable/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 111
+ 112 ## Skill feedback
+ 113
+ 114 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/turnstile-spin/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 337
+ 338 ## Skill feedback
+ 339
+ 340 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/web-perf/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Instructions only → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 202
+ 203 ## Skill feedback
+ 204
+ 205 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Instructions only
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/workers-best-practices/SKILL.md
Week of Nov 2, 2026 · +8 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 29
+ 30 ## Place Compute Near Regional Databases
+ 31
+ 32 For Workers that make multiple sequential queries to one regional database, configure explicit placement matching the database's provider and region before deployment. Ask for missing location information, preserve existing placement choices, and verify handler eligibility and deployed request duration. See [database placement](references/configuration.md#place-compute-near-regional-databases).
+ 65
+ 66 ## Skill feedback
+ 67
+ 68 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/workers-profiling/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 45
+ 46 ## Skill feedback
+ 47
+ 48 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
skills/wrangler/SKILL.md
Week of Nov 2, 2026 · +4 / −0 lines
Before Network or broad shell → After Network or broad shell
86505e44f87d → 1a33048817d0
+ 72
+ 73 ## Skill feedback
+ 74
+ 75 If the user reports that this skill gave incorrect or outdated guidance, or is missing information, read [references/skill-feedback.md](references/skill-feedback.md).
Week of Oct 26, 2026 · Line counts unavailable
Before Not checked yet → After Network or broad shell
First observation → 86505e44f87d
No earlier version was observed for comparison.
Verified commit 1a33048817d06df12882cb881dfc754e7039954a
git clone --filter=blob:none --no-checkout https://github.com/cloudflare/skills.git .hotskills/cloudflare-skills && git -C .hotskills/cloudflare-skills checkout --detach 1a33048817d06df12882cb881dfc754e7039954a
# Copy each selected skill directory from .hotskills/cloudflare-skills into .claude/skills/<skill-name>/Heat
7.4- Star growth, last 7 daysAhead of 90% of tracked repositories
- Star growth, last 24 hoursAhead of 93% of tracked repositories
- Rank movement, last 7 daysAhead of 60% of tracked repositories
- Commits, last 30 daysAhead of 93% of tracked repositories
- Accounts asking about it through MCP, last 7 daysNot available
- Hot votes this weekAhead of 0% of tracked repositories
Heat never changes the order by stars, and sponsorship never touches it. How heat works
Stars over time
Individual skills in this repository
- agents-sdk
skills/agents-sdk - basin
skills/basin - cf-cli
skills/cf-cli - cloudflare
skills/cloudflare - cloudflare-email-service
skills/cloudflare-email-service - cloudflare-one
skills/cloudflare-one - cloudflare-one-migrations
skills/cloudflare-one-migrations - durable-objects
skills/durable-objects - gateway-workers
skills/gateway-workers - k2
skills/k2 - nextjs-on-cloudflare
skills/nextjs-on-cloudflare - sandbox-migrate-to-next
skills/sandbox-migrate-to-next - sandbox-next
skills/sandbox-next - sandbox-stable
skills/sandbox-stable - turnstile-spin
skills/turnstile-spin - web-perf
skills/web-perf - workers-best-practices
skills/workers-best-practices - workers-profiling
skills/workers-profiling - wrangler
skills/wrangler
How it works
agents-sdk
When your agent uses it
Build, debug, or review Cloudflare Agents SDK applications using the agents package.
What it loads into context
Frontmatter
23 tokensAlways available to the agent
SKILL.md
2,932 tokensWhen the skill is activated
Reference documents
8,838 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Retrieval Sources
- Capabilities
- FIRST: Verify Installation
- Wrangler Configuration
- Agent Class
- Routing
- Core APIs
- React Client
- References
- Skill feedback
Files
../../.claude-plugin/marketplace.jsonasset1,190 bytes../../.claude-plugin/plugin.jsonasset657 bytes../../.mcp.jsonasset120 bytesSKILL.mdcore12,275 bytesSKILL.mdcore12,275 bytesSKILL.mdcore12,275 bytesSKILL.mdcore12,275 bytesreferences/browse-the-web.mddoc1,627 bytesreferences/callable.mddoc2,127 bytesreferences/client-sdk.mddoc1,216 bytesreferences/codemode.mddoc2,916 bytesreferences/configuration.mddoc1,850 bytesreferences/durable-execution.mddoc1,717 bytesreferences/email.mddoc3,556 bytesreferences/human-in-the-loop.mddoc929 bytesreferences/mcp.mddoc1,325 bytesreferences/observability.mddoc1,352 bytesreferences/queue-retries.mddoc1,463 bytesreferences/routing.mddoc1,844 bytesreferences/server-driven-messages.mddoc868 bytesreferences/skill-feedback.mddoc2,787 bytesreferences/state-scheduling.mddoc1,542 bytesreferences/streaming-chat.mddoc1,464 bytesreferences/think.mddoc2,933 bytesreferences/voice.mddoc1,918 bytesreferences/webhooks-push.mddoc2,466 bytesreferences/workflows.mddoc2,378 bytes
Read SKILL.md
# Cloudflare Agents SDK
Your knowledge of the Agents SDK may be outdated. **Prefer retrieval over pre-training** for any Agents SDK task.
## Retrieval Sources
Cloudflare docs: https://developers.cloudflare.com/agents/index.md
| Topic | Docs URL | Use for |
|-------|----------|---------|
| Getting started | [Quick start](https://developers.cloudflare.com/agents/getting-started/quick-start/index.md) | First agent, project setup |
| Adding to existing project | [Add to existing project](https://developers.cloudflare.com/agents/getting-started/add-to-existing-project/index.md) | Install into existing Workers app |
| Configuration | [Configuration](https://developers.cloudflare.com/agents/runtime/operations/configuration/index.md) | `wrangler.jsonc`, bindings, assets, deployment |
| Agent class | [Agents API](https://developers.cloudflare.com/agents/runtime/agents-api/index.md) | Agent lifecycle, patterns, pitfalls |View the complete source on GitHubbasin
When your agent uses it
Build and troubleshoot Cloudflare Basin analytics workflows with Basin Pipelines, Basin Catalog, and Basin SQL. Use for streaming data into R2 Iceberg tables, managing catalogs, or querying those tables; also use for requests using the former Data Platform, Pipelines, R2 Data Catalog, or R2 SQL names.
What it loads into context
Frontmatter
69 tokensAlways available to the agent
SKILL.md
640 tokensWhen the skill is activated
Reference documents
13,101 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Rebrand
- Choose the workflow
- Skill feedback
Files
SKILL.mdcore2,925 bytesreferences/catalog/README.mddoc1,239 bytesreferences/catalog/api.mddoc3,365 bytesreferences/catalog/configuration.mddoc2,172 bytesreferences/catalog/gotchas.mddoc2,229 bytesreferences/catalog/patterns.mddoc1,752 bytesreferences/pipelines/README.mddoc4,580 bytesreferences/pipelines/api.mddoc5,118 bytesreferences/pipelines/configuration.mddoc6,237 bytesreferences/pipelines/gotchas.mddoc3,059 bytesreferences/pipelines/patterns.mddoc4,752 bytesreferences/skill-feedback.mddoc2,772 bytesreferences/sql/README.mddoc3,443 bytesreferences/sql/api.mddoc4,921 bytesreferences/sql/configuration.mddoc1,699 bytesreferences/sql/gotchas.mddoc2,040 bytesreferences/sql/patterns.mddoc4,382 bytes
Read SKILL.md
# Cloudflare Basin
Basin ingests and transforms events, manages Apache Iceberg tables in R2, and queries them with distributed SQL. Start with the [Basin overview](https://developers.cloudflare.com/basin/index.md) and retrieve the relevant current docs before implementing changes, especially for limits, pricing, permissions, and CLI syntax. While PR #33850 remains open, use the proposed pages in that PR if the new URLs have not been published.
## Rebrand
Cloudflare Data Platform is now **Basin**. Cloudflare Pipelines, R2 Data Catalog, and R2 SQL are now **Basin Pipelines**, **Basin Catalog**, and **Basin SQL**. Existing resources and configurations continue to work. The prior Wrangler command families also continue to work: `wrangler pipelines`, `wrangler r2 bucket catalog`, and `wrangler r2 sql`. Use the new Basin commands and documentation URLs in new guidance. Legacy API identifiers and metrics names may still use the old terms; check the current docs for deprecation details. The migration is documented in [cloudflare-docs PR #33850](https://github.com/cloudflare/cloudflare-docs/pull/33850).
## Choose the workflow
| Need | Product | Reference | Current docs |
|------|---------|-----------|--------------|
| Receive events, transform rows, and deliver to R2 | Basin Pipelines | [Pipelines guide](references/pipelines/README.md) | [Basin Pipelines](https://developers.cloudflare.com/basin-pipelines/index.md) |
| Manage Iceberg metadata, table maintenance, and engine access | Basin Catalog | [Catalog guide](references/catalog/README.md) | [Basin Catalog](https://developers.cloudflare.com/basin-catalog/index.md) |View the complete source on GitHubcf-cli
When your agent uses it
Cloudflare's official cf CLI (beta) for the public Cloudflare API and Workers projects. Use for finding and running Cloudflare commands from the terminal — sign-in and profiles, cf cli search, cf schema, cf deploy/dev/build, resource commands for DNS, zones, D1, KV, and R2 — and for choosing between cf and Wrangler in a project.
What it loads into context
Frontmatter
82 tokensAlways available to the agent
SKILL.md
1,722 tokensWhen the skill is activated
Reference documents
646 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Documentation
- FIRST: check installation and sign in
- Find commands
- Read output
- Run commands safely
- Choose the CLI for this project
- Commands `cf` does not support yet
- Skill feedback
Files
SKILL.mdcore7,341 bytesSKILL.mdcore7,341 bytesSKILL.mdcore7,341 bytesreferences/skill-feedback.mddoc2,775 bytes
Read SKILL.md
# Cloudflare CLI (`cf`)
`cf` is Cloudflare's command-line interface for the public Cloudflare API (2,900+ commands, most generated from API schemas) and for Workers projects. It is in beta: commands, configuration, and Build Output can change before the stable release.
**Prefer retrieval over pre-trained knowledge.** Describe the task to `cf cli search`, inspect the match with `cf schema` or `--help`, and preview with `--dry-run` before running a command you have not verified.
Docs index: https://developers.cloudflare.com/cf/llms.txt
## Documentation
| Topic | Page |
|-------|------|
| Install, sign in, credential and account selection | https://developers.cloudflare.com/cf/get-started/index.md |
| First Worker with `cf init`, `cf dev`, `cf deploy` | https://developers.cloudflare.com/cf/get-started/first-worker/index.md |View the complete source on GitHubcloudflare
When your agent uses it
Discover and choose Cloudflare products for apps, APIs, AI agents, storage, networking, and security. Use for architecture and product selection, including when the user describes a need without naming a Cloudflare product; then find the relevant skill or documentation.
What it loads into context
Frontmatter
57 tokensAlways available to the agent
SKILL.md
5,633 tokensWhen the skill is activated
Reference documents
57,680 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Choose the CLI
- Help the user find the right product
- What are you trying to build?
- Find guidance for a task not listed here
- Caching
- Working principles
- Skill feedback
Files
SKILL.mdcore27,737 bytesreferences/ai-gateway/README.mddoc1,989 bytesreferences/ai-gateway/configuration.mddoc2,274 bytesreferences/ai-gateway/dynamic-routing.mddoc1,901 bytesreferences/ai-gateway/features.mddoc2,641 bytesreferences/ai-gateway/sdk-integration.mddoc2,293 bytesreferences/ai-gateway/troubleshooting.mddoc2,521 bytesreferences/ai-search/README.mddoc1,869 bytesreferences/ai-search/api.mddoc1,287 bytesreferences/ai-search/configuration.mddoc1,855 bytesreferences/ai-search/gotchas.mddoc1,664 bytesreferences/ai-search/patterns.mddoc1,748 bytesreferences/bindings/README.mddoc1,352 bytesreferences/bindings/api.mddoc2,423 bytesreferences/bindings/configuration.mddoc2,554 bytesreferences/bindings/gotchas.mddoc3,055 bytesreferences/bindings/patterns.mddoc2,442 bytesreferences/browser-rendering/README.mddoc1,270 bytesreferences/browser-rendering/api.mddoc1,208 bytesreferences/browser-rendering/configuration.mddoc1,325 bytesreferences/browser-rendering/gotchas.mddoc1,926 bytesreferences/browser-rendering/patterns.mddoc1,528 bytesreferences/c3/README.mddoc3,696 bytesreferences/c3/api.mddoc2,239 bytesreferences/c3/configuration.mddoc1,637 bytesreferences/c3/gotchas.mddoc2,307 bytesreferences/c3/patterns.mddoc2,117 bytesreferences/containers/README.mddoc1,925 bytesreferences/containers/api.mddoc1,588 bytesreferences/containers/configuration.mddoc1,864 bytesreferences/containers/gotchas.mddoc2,466 bytesreferences/containers/patterns.mddoc2,595 bytesreferences/cron-triggers/README.mddoc1,546 bytesreferences/cron-triggers/api.mddoc1,718 bytesreferences/cron-triggers/configuration.mddoc1,705 bytesreferences/cron-triggers/gotchas.mddoc2,399 bytesreferences/cron-triggers/patterns.mddoc2,010 bytesreferences/d1/README.mddoc1,433 bytesreferences/d1/api.mddoc1,986 bytesreferences/d1/configuration.mddoc1,986 bytesreferences/d1/gotchas.mddoc2,608 bytesreferences/d1/patterns.mddoc2,434 bytesreferences/hyperdrive/README.mddoc2,493 bytesreferences/hyperdrive/api.mddoc3,203 bytesreferences/hyperdrive/configuration.mddoc4,082 bytesreferences/hyperdrive/gotchas.mddoc3,601 bytesreferences/hyperdrive/patterns.mddoc2,801 bytesreferences/images/README.mddoc983 bytesreferences/images/api.mddoc1,627 bytesreferences/images/configuration.mddoc2,143 bytesreferences/images/gotchas.mddoc2,280 bytesreferences/images/patterns.mddoc1,885 bytesreferences/kv/README.mddoc1,536 bytesreferences/kv/api.mddoc1,792 bytesreferences/kv/configuration.mddoc1,732 bytesreferences/kv/gotchas.mddoc2,489 bytesreferences/kv/patterns.mddoc2,932 bytesreferences/miniflare/README.mddoc1,615 bytesreferences/miniflare/api.mddoc1,872 bytesreferences/miniflare/configuration.mddoc2,197 bytesreferences/miniflare/gotchas.mddoc2,393 bytesreferences/miniflare/patterns.mddoc2,297 bytesreferences/observability/README.mddoc2,565 bytesreferences/observability/api.mddoc2,264 bytesreferences/observability/configuration.mddoc2,517 bytesreferences/observability/gotchas.mddoc3,825 bytesreferences/observability/patterns.mddoc3,100 bytesreferences/pages-functions/README.mddoc1,319 bytesreferences/pages-functions/api.mddoc1,154 bytesreferences/pages-functions/configuration.mddoc1,286 bytesreferences/pages-functions/gotchas.mddoc1,677 bytesreferences/pages-functions/patterns.mddoc1,420 bytesreferences/pages/README.mddoc1,534 bytesreferences/pages/api.mddoc1,104 bytesreferences/pages/configuration.mddoc1,570 bytesreferences/pages/gotchas.mddoc1,722 bytesreferences/pages/patterns.mddoc1,247 bytesreferences/queues/README.mddoc1,862 bytesreferences/queues/api.mddoc1,801 bytesreferences/queues/configuration.mddoc2,404 bytesreferences/queues/gotchas.mddoc2,848 bytesreferences/queues/patterns.mddoc2,703 bytesreferences/r2/README.mddoc1,705 bytesreferences/r2/api.mddoc1,748 bytesreferences/r2/configuration.mddoc2,247 bytesreferences/r2/gotchas.mddoc3,414 bytesreferences/r2/patterns.mddoc2,286 bytesreferences/secrets-store/README.mddoc1,851 bytesreferences/secrets-store/api.mddoc1,915 bytesreferences/secrets-store/configuration.mddoc2,460 bytesreferences/secrets-store/gotchas.mddoc2,850 bytesreferences/secrets-store/patterns.mddoc3,085 bytesreferences/skill-feedback.mddoc2,787 bytesreferences/static-assets/README.mddoc1,729 bytesreferences/static-assets/api.mddoc1,741 bytesreferences/static-assets/configuration.mddoc2,192 bytesreferences/static-assets/gotchas.mddoc2,773 bytesreferences/static-assets/patterns.mddoc2,251 bytesreferences/stream/README.mddoc1,818 bytesreferences/stream/api-live.mddoc2,158 bytesreferences/stream/api.mddoc2,481 bytesreferences/stream/configuration.mddoc2,040 bytesreferences/stream/gotchas.mddoc2,338 bytesreferences/stream/patterns.mddoc2,323 bytesreferences/tail-workers/README.mddoc1,466 bytesreferences/tail-workers/api.mddoc1,388 bytesreferences/tail-workers/configuration.mddoc1,469 bytesreferences/tail-workers/gotchas.mddoc1,601 bytesreferences/tail-workers/patterns.mddoc1,564 bytesreferences/tunnel/README.mddoc1,547 bytesreferences/tunnel/api.mddoc1,360 bytesreferences/tunnel/configuration.mddoc1,369 bytesreferences/tunnel/gotchas.mddoc1,572 bytesreferences/tunnel/networking.mddoc1,504 bytesreferences/tunnel/patterns.mddoc1,513 bytesreferences/vectorize/README.mddoc2,101 bytesreferences/vectorize/api.mddoc2,171 bytesreferences/vectorize/configuration.mddoc2,106 bytesreferences/vectorize/gotchas.mddoc2,454 bytesreferences/vectorize/patterns.mddoc2,699 bytesreferences/waf/README.mddoc1,625 bytesreferences/waf/api.mddoc2,014 bytesreferences/waf/configuration.mddoc1,966 bytesreferences/waf/gotchas.mddoc2,395 bytesreferences/waf/patterns.mddoc1,944 bytesreferences/workers-ai/README.mddoc1,883 bytesreferences/workers-ai/api.mddoc1,308 bytesreferences/workers-ai/configuration.mddoc1,624 bytesreferences/workers-ai/gotchas.mddoc1,949 bytesreferences/workers-ai/patterns.mddoc1,724 bytesreferences/workflows/README.mddoc1,873 bytesreferences/workflows/api.mddoc1,849 bytesreferences/workflows/configuration.mddoc2,033 bytesreferences/workflows/gotchas.mddoc2,886 bytesreferences/workflows/patterns.mddoc2,720 bytes../gateway-workers/SKILL.mddoc4,684 bytes../nextjs-on-cloudflare/SKILL.mddoc2,898 bytes../workers-profiling/SKILL.mddoc2,204 bytes
Read SKILL.md
# Discover and build with Cloudflare
Help agents discover what they can build with Cloudflare and choose the products that fit. Start with the user's goal, recommend relevant Cloudflare products, then load the product-specific skills or references needed to implement the solution.
## Choose the CLI
Use the Cloudflare CLI (`cf`) unless the project already uses Wrangler or the user asks for Wrangler.
- **The project has `wrangler.jsonc`, `wrangler.json`, or `wrangler.toml`, and no `cloudflare.config.ts`:** use Wrangler for development and deployment, and load the `wrangler` skill. `cf` resource commands work alongside it. Run `cf migrate` only when the user asks.
- **Every other project, including a new project or one with no Cloudflare configuration:** use `cf`. Load the `cf-cli` skill if it is installed; otherwise follow [Use cf with coding agents](https://developers.cloudflare.com/cf/agents/index.md). Do not install Wrangler or create a Wrangler configuration file.
The product guidance below, and the documentation it links to, applies with either CLI. Many documentation pages show only Wrangler commands and configuration; in a `cf` project, do not run them or add a Wrangler configuration file. Use one CLI per project, apart from the `npx wrangler` commands the `cf-cli` skill lists as not yet supported by `cf`. Where guidance names a Wrangler command or file, find the `cf` equivalent with `cf cli search "<task>"` or the [Wrangler to cf reference](https://developers.cloudflare.com/cf/wrangler/reference/index.md) instead of translating from memory.
## Help the user find the right productView the complete source on GitHubcloudflare-email-service
When your agent uses it
Implement or troubleshoot Cloudflare Email Sending and Email Routing integrations and their delivery configuration.
What it loads into context
Frontmatter
25 tokensAlways available to the agent
SKILL.md
1,519 tokensWhen the skill is activated
Reference documents
6,529 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Retrieval Sources
- FIRST: Check Prerequisites
- What Do You Need?
- Sending Workflow
- Common Mistakes
- References
- Skill feedback
Files
SKILL.mdcore6,806 bytesSKILL.mdcore6,806 bytesSKILL.mdcore6,806 bytesreferences/cli-and-mcp.mddoc4,047 bytesreferences/deliverability.mddoc9,060 bytesreferences/rest-api.mddoc1,868 bytesreferences/routing.mddoc7,470 bytesreferences/sending.mddoc2,621 bytesreferences/skill-feedback.mddoc2,829 bytes
Read SKILL.md
# Cloudflare Email Service
Your knowledge of the Cloudflare Email Service, Email Routing or Email Sending may be outdated. **Prefer retrieval over pre-training** for any Cloudflare Email Service task.
Cloudflare Email Service lets you send transactional emails and route incoming emails, all within the Cloudflare platform. Your knowledge of this product may be outdated — it launched in 2025 and is evolving rapidly. **Prefer retrieval over pre-training** for any Email Service task.
**If there is any discrepancy between this skill and the sources below, always trust the original source.** The Cloudflare docs, REST API spec, `@cloudflare/workers-types`, and Agents SDK repo are the source of truth. This skill is a convenience guide — it may lag behind the latest changes. When in doubt, retrieve from the sources below and use what they say.
## Retrieval Sources
| Source | How to retrieve | Use for |
|--------|----------------|---------|
| Cloudflare docs | Cloudflare MCP `docs` tool or URL `https://developers.cloudflare.com/email-service/index.md` | API reference, limits, pricing, latest features |
| REST API spec | `https://developers.cloudflare.com/api/resources/email_sending/index.md` | OpenAPI spec for the Email Sending REST API |View the complete source on GitHubcloudflare-one
When your agent uses it
Design, configure, troubleshoot, or review Cloudflare One Zero Trust and SASE deployments. Use cloudflare-one-migrations for migration planning from other vendors.
What it loads into context
Frontmatter
39 tokensAlways available to the agent
SKILL.md
4,769 tokensWhen the skill is activated
Reference documents
1,575 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Assessment Prompts
- Guardrails
- Output Defaults
- Validation Prompts
- API Safety
- Skill feedback
Files
SKILL.mdcore24,043 bytesSKILL.mdcore24,043 bytesreferences/skill-feedback.mddoc2,799 bytes../gateway-workers/SKILL.mddoc4,684 bytes
Read SKILL.md
# Cloudflare One
Before citing limits, settings, API fields, category IDs, or exact UI paths, retrieve current information from the [Cloudflare One docs](https://developers.cloudflare.com/cloudflare-one/index.md), the Cloudflare docs MCP server, or the Cloudflare API schema.
## Workflow
1. Classify the ask: architecture, configuration, troubleshooting, migration, or review.
2. Gather context: account ID, users/sites/apps, identity provider, SCIM/group sync, device management, traffic path, compliance constraints, and rollout blast radius.
3. Retrieve only the current docs needed for the products involved: Access, Gateway, WARP/device client, Tunnel/Mesh, Cloudflare WAN, DLP, CASB, device posture, or identity.
4. If account access is available, inspect existing resources before proposing or making changes: Access apps/policies/groups/IdPs, Gateway rules/lists/categories, device profiles/posture checks, tunnels/routes, DNS/resolver settings, and locations/sites.
5. Propose the change set with prerequisites, validation, and rollback. For risky changes, stage disabled or scoped to a pilot group/site unless the user explicitly asks otherwise.
## Assessment Prompts
View the complete source on GitHubcloudflare-one-migrations
When your agent uses it
Assess and plan migrations from existing VPN, SWG, or SASE platforms to Cloudflare One, including policy mapping, parity gaps, and rollout.
What it loads into context
Frontmatter
40 tokensAlways available to the agent
SKILL.md
2,561 tokensWhen the skill is activated
Reference documents
655 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Exports To Ask For
- Mapping Heuristics
- Migration Assessment Prompts
- Source-Specific Traps
- Gotchas
- Validation Gates
- Assessment Template
- Skill feedback
Files
SKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesSKILL.mdcore12,682 bytesreferences/skill-feedback.mddoc2,832 bytes
Read SKILL.md
# Cloudflare One Migrations
Retrieve current Cloudflare docs, Cloudflare API schemas, and source-vendor export docs before generating exact configuration.
## Workflow
1. Identify the source stack: Zscaler ZIA, Zscaler ZPA, Palo Alto NGFW/Prisma/GlobalProtect, legacy VPN/SWG/SD-WAN, or other.
2. Request exports and logs before mapping. Prefer structured exports over screenshots or prose summaries.
3. Build an inventory: identities, groups, apps, destinations, connectors/tunnels, DNS/URL/firewall/DLP/TLS policies, objects/lists, locations/sites, exceptions, hit counts, and compliance logging.
4. Produce a mapping plan: source object, Cloudflare One target resource, confidence, prerequisites, unsupported/partial mappings, and manual decisions.
5. Create dependencies first: identity/[SCIM](https://developers.cloudflare.com/cloudflare-one/team-and-resources/users/scim/index.md), connectors/on-ramps, routes/DNS, lists/objects, TLS bypasses, Access apps/policies, Gateway policies, DLP/CASB, logging.
6. Stage safely: use a migration prefix, create disabled/audit-mode rules by default, pilot with small groups/sites, compare logs, then expand rollout.
7. Account for every source rule. Each rule must map to a Cloudflare object or an explicit Not Migrated row with reason and security impact.
View the complete source on GitHubdurable-objects
When your agent uses it
Build, debug, or review Cloudflare Durable Objects code for persistent state and coordination.
What it loads into context
Frontmatter
25 tokensAlways available to the agent
SKILL.md
1,395 tokensWhen the skill is activated
Reference documents
3,642 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Retrieval Sources
- When to Use
- Reference Documentation
- Core Principles
- Quick Reference
- Critical Rules
- Authorization
- Anti-Patterns (NEVER)
- Stub Creation
- Storage Operations
- Alarms
- Testing
- Skill feedback
Files
SKILL.mdcore6,259 bytesreferences/rules.mddoc2,851 bytesreferences/skill-feedback.mddoc2,802 bytesreferences/testing.mddoc2,521 bytesreferences/workers.mddoc7,991 bytes
Read SKILL.md
# Durable Objects
Build stateful, coordinated applications on Cloudflare's edge using Durable Objects.
## Retrieval Sources
Your knowledge of Durable Objects APIs and configuration may be outdated. **Prefer retrieval over pre-training** for any Durable Objects task.
| Resource | URL |
|----------|-----|
| Docs | https://developers.cloudflare.com/durable-objects/index.md |
| API Reference | https://developers.cloudflare.com/durable-objects/api/index.md |
| Best Practices | https://developers.cloudflare.com/durable-objects/best-practices/index.md |
| Examples | https://developers.cloudflare.com/durable-objects/examples/index.md |View the complete source on GitHubgateway-workers
When your agent uses it
Build, debug, or review Cloudflare Workers invoked by the Forward action in Gateway HTTP policies, including the GatewayMiddleware entrypoint, Gateway types, context, and continuation.
What it loads into context
Frontmatter
41 tokensAlways available to the agent
SKILL.md
926 tokensWhen the skill is activated
Reference documents
6,645 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Context
- Gateway behavior
- Validation
- Related skills
- Skill feedback
Files
../cloudflare-one/SKILL.mddoc24,043 bytesSKILL.mdcore4,684 bytesreferences/skill-feedback.mddoc2,802 bytes../workers-best-practices/SKILL.mddoc6,237 bytes
Read SKILL.md
# Gateway Workers
Read the current [Forward guide](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md) before implementing a Worker. It defines how Gateway invokes Workers on permitted HTTP traffic. Retrieve the relevant page below rather than copying setup, API payloads, or limits into the project from memory.
## Workflow
1. Inspect the existing Worker and choose a [Worker template](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/worker-templates/index.md) for the required transformation, synthetic response, or background task.
2. Export a named `GatewayMiddleware` class extending `WorkerEntrypoint` from `cloudflare:workers`. Implement `handle(request, context, next)` and return a `Response`. Gateway calls this method through RPC. A default `fetch()` handler alone does not implement the Forward contract.
3. For TypeScript, follow the chosen template's current package installation and type-import instructions.
4. Use the second argument for [Gateway context](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/available-context/index.md). It describes the original request and stays unchanged when the Worker modifies the request. Keep it distinct from `this.ctx` (Workers execution context) and `this.env` (bindings).
5. Continue the user's request with `next(request)` at most once, or return a synthetic response without calling it. `next()` always targets the original destination. Changes to the destination URL or host are ignored, and it cannot redirect, retry, or fan out. Use `fetch()` to send a request to a different destination. It creates an independent subrequest that does not inherit the user's Gateway policies or egress configuration.
## Context
View the complete source on GitHubk2
When your agent uses it
Build and troubleshoot Cloudflare K2 or K2 Streams durable logs. Use for stream setup, producing from Workers or HTTP, configuring retention and inputs, and consuming through subscriptions.
What it loads into context
Frontmatter
42 tokensAlways available to the agent
SKILL.md
493 tokensWhen the skill is activated
Reference documents
646 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Documentation
- Skill feedback
Files
SKILL.mdcore2,361 bytesSKILL.mdcore2,361 bytesreferences/skill-feedback.mddoc2,763 bytes
Read SKILL.md
# Cloudflare K2
K2 is a durable log for decoupling event producers and consumers. Start with the [K2 overview](https://developers.cloudflare.com/k2/index.md), then retrieve the relevant current documentation before giving setup instructions, code, limits, availability, permissions, or API details. The docs are the source of truth over this skill. While [cloudflare-docs PR #33858](https://github.com/cloudflare/cloudflare-docs/pull/33858) remains open, use its proposed pages if the public URLs have not been published.
## Documentation
| Task | Docs | Check for |
|------|------|-----------|
| Create a stream and try K2 | [Get started](https://developers.cloudflare.com/k2/get-started/index.md) | Prerequisites, setup sequence, current API examples |
| Understand streams and subscriptions | [Concepts](https://developers.cloudflare.com/k2/concepts/index.md) | Record model and delivery behavior |
| Configure a stream | [Configuration](https://developers.cloudflare.com/k2/configuration/index.md) | Inputs, authentication, CORS, retention |
| Produce from HTTP or a Worker | [Produce records](https://developers.cloudflare.com/k2/features/produce/index.md) | Request and binding syntax, encoding, errors, retries |
| Consume through subscriptions | [Consume records](https://developers.cloudflare.com/k2/features/consume/index.md) | Leases, acknowledgements, retries, errors |
| Size a stream or consumer | [Limits](https://developers.cloudflare.com/k2/platform/limits/index.md) | Current quotas and size limits |View the complete source on GitHubnextjs-on-cloudflare
When your agent uses it
Build, migrate, and deploy Next.js apps on Cloudflare Workers with vinext. Use when starting a Next.js project on Cloudflare, moving an existing app to Workers, choosing between vinext and OpenNext, or setting up vinext for Workers. For setup, migration, or deployment, install vinext's upstream skills with `npx skills add cloudflare/vinext` if missing, then read and follow the applicable skill and docs.
What it loads into context
Frontmatter
100 tokensAlways available to the agent
SKILL.md
632 tokensWhen the skill is activated
Reference documents
655 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Why vinext
- Use the upstream workflow
- Skill feedback
Files
SKILL.mdcore2,898 bytesSKILL.mdcore2,898 bytesreferences/skill-feedback.mddoc2,817 bytes
Read SKILL.md
# Next.js on Cloudflare
**Use vinext rather than OpenNext for new Next.js projects on Cloudflare Workers.** This is the default in the [Cloudflare Next.js guide](https://developers.cloudflare.com/workers/framework-guides/web-apps/nextjs/index.md). Preserve existing OpenNext setups during unrelated maintenance and respect explicit user choices.
## Why vinext
[vinext](https://github.com/cloudflare/vinext) reimplements the Next.js API surface on Vite:
- Familiar Next.js development: App Router, Pages Router, React Server Components, and supported `next/*` imports.
- Vite tooling: fast HMR, native ESM, and the Vite plugin ecosystem.
- Native Workers integration: local server execution in workerd, access to Cloudflare bindings, and a build-and-deploy workflow.
- Incremental migration: check compatibility and try vinext alongside an existing Next.js setup.
## Use the upstream workflowView the complete source on GitHubsandbox-migrate-to-next
When your agent uses it
Migrate Cloudflare Sandbox apps from stable @cloudflare/sandbox to @cloudflare/sandbox@next (SDK 1.0 preview). Use sandbox-next for apps already on the preview.
What it loads into context
Frontmatter
49 tokensAlways available to the agent
SKILL.md
1,983 tokensWhen the skill is activated
Reference documents
655 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Workflow
- Hard rules
- Replacement map
- Audit
- Clarify (ask when needed)
- Upgrade
- Validate
- Red flags — stop and fix
- Skill feedback
Files
SKILL.mdcore8,089 bytesSKILL.mdcore8,089 bytesSKILL.mdcore8,089 bytesSKILL.mdcore8,089 bytesreferences/skill-feedback.mddoc2,826 bytes
Read SKILL.md
# Migrate stable → Sandbox SDK 1.0 preview (`@next`)
**Perform** the port. Follow the steps in order. Depth lives in docs—fetch the linked page when a step needs detail.
Human guide: [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · [1.0 preview](https://developers.cloudflare.com/sandbox/index.md)
**New projects** should start on `@next` (**`sandbox-next`**), not this skill. **Day-to-day stable work** → **`sandbox-stable`**. Deprecated-API cleanup **without** moving to `@next` → [2026 deprecation guide](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) first if needed.
Existing apps should migrate **when you can**, so you are ready when 1.0 becomes the stable release. Do **not** force production cutover without the user agreeing.
**Prefer installed `@next` types and the migrate doc over memory.**
## Workflow
View the complete source on GitHubsandbox-next
When your agent uses it
Build or maintain Cloudflare Sandbox apps on @cloudflare/sandbox@next (SDK 1.0 preview). Use sandbox-migrate-to-next when porting a stable app.
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
1,666 tokensWhen the skill is activated
Reference documents
1,267 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Gate — confirm the package line
- 2. Contract — non-negotiables
- 3. Retrieve — open the doc for the task
- 4. Before you ship
- Skill feedback
Files
SKILL.mdcore6,921 bytesreferences/api-quick-ref.mddoc2,312 bytesreferences/examples.mddoc526 bytesreferences/skill-feedback.mddoc2,793 bytes
Read SKILL.md
# Sandbox SDK — `@next` (1.0 preview)
Isolated Linux environments on [Cloudflare Containers](https://developers.cloudflare.com/containers/index.md), driven from Workers.
**Prefer preview docs and installed `@next` types over memory.** APIs change; this skill is a gate, a contract, and a retrieval map—not a full manual.
We recommend **new projects** on this line. Apps still on the default package use **`sandbox-stable`**. Port only when asked, via **`sandbox-migrate-to-next`**.
## 1. Gate — confirm the package line
Before writing code, inspect the app:
| Check | Must match |
| ----- | ---------- |View the complete source on GitHubsandbox-stable
When your agent uses it
Build or maintain Cloudflare Sandbox apps on the stable @cloudflare/sandbox package. Use sandbox-next for preview apps and sandbox-migrate-to-next for stable-to-preview migrations.
What it loads into context
Frontmatter
43 tokensAlways available to the agent
SKILL.md
2,172 tokensWhen the skill is activated
Reference documents
649 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- 1. Gate — confirm the package line
- 2. Contract — non-negotiables
- 3. Retrieve — open the doc for the task
- 4. Before you ship
- Skill feedback
Files
SKILL.mdcore9,496 bytesSKILL.mdcore9,496 bytesreferences/skill-feedback.mddoc2,799 bytes
Read SKILL.md
# Sandbox SDK — stable package
Isolated Linux environments on [Cloudflare Containers](https://developers.cloudflare.com/containers/index.md), driven from Workers.
**Prefer the main Sandbox docs and installed stable types over memory.** This skill is a gate, a contract, and a retrieval map—not a full manual.
This line is the **current stable** default npm package. The main [Sandbox documentation](https://developers.cloudflare.com/sandbox/index.md) describes it. Existing apps can stay here and keep shipping.
We recommend **new projects** on `@cloudflare/sandbox@next` with **`sandbox-next`**. When you can, plan a move with **`sandbox-migrate-to-next`** so you are ready when 1.0 becomes the stable release. Do not force that port unless the user asks.
## 1. Gate — confirm the package line
Before writing code, inspect the app:
View the complete source on GitHubturnstile-spin
When your agent uses it
Set up, repair, or migrate to Cloudflare Turnstile bot verification in an existing frontend and backend, including server-side Siteverify.
What it loads into context
Frontmatter
37 tokensAlways available to the agent
SKILL.md
6,608 tokensWhen the skill is activated
Reference documents
10,109 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Framework references
- When to load this skill
- Choose the flow before responding
- Conversation flow
- Migrating from another CAPTCHA
- Edge cases
- Skill feedback
Scripts executed separately
scripts/auth-probe.shscripts/persist-skill.shscripts/validate.shscripts/widget-create.shtests/test_persist_skill.py
Files
README.mddoc3,892 bytesSKILL.mdcore28,876 bytesSKILL.mdcore28,876 bytesSKILL.mdcore28,876 bytesSKILL.mdcore28,876 bytesreferences/astro.mddoc5,929 bytesreferences/hugo.mddoc3,852 bytesreferences/nextjs-app.mddoc7,643 bytesreferences/nextjs-pages.mddoc2,737 bytesreferences/skill-feedback.mddoc2,799 bytesreferences/sveltekit.mddoc5,513 bytesreferences/vanilla-html.mddoc5,756 bytesscripts/auth-probe.shruns11,270 bytesscripts/persist-skill.shruns3,696 bytesscripts/validate.shruns4,438 bytesscripts/widget-create.shruns4,149 bytestests/test_persist_skill.pyruns3,132 bytestests/validation.mddoc3,314 bytes
Read SKILL.md
# Turnstile Spin skill
Turns the prompt "set up Turnstile" into a working end-to-end integration: a widget, frontend snippets at every chosen insertion point, canonical server-side siteverify in the customer's existing backend, and a real validation pass before reporting success.
You are the agent. Run the wizard below by invoking the scripts under `scripts/` and branching on their JSON output. The scripts hold the deterministic logic (API calls, retry/error handling); your job is orchestration, codebase reading, confirmation, and the frontend + backend edits.
This file is the canonical machine-readable behavior. Product requirements come from the [Turnstile documentation](https://developers.cloudflare.com/turnstile/index.md), and the hosted prompt must mirror this behavior.
## Framework references
Read the reference for the existing frontend when wiring the integration:
| Frontend | Reference |
|---|---|View the complete source on GitHubweb-perf
When your agent uses it
Audit, diagnose, or optimize website loading and interaction performance, Core Web Vitals, and Lighthouse performance scores.
What it loads into context
Frontmatter
30 tokensAlways available to the agent
SKILL.md
2,085 tokensWhen the skill is activated
Reference documents
649 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Retrieval Sources
- FIRST: Verify MCP Tools Available
- Key Guidelines
- Quick Reference
- Workflow
- Phase 5: Codebase Analysis
- Output Format
- Skill feedback
Files
SKILL.mdcore8,446 bytesSKILL.mdcore8,446 bytesSKILL.mdcore8,446 bytesreferences/skill-feedback.mddoc2,781 bytes
Read SKILL.md
# Web Performance Audit
Your knowledge of web performance metrics, thresholds, and tooling APIs may be outdated. **Prefer retrieval over pre-training** when citing specific numbers or recommendations.
## Retrieval Sources
| Source | How to retrieve | Use for |
|--------|----------------|---------|
| web.dev | `https://web.dev/articles/vitals` | Core Web Vitals thresholds, definitions |
| Chrome DevTools docs | `https://developer.chrome.com/docs/devtools/performance` | Tooling APIs, trace analysis |
| Lighthouse scoring | `https://developer.chrome.com/docs/lighthouse/performance/performance-scoring` | Score weights, metric thresholds |
## FIRST: Verify MCP Tools Available
View the complete source on GitHubworkers-best-practices
When your agent uses it
Cloudflare Workers best practices for production applications. Use when writing, reviewing, or configuring Workers.
What it loads into context
Frontmatter
29 tokensAlways available to the agent
SKILL.md
1,230 tokensWhen the skill is activated
Reference documents
6,096 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- References
- Keep Compatibility Dates Current
- Enable Observability
- Place Compute Near Regional Databases
- Anti-Patterns to Flag
- Validation
- Scope
- Skill feedback
Files
SKILL.mdcore6,237 bytesSKILL.mdcore6,237 bytesreferences/configuration.mddoc6,722 bytesreferences/platform-apis.mddoc3,876 bytesreferences/runtime-patterns.mddoc13,872 bytesreferences/skill-feedback.mddoc2,823 bytes
Read SKILL.md
Your knowledge of Cloudflare Workers APIs, types, and configuration may be outdated. **Prefer retrieval over pre-training** when writing or reviewing Workers code.
Use the project's installed versions, generated types, and Wrangler compatibility settings as the baseline for existing code. Retrieve relevant Cloudflare documentation to verify API, configuration, runtime behavior, and limit claims.
## References
Read the sections relevant to the task:
| Reference | When to use it |
|-----------|----------------|
| [Configuration and observability](references/configuration.md) | Compatibility dates, bindings, generated types, secrets, logs, and traces |
| [Runtime patterns](references/runtime-patterns.md) | Streaming, promise lifetime, request state, service calls, security, and runtime tests |
| [Platform API checks](references/platform-apis.md) | Handler signatures, platform classes, binding access, and serialization |
View the complete source on GitHubworkers-profiling
When your agent uses it
Profile or debug CPU usage and memory allocation in deployed Cloudflare Workers and Durable Objects. Then use this information to optimize your code.
What it loads into context
Frontmatter
35 tokensAlways available to the agent
SKILL.md
434 tokensWhen the skill is activated
Reference documents
652 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Retrieve the docs
- Profiling steps
- Inspect the evidence
- Optimise
- Report findings
- Skill feedback
Files
SKILL.mdcore2,204 bytesSKILL.mdcore2,204 bytesSKILL.mdcore2,204 bytesSKILL.mdcore2,204 bytesSKILL.mdcore2,204 bytesreferences/skill-feedback.mddoc2,808 bytes
Read SKILL.md
# Workers profiling
Find expensive functions or memory allocations in deployed code and come up with ways to fix them.
## Retrieve the docs
Start with the [production profiling guide](https://developers.cloudflare.com/workers/observability/profiling-in-production/index.md) to understand how
Workers and Durable Objects profiling works.
## Profiling steps
1. Identify the symptom and affected workload: CPU usage, latency, allocation pressure, or memory growth.
2. Confirm the account, Worker, environment, and deployed version with the user.
3. For a Durable Object, also confirm its owning Worker, namespace, and instance.View the complete source on GitHubwrangler
When your agent uses it
Run or troubleshoot Wrangler CLI commands in projects that have a wrangler.jsonc, wrangler.json, or wrangler.toml file, including local development, Previews, deployment, and resource management. For new projects and projects without a Wrangler configuration file, use the cf CLI instead.
What it loads into context
Frontmatter
64 tokensAlways available to the agent
SKILL.md
2,268 tokensWhen the skill is activated
Reference documents
646 tokensLoaded on request
Token counts are estimates. Scripts run separately; they are not counted as reference context.
The playbook
- Inspect the Project
- Retrieve What the Task Needs
- Apply the Change
- Work with Workers Previews
- Validate
- Skill feedback
Files
SKILL.mdcore11,813 bytesSKILL.mdcore11,813 bytesSKILL.mdcore11,813 bytesreferences/skill-feedback.mddoc2,781 bytes
Read SKILL.md
# Wrangler CLI
Use this skill only when the project has `wrangler.jsonc`, `wrangler.json`, or `wrangler.toml` and no `cloudflare.config.ts`, or when the user asks for Wrangler. For a new project, a project with `cloudflare.config.ts`, or a project with no Cloudflare configuration, use the Cloudflare CLI (`cf`) instead: load the `cf-cli` skill if it is installed, or follow [Use cf with coding agents](https://developers.cloudflare.com/cf/agents/index.md). Do not add Wrangler to those projects.
Use the project's Wrangler version and retrieve the relevant documentation before writing commands or configuration. CLI flags and configuration fields change; do not rely on memorized examples.
## Inspect the Project
- Find the package manager, installed Wrangler version, package scripts, framework, and Wrangler config. Run commands through the project's scripts or package manager so they use its local version. Install dependencies using the existing lockfile when needed; do not silently upgrade Wrangler to match current docs. If the project has a Wrangler configuration file but Wrangler is not a dependency, follow the [installation guide](https://developers.cloudflare.com/workers/wrangler/install-and-update/index.md) to add it locally.
- Identify the config used by the build or deploy command, including framework-generated config. Edit its source rather than generated output.
- Establish the target account, Worker, environment, and resource before running commands that change them. For data operations, determine whether the target is local or remote.
## Retrieve What the Task Needs
View the complete source on GitHubSkills included
- agents-sdk
- basin
- cf-cli
- cloudflare
- cloudflare-email-service
- cloudflare-one
- cloudflare-one-migrations
- durable-objects
- gateway-workers
- k2
- nextjs-on-cloudflare
- sandbox-migrate-to-next
- sandbox-next
- sandbox-stable
- turnstile-spin
- web-perf
- workers-best-practices
- workers-profiling
- wrangler
Repository facts
- License
- Apache-2.0
- Created
- Dec 10, 2025
- Last pushed
- Nov 6, 2026
- Forks
- 343
- Open issues
- 20
- Project activity
- Active
Rank over the last 12 weeks
Now #376 · best #316 · down 28 in 30 days
- #372 on Oct 30
- #371 on Oct 31
- #369 on Nov 1
- #370 from Nov 2 to Nov 5
- #372 on Nov 6
- #376 since Nov 7
74 earlier periods
- #305 on Aug 2
- #313 on Aug 8
- #314 on Aug 9
- #322 on Aug 10
- #319 on Aug 11
- #318 on Aug 12
- #319 on Aug 13
- #318 on Aug 14
- #314 on Aug 15
- #318 on Aug 16
- #317 on Aug 17
- #324 on Aug 18
- #320 from Aug 19 to Aug 20
- #324 on Aug 21
- #316 on Aug 22
- #321 on Aug 23
- #323 on Aug 24
- #325 on Aug 25
- #323 on Aug 26
- #322 from Aug 27 to Aug 28
- #323 on Aug 29
- #316 on Aug 30
- #325 on Aug 31
- #330 on Sep 1
- #327 on Sep 2
- #332 on Sep 3
- #324 on Sep 4
- #326 from Sep 5 to Sep 6
- #335 on Sep 7
- #333 on Sep 8
- #335 on Sep 9
- #334 on Sep 10
- #330 on Sep 11
- #334 on Sep 12
- #332 on Sep 13
- #335 on Sep 14
- #337 from Sep 15 to Sep 16
- #335 on Sep 17
- #337 on Sep 18
- #331 on Sep 19
- #338 from Sep 20 to Sep 21
- #343 on Sep 22
- #337 on Sep 23
- #335 on Sep 24
- #333 on Sep 25
- #331 on Sep 26
- #337 on Sep 27
- #338 on Sep 28
- #346 on Sep 29
- #341 on Sep 30
- #339 on Oct 1
- #343 on Oct 2
- #336 on Oct 3
- #332 on Oct 4
- #340 on Oct 5
- #341 on Oct 6
- #344 on Oct 7
- #348 on Oct 8
- #353 on Oct 9
- #344 on Oct 10
- #345 on Oct 11
- #352 on Oct 12
- #353 on Oct 13
- #352 on Oct 14
- #349 on Oct 15
- #353 on Oct 16
- #348 on Oct 17
- #355 from Oct 18 to Oct 19
- #357 on Oct 20
- #358 from Oct 21 to Oct 22
- #356 on Oct 23
- #352 on Oct 24
- #362 on Oct 25
- #371 from Oct 28 to Oct 29
Before you install
Network or broad shellAutomated signals, not a guarantee
Checked Nov 3, 2026
Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.
Show 41 notes
skills/agents-sdk/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents-sdk/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/agents-sdk/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cf-cli/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cf-cli/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-email-service/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-email-service/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzedskills/cloudflare-one-migrations/SKILL.md:1Analysis incomplete: Referenced executable target unavailable; not analyzed
- No broad tool permissions
- 4 dangerous shell commandsin 3 files: cloudflare/references/c3/gotchas.md:46 sandbox-migrate-to-next/SKILL.md:63 turnstile-spin/scripts/persist-skill.sh:60
- 2,158 network referencesin 229 files: cloudflare-one/SKILL.md:8 cloudflare/SKILL.md:14 sandbox-stable/SKILL.md:8 and 226 more
- No hidden or obfuscated text
- No instruction overrides
- 5 executable scriptsin 5 files: turnstile-spin/scripts/auth-probe.sh:1 turnstile-spin/scripts/persist-skill.sh:1 turnstile-spin/scripts/validate.sh:1 and 2 more
- 101 references to secretsin 38 files: basin/references/pipelines/api.md:18 turnstile-spin/scripts/validate.sh:9 basin/references/pipelines/configuration.md:42 and 35 more
- No requests to vote in Hot
Show all 2,268 signals by file
.claude-plugin/marketplace.json
- Network accessline 1
{ "$schema": "https://code.claude.com/schemas/marketplace.json", - Network accessline 2
"$schema": "https://code.claude.com/schemas/marketplace.json", - Network accessline 9
"name": "Cloudflare", "email": "support@cloudflare.com", "url": "https://www.cloudflare.com/" - Network accessline 10
"email": "support@cloudflare.com", "url": "https://www.cloudflare.com/" }, - Network accessline 11
"url": "https://www.cloudflare.com/" - Network accessline 19
"name": "Cloudflare", "email": "support@cloudflare.com", "url": "https://www.cloudflare.com/" - Network accessline 20
"email": "support@cloudflare.com", "url": "https://www.cloudflare.com/" }, - Network accessline 21
"url": "https://www.cloudflare.com/" - Network accessline 22
}, "homepage": "https://developers.cloudflare.com/", "repository": "https://github.com/cloudflare/skills", - Network accessline 23
"homepage": "https://developers.cloudflare.com/", - Network accessline 24
"repository": "https://github.com/cloudflare/skills",
.claude-plugin/plugin.json
- Network accessline 7
"name": "Cloudflare", "email": "support@cloudflare.com", "url": "https://www.cloudflare.com/" - Network accessline 8
"email": "support@cloudflare.com", "url": "https://www.cloudflare.com/" }, - Network accessline 9
"url": "https://www.cloudflare.com/" - Network accessline 10
}, "homepage": "https://developers.cloudflare.com/", "repository": "https://github.com/cloudflare/skills", - Network accessline 11
"homepage": "https://developers.cloudflare.com/", - Network accessline 12
"repository": "https://github.com/cloudflare/skills",
.mcp.json
skills/agents-sdk/SKILL.md
- Network accessline 12
Cloudflare docs: https://developers.cloudflare.com/agents/index.md - Network accessline 14
| Topic | Docs URL | Use for | |-------|----------|---------| | Getting started | [Quick start](https://developers.cloudflare.com/agents/getting-started/quick-start/index.md) | First agent, project setup | - Network accessline 15
|-------|----------|---------| | Getting started | [Quick start](https://developers.cloudflare.com/agents/getting-started/quick-start/index.md) | First agent, project setup | | Adding to existing project | [Add to existing project](https:// - Network accessline 16
| Getting started | [Quick start](https://developers.cloudflare.com/agents/getting-started/quick-start/index.md) | First agent, project setup | - Network accessline 17
| Adding to existing project | [Add to existing project](https://developers.cloudflare.com/agents/getting-started/add-to-existing-project/index.md) | Install into existing Workers app | - Network accessline 18
| Configuration | [Configuration](https://developers.cloudflare.com/agents/runtime/operations/configuration/index.md) | `wrangler.jsonc`, bindings, assets, deployment | - Network accessline 19
| Agent class | [Agents API](https://developers.cloudflare.com/agents/runtime/agents-api/index.md) | Agent lifecycle, patterns, pitfalls | - Network accessline 20
| State | [Store and sync state](https://developers.cloudflare.com/agents/runtime/lifecycle/state/index.md) | `setState`, `validateStateChange`, persistence | - Network accessline 21
| Routing | [Routing](https://developers.cloudflare.com/agents/runtime/communication/routing/index.md) | URL patterns, `routeAgentRequest` | - Network accessline 22
| Callable methods | [Callable methods](https://developers.cloudflare.com/agents/runtime/lifecycle/callable-methods/index.md) | `@callable`, RPC, streaming, timeouts | - Network accessline 23
| Scheduling | [Schedule tasks](https://developers.cloudflare.com/agents/runtime/execution/schedule-tasks/index.md) | `schedule()`, `scheduleEvery()`, cron | - Network accessline 24
| Workflows | [Run workflows](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md) | `AgentWorkflow`, durable multi-step tasks | - Network accessline 25
| HTTP/WebSockets | [WebSockets](https://developers.cloudflare.com/agents/runtime/communication/websockets/index.md) | Lifecycle hooks, hibernation | - Network accessline 26
| Chat agents | [Chat agents](https://developers.cloudflare.com/agents/communication-channels/chat/chat-agents/index.md) | `AIChatAgent`, streaming, tools, persistence | - Network accessline 27
| Client SDK | [Client SDK](https://developers.cloudflare.com/agents/communication-channels/chat/client-sdk/index.md) | `useAgent`, `AgentClient`, state, RPC, HTTP | - Network accessline 28
| Client tools | [Client tools](https://developers.cloudflare.com/agents/harnesses/think/client-tools/index.md) | Client-side tools, `autoContinueAfterToolResult` | - Network accessline 29
| Server-driven messages | [Autonomous responses](https://developers.cloudflare.com/agents/communication-channels/chat/autonomous-responses/index.md) | `saveMessages`, `waitUntilStable`, server-initiated turns | - Network accessline 30
| Resumable streaming | [Chat agents](https://developers.cloudflare.com/agents/communication-channels/chat/chat-agents/index.md#resumable-streaming) | Stream recovery on disconnect | - Network accessline 31
| Email | [Email](https://developers.cloudflare.com/agents/communication-channels/email/index.md) | Email routing, secure reply resolver | - Network accessline 32
| MCP client | [MCP client](https://developers.cloudflare.com/agents/model-context-protocol/apis/client-api/index.md) | Connecting to MCP servers | - Network accessline 33
| MCP server | [MCP server](https://developers.cloudflare.com/agents/model-context-protocol/apis/handler-api/index.md) | Building MCP servers with `createMcpHandler` | - Network accessline 34
| MCP transports | [MCP transports](https://developers.cloudflare.com/agents/model-context-protocol/protocol/transport/index.md) | Streamable HTTP, SSE, RPC transport options | - Network accessline 35
| Securing MCP servers | [Securing MCP](https://developers.cloudflare.com/agents/model-context-protocol/guides/securing-mcp-server/index.md) | OAuth, proxy MCP, hardening | - Network accessline 36
| Human-in-the-loop | [Human-in-the-loop](https://developers.cloudflare.com/agents/concepts/agentic-patterns/human-in-the-loop/index.md) | Workflow approvals, elicitation, timeout handling | - Network accessline 37
| Durable execution | [Durable execution](https://developers.cloudflare.com/agents/runtime/execution/durable-execution/index.md) | `runFiber()`, `stash()`, surviving DO eviction | - Network accessline 38
| Queue | [Queue](https://developers.cloudflare.com/agents/runtime/execution/queue-tasks/index.md) | Built-in FIFO queue, `queue()` | - Network accessline 39
| Retries | [Retries](https://developers.cloudflare.com/agents/runtime/execution/retries/index.md) | `this.retry()`, backoff/jitter | - Network accessline 40
| Observability | [Observability](https://developers.cloudflare.com/agents/runtime/operations/observability/index.md) | Diagnostics-channel events | - Network accessline 41
| Push notifications | [Push notifications](https://developers.cloudflare.com/agents/communication-channels/webhooks/push-notifications/index.md) | Web Push + VAPID from agents | - Network accessline 42
| Webhooks | [Webhooks](https://developers.cloudflare.com/agents/communication-channels/webhooks/index.md) | Receiving external webhooks | - Network accessline 43
| Cross-domain auth | [Cross-domain auth](https://developers.cloudflare.com/agents/runtime/operations/cross-domain-authentication/index.md) | WebSocket auth, tokens, CORS | - Network accessline 44
| Readonly connections | [Readonly](https://developers.cloudflare.com/agents/runtime/communication/readonly-connections/index.md) | `shouldConnectionBeReadonly` | - Network accessline 45
| Voice | [Voice](https://developers.cloudflare.com/agents/communication-channels/voice/index.md) | Experimental STT/TTS, `withVoice` | - Network accessline 46
| Browse the web | [Browser tools](https://developers.cloudflare.com/agents/tools/browser/index.md) | Experimental CDP browser automation | - Network accessline 47
| Think | [Think](https://developers.cloudflare.com/agents/harnesses/think/index.md) | Experimental higher-level chat agent class | - Network accessline 48
| Migrations | [AI SDK v5](https://github.com/cloudflare/agents/blob/main/docs/agents/migration-to-ai-sdk-v5.md), [AI SDK v6](https://github.com/cloudflare/agents/blob/main/docs/agents/migration-to-ai-sdk-v6.md) | Upgrading `@cloudflare/ai- - Network accessline 148
Custom routing: use `getAgentByName(env.MyAgent, "instance-id")` then `agent.fetch(request)`.
skills/agents-sdk/references/browse-the-web.md
- Network accessline 3
Fetch https://developers.cloudflare.com/agents/tools/browser/index.md for complete documentation. - Access to secretsline 23
[Credential-related source omitted] - Network accessline 52
- Need a real browser (JS rendering, screenshots, interaction) → browser tools - Just need HTML/API data → use `fetch()` instead (faster, cheaper) - Network accessline 53
- Just need HTML/API data → use `fetch()` instead (faster, cheaper) - Network accessline 60
const browser = await connectBrowser(this.env.BROWSER); const cdp = new CdpSession(browser); await cdp.send("Page.navigate", { url: "https://example.com" }); - Network accessline 62
await cdp.send("Page.navigate", { url: "https://example.com" });
skills/agents-sdk/references/callable.md
- Network accessline 3
Fetch https://developers.cloudflare.com/agents/runtime/lifecycle/callable-methods/index.md for complete documentation.
skills/agents-sdk/references/client-sdk.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Connect, sync state, call RPC, or send HTTP requests | [Client SDK](https://developers.cloudflare.com/agents/communication-channels/chat/client-sdk/index.md) — hooks, vanilla JS, typed cal - Network accessline 6
|------|---------------| | Connect, sync state, call RPC, or send HTTP requests | [Client SDK](https://developers.cloudflare.com/agents/communication-channels/chat/client-sdk/index.md) — hooks, vanilla JS, typed calls, streaming callbacks, - Network accessline 7
| Connect, sync state, call RPC, or send HTTP requests | [Client SDK](https://developers.cloudflare.com/agents/communication-channels/chat/client-sdk/index.md) — hooks, vanilla JS, typed calls, streaming callbacks, and connection options | - Network accessline 8
| Build chat UI | [Chat agents](https://developers.cloudflare.com/agents/communication-channels/chat/chat-agents/index.md) — `useAgentChat`, message rendering, status, and tool interactions | - Network accessline 9
| Authenticate across origins | [Cross-domain authentication](https://developers.cloudflare.com/agents/runtime/operations/cross-domain-authentication/index.md) — token validation and WebSocket authentication |
skills/agents-sdk/references/codemode.md
- Network accessline 3
Fetch https://developers.cloudflare.com/agents/tools/codemode/api-reference/index.md for complete documentation. - Network accessline 91
3. Code runs in an isolated Worker sandbox via `DynamicWorkerExecutor` 4. Tool calls route back to the host via Workers RPC 5. External `fetch()` is blocked by default — sandbox can only call your tools - Network accessline 93
5. External `fetch()` is blocked by default — sandbox can only call your tools
skills/agents-sdk/references/configuration.md
- Network accessline 3
Fetch https://developers.cloudflare.com/agents/runtime/operations/configuration/index.md for complete documentation.
skills/agents-sdk/references/durable-execution.md
- Network accessline 3
Fetch https://developers.cloudflare.com/agents/runtime/execution/durable-execution/index.md for complete documentation.
skills/agents-sdk/references/email.md
- Network accessline 3
Fetch https://developers.cloudflare.com/agents/communication-channels/email/index.md for complete documentation. - Network accessline 60
async fetch(request, env) { - Access to secretsline 87
[Credential-related source omitted] - Access to secretsline 101
[Credential-related source omitted] - Access to secretsline 119
[Credential-related source omitted]
skills/agents-sdk/references/human-in-the-loop.md
- Network accessline 5
| Need | Documentation | |------|---------------| | Approve chat tool execution or run a browser-side tool | [Chat agents](https://developers.cloudflare.com/agents/communication-channels/chat/chat-agents/index.md) — `needsApproval`, approva - Network accessline 6
|------|---------------| | Approve chat tool execution or run a browser-side tool | [Chat agents](https://developers.cloudflare.com/agents/communication-channels/chat/chat-agents/index.md) — `needsApproval`, approval responses, client tools - Network accessline 7
| Approve chat tool execution or run a browser-side tool | [Chat agents](https://developers.cloudflare.com/agents/communication-channels/chat/chat-agents/index.md) — `needsApproval`, approval responses, client tools, and custom denial messa - Network accessline 8
| Pause a durable background task or collect MCP input | [Human-in-the-loop patterns](https://developers.cloudflare.com/agents/concepts/agentic-patterns/human-in-the-loop/index.md) — workflow approval, timeout handling, and elicitation |
skills/agents-sdk/references/mcp.md
- Network accessline 7
| Task | Documentation | |------|---------------| | Build a server | [Handler API](https://developers.cloudflare.com/agents/model-context-protocol/apis/handler-api/index.md) — server factories, Worker entrypoint, dependencies, and examples - Network accessline 8
|------|---------------| | Build a server | [Handler API](https://developers.cloudflare.com/agents/model-context-protocol/apis/handler-api/index.md) — server factories, Worker entrypoint, dependencies, and examples | | Migrate an existing s - Network accessline 9
| Build a server | [Handler API](https://developers.cloudflare.com/agents/model-context-protocol/apis/handler-api/index.md) — server factories, Worker entrypoint, dependencies, and examples | - Network accessline 10
| Migrate an existing server | [MCP SDK v2 migration](https://developers.cloudflare.com/agents/model-context-protocol/guides/migrate-to-mcp-sdk-v2/index.md) — stateless migration and temporary legacy paths | - Network accessline 11
| Connect to servers and use their tools | [Client API](https://developers.cloudflare.com/agents/model-context-protocol/apis/client-api/index.md) — connections, OAuth, tools, resources, and retries | - Network accessline 12
| Choose a transport | [Transports](https://developers.cloudflare.com/agents/model-context-protocol/protocol/transport/index.md) — remote HTTP and existing RPC integrations | - Network accessline 13
| Secure a server | [Securing MCP servers](https://developers.cloudflare.com/agents/model-context-protocol/guides/securing-mcp-server/index.md) — OAuth and proxy security |
skills/agents-sdk/references/observability.md
- Network accessline 3
Fetch https://developers.cloudflare.com/agents/runtime/operations/observability/index.md for complete documentation.
skills/agents-sdk/references/queue-retries.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Enqueue, inspect, and remove background work; understand sequential processing and failure handling | [Queue tasks](https://developers.cloudflare.com/agents/runtime/execution/queue-tasks/i - Network accessline 6
|------|---------------| | Enqueue, inspect, and remove background work; understand sequential processing and failure handling | [Queue tasks](https://developers.cloudflare.com/agents/runtime/execution/queue-tasks/index.md) | | Retry an ope - Network accessline 7
| Enqueue, inspect, and remove background work; understand sequential processing and failure handling | [Queue tasks](https://developers.cloudflare.com/agents/runtime/execution/queue-tasks/index.md) | - Network accessline 8
| Retry an operation or configure retries for queued and scheduled callbacks | [Retries](https://developers.cloudflare.com/agents/runtime/execution/retries/index.md) | - Network accessline 9
| Delay recovery or run work on a recurring schedule | [Schedule tasks](https://developers.cloudflare.com/agents/runtime/execution/schedule-tasks/index.md) |
skills/agents-sdk/references/routing.md
- Network accessline 3
Fetch https://developers.cloudflare.com/agents/runtime/communication/routing/index.md for complete documentation. - Network accessline 31
export default { async fetch(req, env) { - Network accessline 32
async fetch(req, env) { - Network accessline 34
if (url.pathname.startsWith("/api/")) { const agent = getAgentByName(env.MyAgent, "singleton"); return agent.fetch(req); - Network accessline 35
const agent = getAgentByName(env.MyAgent, "singleton"); return agent.fetch(req); } - Network accessline 36
return agent.fetch(req); - Network accessline 63
agent: "MyAgent", name: "instance-1", host: "https://my-worker.workers.dev", - Network accessline 64
name: "instance-1", host: "https://my-worker.workers.dev", basePath: "/api/agents", - Network accessline 65
host: "https://my-worker.workers.dev",
skills/agents-sdk/references/server-driven-messages.md
- Network accessline 3
Read [Autonomous responses](https://developers.cloudflare.com/agents/communication-channels/chat/autonomous-responses/index.md) for scheduled, webhook, email, and agent-triggered turns, message schemas, response hooks, and client streaming
skills/agents-sdk/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/agents-sdk/references/state-scheduling.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Define state, validate updates, choose state versus SQL, and query SQLite | [Store and sync state](https://developers.cloudflare.com/agents/runtime/lifecycle/state/index.md) | - Network accessline 6
|------|---------------| | Define state, validate updates, choose state versus SQL, and query SQLite | [Store and sync state](https://developers.cloudflare.com/agents/runtime/lifecycle/state/index.md) | | Synchronize state with React or van - Network accessline 7
| Define state, validate updates, choose state versus SQL, and query SQLite | [Store and sync state](https://developers.cloudflare.com/agents/runtime/lifecycle/state/index.md) | - Network accessline 8
| Synchronize state with React or vanilla JavaScript clients | [Client SDK](https://developers.cloudflare.com/agents/communication-channels/chat/client-sdk/index.md) | - Network accessline 9
| Select delayed, date-based, cron, or interval execution; manage schedules and callbacks | [Schedule tasks](https://developers.cloudflare.com/agents/runtime/execution/schedule-tasks/index.md) | - Network accessline 10
| Configure schedule retry behavior | [Retries](https://developers.cloudflare.com/agents/runtime/execution/retries/index.md) | - Network accessline 11
| Handle lifecycle events, connections, and hibernation | [WebSockets](https://developers.cloudflare.com/agents/runtime/communication/websockets/index.md) |
skills/agents-sdk/references/streaming-chat.md
- Network accessline 7
| Task | Documentation | |------|---------------| | Build a chat agent | [Chat agent example](https://developers.cloudflare.com/agents/examples/chat-agent/index.md) — setup, provider, server, and UI | - Network accessline 8
|------|---------------| | Build a chat agent | [Chat agent example](https://developers.cloudflare.com/agents/examples/chat-agent/index.md) — setup, provider, server, and UI | | Implement or customize chat | [Chat agents](https://developers - Network accessline 9
| Build a chat agent | [Chat agent example](https://developers.cloudflare.com/agents/examples/chat-agent/index.md) — setup, provider, server, and UI | - Network accessline 10
| Implement or customize chat | [Chat agents](https://developers.cloudflare.com/agents/communication-channels/chat/chat-agents/index.md) — message format, tools, custom streams, persistence, concurrency, cancellation, and recovery | - Network accessline 11
| Connect a client | [Client guidance](client-sdk.md) — React, vanilla JS, HTTP, and authentication | | Stream non-chat results | [Callable methods](https://developers.cloudflare.com/agents/runtime/lifecycle/callable-methods/index.md) — ser - Network accessline 12
| Stream non-chat results | [Callable methods](https://developers.cloudflare.com/agents/runtime/lifecycle/callable-methods/index.md) — server and client streaming RPC |
skills/agents-sdk/references/think.md
skills/agents-sdk/references/voice.md
skills/agents-sdk/references/webhooks-push.md
- Network accessline 5
Fetch https://developers.cloudflare.com/agents/communication-channels/webhooks/index.md for complete documentation. - Network accessline 10
export default { async fetch(req: Request, env: Env) { - Network accessline 11
async fetch(req: Request, env: Env) { - Network accessline 14
const entityId = url.pathname.split("/")[2]; const agent = getAgentByName(env.MyAgent, entityId); return agent.fetch(req); - Network accessline 15
const agent = getAgentByName(env.MyAgent, entityId); return agent.fetch(req); } - Network accessline 16
return agent.fetch(req); - Access to secretsline 29
[Credential-related source omitted] - Network accessline 43
Fetch https://developers.cloudflare.com/agents/communication-channels/webhooks/push-notifications/index.md for complete documentation. - Access to secretsline 72
[Credential-related source omitted] - Access to secretsline 73
[Credential-related source omitted]
skills/agents-sdk/references/workflows.md
- Network accessline 3
Use Agents for interactive communication and state management. Add a Workflow when a task needs durable multi-step execution, independent retries, or waits for external approval. Choose based on recovery needs; consult [Run Workflows](https - Network accessline 7
| Task | Documentation | | --- | --- | | Define a typed `AgentWorkflow`, start it from an Agent, and configure bindings | [Quick start](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md#quick-start) | - Network accessline 8
| --- | --- | | Define a typed `AgentWorkflow`, start it from an Agent, and configure bindings | [Quick start](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md#quick-start) | | Call back into the originating - Network accessline 9
| Define a typed `AgentWorkflow`, start it from an Agent, and configure bindings | [Quick start](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md#quick-start) | - Network accessline 10
| Call back into the originating Agent and understand durable versus non-durable helpers | [AgentWorkflow class](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md#agentworkflow-class) | - Network accessline 11
| Send events, query instances, pause, resume, terminate, or delete tracked workflows | [Agent workflow methods](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md#agent-workflow-methods) | - Network accessline 12
| Receive progress, completion, errors, and custom events | [Lifecycle callbacks](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md#lifecycle-callbacks) | - Network accessline 13
| Approve or reject a waiting task | [Human-in-the-loop approval](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md#human-in-the-loop-approval) | - Network accessline 14
| Persist Workflow results into Agent state | [State synchronization](https://developers.cloudflare.com/agents/runtime/execution/run-workflows/index.md#state-synchronization) | - Network accessline 15
| Define steps, parameters, retries, and returned values | [Workers API](https://developers.cloudflare.com/workflows/build/workers-api/index.md) | - Network accessline 19
Keep external side effects within durable steps, make retried operations idempotent, and persist the values needed after recovery through step results. Use the [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of- - Network accessline 21
Progress reports and client broadcasts may repeat on retry. Use the documented durable step helpers for persistent Agent state changes and completion reporting; see [bidirectional communication](https://developers.cloudflare.com/agents/runt
skills/basin/SKILL.md
- Network accessline 8
Basin ingests and transforms events, manages Apache Iceberg tables in R2, and queries them with distributed SQL. Start with the [Basin overview](https://developers.cloudflare.com/basin/index.md) and retrieve the relevant current docs before - Network accessline 12
Cloudflare Data Platform is now **Basin**. Cloudflare Pipelines, R2 Data Catalog, and R2 SQL are now **Basin Pipelines**, **Basin Catalog**, and **Basin SQL**. Existing resources and configurations continue to work. The prior Wrangler comma - Network accessline 16
| Need | Product | Reference | Current docs | |------|---------|-----------|--------------| | Receive events, transform rows, and deliver to R2 | Basin Pipelines | [Pipelines guide](references/pipelines/README.md) | [Basin Pipelines](https: - Network accessline 17
|------|---------|-----------|--------------| | Receive events, transform rows, and deliver to R2 | Basin Pipelines | [Pipelines guide](references/pipelines/README.md) | [Basin Pipelines](https://developers.cloudflare.com/basin-pipelines/in - Network accessline 18
| Receive events, transform rows, and deliver to R2 | Basin Pipelines | [Pipelines guide](references/pipelines/README.md) | [Basin Pipelines](https://developers.cloudflare.com/basin-pipelines/index.md) | - Network accessline 19
| Manage Iceberg metadata, table maintenance, and engine access | Basin Catalog | [Catalog guide](references/catalog/README.md) | [Basin Catalog](https://developers.cloudflare.com/basin-catalog/index.md) | - Network accessline 20
| Query Iceberg tables with analytical SQL | Basin SQL | [SQL guide](references/sql/README.md) | [Basin SQL](https://developers.cloudflare.com/basin-sql/index.md) | - Network accessline 22
Typical flow: Basin Pipelines → Basin Catalog tables in R2 → Basin SQL or a compatible external engine. Begin with the [Basin getting started guide](https://developers.cloudflare.com/basin/get-started/guide/index.md) for an end-to-end setup - Access to secretsline 24
[Credential-related source omitted]
skills/basin/references/catalog/README.md
- Network accessline 3
Use Basin Catalog for Iceberg analytics and data pipelines on object storage. For transactional application queries, consider a database; for unstructured objects, use [R2](https://developers.cloudflare.com/r2/index.md). - Network accessline 14
Copy the actual **Catalog URI** and **Warehouse name** from the catalog detail page or Wrangler's enable output. Pass both to the selected engine; do not reconstruct them from an assumed bucket naming convention. Retrieve [Manage catalogs](
skills/basin/references/catalog/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Enable or disable catalogs; inspect status, credentials, namespaces, tables, and maintenance configuration | [Basin Catalog control-plane API](https://developers.cloudflare.com/api/resourc - Network accessline 6
|------|---------------| | Enable or disable catalogs; inspect status, credentials, namespaces, tables, and maintenance configuration | [Basin Catalog control-plane API](https://developers.cloudflare.com/api/resources/r2_data_catalog/index. - Network accessline 7
| Enable or disable catalogs; inspect status, credentials, namespaces, tables, and maintenance configuration | [Basin Catalog control-plane API](https://developers.cloudflare.com/api/resources/r2_data_catalog/index.md) — select the affected - Network accessline 8
| Connect and create tables through Python | [PyIceberg configuration](https://developers.cloudflare.com/basin-catalog/config-examples/pyiceberg/index.md) | - Network accessline 9
| Connect, create, write, and query through Spark | [PySpark configuration](https://developers.cloudflare.com/basin-catalog/config-examples/spark-python/index.md) | - Network accessline 10
| Plan automatic compaction and snapshot expiration | [Table maintenance](https://developers.cloudflare.com/basin-catalog/table-maintenance/index.md) | - Network accessline 11
| Delete rows, tables, or associated files | [Deleting data](https://developers.cloudflare.com/basin-catalog/deleting-data/index.md) | - Network accessline 22
[Credential-related source omitted] - Access to secretsline 22
[Credential-related source omitted] - Access to secretsline 23
[Credential-related source omitted] - Network accessline 43
| `total_snapshots` | Total before pruning | | `returned_snapshots` | Count in `metadata.snapshots` (max 10) | | `metadata` | Standard [Iceberg TableMetadata](https://iceberg.apache.org/spec/#table-metadata-fields), arrays pruned to 10 | - Network accessline 45
| `metadata` | Standard [Iceberg TableMetadata](https://iceberg.apache.org/spec/#table-metadata-fields), arrays pruned to 10 |
skills/basin/references/catalog/configuration.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Enable a catalog and obtain connection details | [Enable Basin Catalog](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md#enable-r2-data-catalog-on-a-bucket) | - Network accessline 6
|------|---------------| | Enable a catalog and obtain connection details | [Enable Basin Catalog](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md#enable-r2-data-catalog-on-a-bucket) | | Select credentials for reade - Network accessline 7
| Enable a catalog and obtain connection details | [Enable Basin Catalog](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md#enable-r2-data-catalog-on-a-bucket) | - Network accessline 8
| Select credentials for readers, writers, or maintenance | [Authenticate your Iceberg engine](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md#authenticate-your-iceberg-engine) | - Network accessline 9
| Configure compaction and its service credential | [Enable compaction](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md#enable-compaction) | - Network accessline 10
| Configure snapshot retention | [Enable snapshot expiration](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md#enable-snapshot-expiration) | - Network accessline 11
| Choose file sizes, retention policy, and maintenance scope | [Table maintenance](https://developers.cloudflare.com/basin-catalog/table-maintenance/index.md) | - Network accessline 12
| Connect a Python client | [PyIceberg](https://developers.cloudflare.com/basin-catalog/config-examples/pyiceberg/index.md) | - Network accessline 13
| Connect Spark | [PySpark](https://developers.cloudflare.com/basin-catalog/config-examples/spark-python/index.md) | - Network accessline 14
| Connect another query engine | [Engine configuration guides](https://developers.cloudflare.com/basin-catalog/config-examples/index.md) | - Network accessline 15
| Disable catalog access | [Disable Basin Catalog](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md#disable-r2-data-catalog-on-a-bucket) |
skills/basin/references/catalog/gotchas.md
- Network accessline 5
| Check | Documentation | |-------|---------------| | Catalog enablement, Catalog URI, or Warehouse mismatch | [Manage catalogs](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md) | - Network accessline 6
|-------|---------------| | Catalog enablement, Catalog URI, or Warehouse mismatch | [Manage catalogs](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md) | | Reader/writer token scope or file-access denial | [Engine a - Network accessline 7
| Catalog enablement, Catalog URI, or Warehouse mismatch | [Manage catalogs](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md) | - Network accessline 8
| Reader/writer token scope or file-access denial | [Engine authentication](https://developers.cloudflare.com/basin-catalog/manage-catalogs/index.md#authenticate-your-iceberg-engine) — inspect both catalog and storage permissions | - Network accessline 9
| Missing maintenance credentials or wrong table/catalog configuration | [Control-plane API](https://developers.cloudflare.com/api/resources/r2_data_catalog/index.md) and [enable compaction](https://developers.cloudflare.com/basin-catalog/m - Network accessline 10
| Compaction backlog, retention, or orphaned files | [Table maintenance](https://developers.cloudflare.com/basin-catalog/table-maintenance/index.md) | - Network accessline 11
| PyIceberg connection or table creation | [PyIceberg configuration](https://developers.cloudflare.com/basin-catalog/config-examples/pyiceberg/index.md) | - Network accessline 12
| Spark dependency, credential-vending, or signing configuration | [PySpark configuration](https://developers.cloudflare.com/basin-catalog/config-examples/spark-python/index.md) | - Network accessline 13
| Deleted data is still present | [Deleting data](https://developers.cloudflare.com/basin-catalog/deleting-data/index.md) | - Network accessline 14
| Catalog request or maintenance-job diagnosis | [Metrics and analytics](https://developers.cloudflare.com/basin-catalog/observability/metrics/index.md) |
skills/basin/references/catalog/patterns.md
- Network accessline 5
| Need | Starting point | |------|----------------| | Python catalog operations and ingestion without a Spark deployment | [PyIceberg](https://developers.cloudflare.com/basin-catalog/config-examples/pyiceberg/index.md) | - Network accessline 6
|------|----------------| | Python catalog operations and ingestion without a Spark deployment | [PyIceberg](https://developers.cloudflare.com/basin-catalog/config-examples/pyiceberg/index.md) | | Existing Spark ETL and distributed table pr - Network accessline 7
| Python catalog operations and ingestion without a Spark deployment | [PyIceberg](https://developers.cloudflare.com/basin-catalog/config-examples/pyiceberg/index.md) | - Network accessline 8
| Existing Spark ETL and distributed table processing | [PySpark](https://developers.cloudflare.com/basin-catalog/config-examples/spark-python/index.md) | - Network accessline 9
| Connect an existing SQL engine | [Engine configuration guides](https://developers.cloudflare.com/basin-catalog/config-examples/index.md) | - Network accessline 15
Plan ingestion, query, and maintenance responsibilities together. Prefer [automatic table maintenance](https://developers.cloudflare.com/basin-catalog/table-maintenance/index.md) when it meets the workload; align retention with time-travel
skills/basin/references/pipelines/README.md
- Network accessline 9
| Topic | URL | |-------|-----| | Overview / getting started | `https://developers.cloudflare.com/basin-pipelines/getting-started/index.md` | - Network accessline 10
|-------|-----| | Overview / getting started | `https://developers.cloudflare.com/basin-pipelines/getting-started/index.md` | | Streams (write, manage, Logpush) | `https://developers.cloudflare.com/basin-pipelines/streams/index.md` | - Network accessline 11
| Overview / getting started | `https://developers.cloudflare.com/basin-pipelines/getting-started/index.md` | - Network accessline 12
| Streams (write, manage, Logpush) | `https://developers.cloudflare.com/basin-pipelines/streams/index.md` | - Network accessline 13
| Sinks | `https://developers.cloudflare.com/basin-pipelines/sinks/index.md` | - Network accessline 14
| Basin Pipelines & SQL transforms | `https://developers.cloudflare.com/basin-pipelines/pipelines/index.md` | - Network accessline 15
| SQL reference (statements, types) | `https://developers.cloudflare.com/basin-pipelines/sql-reference/index.md` | - Network accessline 16
| Wrangler commands | `https://developers.cloudflare.com/basin-pipelines/reference/wrangler-commands/index.md` | - Network accessline 17
| Terraform | `https://developers.cloudflare.com/basin-pipelines/reference/terraform/index.md` | - Network accessline 18
| Limits | `https://developers.cloudflare.com/basin-pipelines/platform/limits/index.md` | - Network accessline 19
| Pricing | `https://developers.cloudflare.com/basin-pipelines/platform/pricing/index.md` | - Network accessline 20
| Metrics (GraphQL) | `https://developers.cloudflare.com/basin-pipelines/observability/metrics/index.md` | - Network accessline 50
export default { async fetch(req: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 51
async fetch(req: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Access to secretsline 55
[Credential-related source omitted] - Network accessline 88
- [Basin Catalog](../catalog/) — Iceberg sink destination - [Basin SQL](../sql/) — query the ingested data - [r2](https://developers.cloudflare.com/r2/index.md) · [queues](https://developers.cloudflare.com/queues/index.md) · [workers](https - Network accessline 90
- [r2](https://developers.cloudflare.com/r2/index.md) · [queues](https://developers.cloudflare.com/queues/index.md) · [workers](https://developers.cloudflare.com/workers/index.md)
skills/basin/references/pipelines/api.md
- Network accessline 3
Code templates and verified behavior. For the full SQL function set and HTTP status semantics, pull `https://developers.cloudflare.com/basin-pipelines/sql-reference/index.md` and the streams docs. - Network accessline 13
export default { async fetch(req: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 14
async fetch(req: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Access to secretsline 18
[Credential-related source omitted] - Network accessline 22
- Throws on network errors — wrap in try/catch or use `ctx.waitUntil()` for fire-and-forget. - Validation errors are **not** thrown here (deferred during processing — see [gotchas.md](gotchas.md)). - Payload/rate limits apply — check `https - Network accessline 24
- Payload/rate limits apply — check `https://developers.cloudflare.com/basin-pipelines/platform/limits/index.md` before sizing batches. - Network accessline 29
https://{stream-id}.ingest.cloudflare.com - Network accessline 35
# Batch (preferred) curl -X POST https://{stream-id}.ingest.cloudflare.com \ - Network accessline 36
curl -X POST https://{stream-id}.ingest.cloudflare.com \ - Network accessline 40
# Single event — auto-wrapped in an array curl -X POST https://{stream-id}.ingest.cloudflare.com \ - Network accessline 41
curl -X POST https://{stream-id}.ingest.cloudflare.com \ - Network accessline 51
Base: `https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/pipelines/v1` - Network accessline 54
[Credential-related source omitted] - Network accessline 55
[Credential-related source omitted] - Access to secretsline 55
[Credential-related source omitted] - Network accessline 56
[Credential-related source omitted] - Access to secretsline 56
[Credential-related source omitted] - Network accessline 57
[Credential-related source omitted] - Access to secretsline 57
[Credential-related source omitted] - Network accessline 59
[Credential-related source omitted] - Network accessline 60
[Credential-related source omitted] - Access to secretsline 60
[Credential-related source omitted] - Network accessline 62
[Credential-related source omitted] - Network accessline 63
[Credential-related source omitted] - Access to secretsline 63
[Credential-related source omitted] - Network accessline 64
[Credential-related source omitted] - Access to secretsline 64
[Credential-related source omitted] - Network accessline 65
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Network accessline 82
Row-level only — no GROUP BY/aggregation. CTEs (`WITH`) and `UNNEST` are supported. Full function list: `https://developers.cloudflare.com/basin-pipelines/sql-reference/index.md`. - Network accessline 105
[Credential-related source omitted] - Network accessline 106
[Credential-related source omitted] - Access to secretsline 106
[Credential-related source omitted] - Network accessline 108
# 2. Table created yet? (3–7 min on first flush) curl -s "https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/r2-catalog/$BUCKET/namespaces/my_ns/tables" \ - Network accessline 109
[Credential-related source omitted] - Access to secretsline 109
[Credential-related source omitted] - Access to secretsline 110
[Credential-related source omitted] - Network accessline 112
# 3. Data present? (Basin SQL) curl -s -X POST \ - Network accessline 113
[Credential-related source omitted] - Access to secretsline 113
[Credential-related source omitted] - Network accessline 114
"https://api.sql.cloudflarestorage.com/api/v1/accounts/$ACCOUNT_ID/basin-sql/query/$BUCKET" \ - Access to secretsline 115
[Credential-related source omitted]
skills/basin/references/pipelines/configuration.md
- Network accessline 3
Templates for creating streams, sinks, and pipelines via CLI, REST, or Terraform. For the full flag/field list and allowed values, pull `https://developers.cloudflare.com/basin-pipelines/reference/wrangler-commands/index.md` and the streams - Network accessline 23
Field types include `string`, `bool`, `int32/64`, `float32/64`, `timestamp`, `json`, `binary`, `list`, `struct` (with nested `items`/`fields`). For the authoritative type list, see `https://developers.cloudflare.com/basin-pipelines/sql-refe - Access to secretsline 42
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Network accessline 65
Base: `https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ID/pipelines/v1` - Network accessline 68
[Credential-related source omitted] - Network accessline 69
[Credential-related source omitted] - Access to secretsline 69
[Credential-related source omitted] - Network accessline 76
[Credential-related source omitted] - Network accessline 77
[Credential-related source omitted] - Access to secretsline 77
[Credential-related source omitted] - Access to secretsline 81
[Credential-related source omitted] - Network accessline 86
[Credential-related source omitted] - Network accessline 87
[Credential-related source omitted] - Access to secretsline 87
[Credential-related source omitted] - Network accessline 112
Resources: `cloudflare_pipeline_stream`, `cloudflare_pipeline_sink`, `cloudflare_pipeline`. For current attribute schemas pull `https://developers.cloudflare.com/basin-pipelines/reference/terraform/index.md`.
skills/basin/references/pipelines/gotchas.md
- Network accessline 3
Non-obvious failure modes (not well covered by docs). For current limits and error semantics, pull `https://developers.cloudflare.com/basin-pipelines/platform/limits/index.md`. - Network accessline 19
[Credential-related source omitted] - Access to secretsline 19
[Credential-related source omitted] - Network accessline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted]
skills/basin/references/pipelines/patterns.md
- Network accessline 3
Code-first patterns. For observability dataset/field schemas and Logpush dataset lists, pull `https://developers.cloudflare.com/basin-pipelines/observability/metrics/index.md` and `https://developers.cloudflare.com/basin-pipelines/streams/l - Network accessline 8
export default { async fetch(req, env, ctx) { - Network accessline 9
async fetch(req, env, ctx) { - Network accessline 46
export default { async scheduled(event, env, ctx) { const items = await (await fetch("https://api.example.com/data")).json(); - Network accessline 47
async scheduled(event, env, ctx) { const items = await (await fetch("https://api.example.com/data")).json(); const events = items.map(i => ({ - Network accessline 48
const items = await (await fetch("https://api.example.com/data")).json(); - Network accessline 90
Same R2 API token works. Endpoint: `https://api.cloudflare.com/client/v4/graphql`. Datasets cover ingestion, processing (incl. `decodeErrors`), delivery, sink writes (`filesWritten`), and user/validation errors — see the metrics doc for the - Network accessline 93
[Credential-related source omitted] - Access to secretsline 93
[Credential-related source omitted] - Access to secretsline 94
[Credential-related source omitted]
skills/basin/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/basin/references/sql/README.md
- Network accessline 9
| Topic | URL | |-------|-----| | Overview / get started | `https://developers.cloudflare.com/basin-sql/get-started/index.md` | - Network accessline 10
|-------|-----| | Overview / get started | `https://developers.cloudflare.com/basin-sql/get-started/index.md` | | Query data | `https://developers.cloudflare.com/basin-sql/query-data/index.md` | - Network accessline 11
| Overview / get started | `https://developers.cloudflare.com/basin-sql/get-started/index.md` | - Network accessline 12
| Query data | `https://developers.cloudflare.com/basin-sql/query-data/index.md` | - Network accessline 13
| SQL reference | `https://developers.cloudflare.com/basin-sql/sql-reference/index.md` | - Network accessline 14
| Aggregate functions | `https://developers.cloudflare.com/basin-sql/sql-reference/aggregate-functions/index.md` | - Network accessline 15
| Scalar functions | `https://developers.cloudflare.com/basin-sql/sql-reference/scalar-functions/index.md` | - Network accessline 16
| Complex types | `https://developers.cloudflare.com/basin-sql/sql-reference/complex-types/index.md` | - Network accessline 17
| Limitations & best practices | `https://developers.cloudflare.com/basin-sql/reference/limitations-best-practices/index.md` | - Network accessline 18
| Wrangler commands | `https://developers.cloudflare.com/basin-sql/reference/wrangler-commands/index.md` | - Network accessline 19
| Pricing | `https://developers.cloudflare.com/basin-sql/platform/pricing/index.md` | - Network accessline 23
| Value | Format | |-------|--------| | REST endpoint | `https://api.sql.cloudflarestorage.com/api/v1/accounts/{ACCOUNT_ID}/basin-sql/query/{BUCKET}` | - Network accessline 24
|-------|--------| | REST endpoint | `https://api.sql.cloudflarestorage.com/api/v1/accounts/{ACCOUNT_ID}/basin-sql/query/{BUCKET}` | | Wrangler | `npx wrangler basin sql query "{WAREHOUSE}" "<SQL>"` with `WRANGLER_BASIN_SQL_AUTH_TOKEN` set - Network accessline 25
| REST endpoint | `https://api.sql.cloudflarestorage.com/api/v1/accounts/{ACCOUNT_ID}/basin-sql/query/{BUCKET}` | - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 52
There is no `env.R2_SQL` binding. Query from a Worker via `fetch()` to the REST endpoint with the token as a secret (see [patterns.md](patterns.md#dashboard-worker)).
skills/basin/references/sql/api.md
- Network accessline 8
POST https://api.sql.cloudflarestorage.com/api/v1/accounts/{ACCOUNT_ID}/basin-sql/query/{BUCKET} - Access to secretsline 14
[Credential-related source omitted] - Network accessline 117
Failed queries return `{"success": false, "errors": [{"code": ..., "message": ...}]}`. For error codes and troubleshooting, see `https://developers.cloudflare.com/basin-sql/troubleshooting/index.md`.
skills/basin/references/sql/configuration.md
- Network accessline 3
Auth and setup. For the current permission matrix and wrangler flags, pull `https://developers.cloudflare.com/basin-sql/reference/wrangler-commands/index.md` and the Basin Catalog manage-catalogs doc. - Access to secretsline 26
[Credential-related source omitted] - Access to secretsline 27
[Credential-related source omitted] - Network accessline 35
curl -X POST \ - Network accessline 36
"https://api.sql.cloudflarestorage.com/api/v1/accounts/$ACCOUNT_ID/basin-sql/query/$BUCKET" \
skills/basin/references/sql/gotchas.md
- Network accessline 3
Operational pitfalls. For the authoritative list of supported features, unsupported features, and recommended workarounds, pull `https://developers.cloudflare.com/basin-sql/reference/limitations-best-practices/index.md` and `https://develop - Network accessline 7
- **No Workers binding.** There is no `env.R2_SQL`. Query the REST endpoint via `fetch()` from a Worker ([patterns.md](patterns.md#dashboard-worker)), or use D1 / an external DB for OLTP. - Access to secretsline 8
[Credential-related source omitted] - Access to secretsline 32
[Credential-related source omitted]
skills/basin/references/sql/patterns.md
- Network accessline 3
Code templates for CLI, REST, and Worker access. For performance/partitioning best practices, pull `https://developers.cloudflare.com/basin-sql/reference/limitations-best-practices/index.md`. - Access to secretsline 8
[Credential-related source omitted] - Network accessline 22
API = f"https://api.sql.cloudflarestorage.com/api/v1/accounts/{ACCOUNT_ID}/basin-sql/query/{BUCKET}" - Network accessline 25
def r2sql(query): body = requests.post(API, headers=HEADERS, json={"query": query}, timeout=180).json() - Network accessline 26
body = requests.post(API, headers=HEADERS, json={"query": query}, timeout=180).json() - Network accessline 37
curl -X POST \ - Network accessline 38
"https://api.sql.cloudflarestorage.com/api/v1/accounts/$ACCOUNT_ID/basin-sql/query/$BUCKET" \ - Network accessline 45
No Basin SQL binding exists — query the REST endpoint via `fetch()`. - Access to secretsline 48
[Credential-related source omitted] - Network accessline 50
async function queryR2SQL(env: Env, query: string) { const url = `https://api.sql.cloudflarestorage.com/api/v1/accounts/${env.ACCOUNT_ID}/basin-sql/query/${env.BUCKET}`; const resp = await fetch(url, { - Network accessline 51
const url = `https://api.sql.cloudflarestorage.com/api/v1/accounts/${env.ACCOUNT_ID}/basin-sql/query/${env.BUCKET}`; const resp = await fetch(url, { method: "POST", - Network accessline 52
const resp = await fetch(url, { - Access to secretsline 54
[Credential-related source omitted] - Network accessline 61
export default { async fetch(req: Request, env: Env): Promise<Response> { - Network accessline 62
async fetch(req: Request, env: Env): Promise<Response> {
skills/cf-cli/SKILL.md
- Network accessline 12
Docs index: https://developers.cloudflare.com/cf/llms.txt - Network accessline 16
| Topic | Page | |-------|------| | Install, sign in, credential and account selection | https://developers.cloudflare.com/cf/get-started/index.md | - Network accessline 17
|-------|------| | Install, sign in, credential and account selection | https://developers.cloudflare.com/cf/get-started/index.md | | First Worker with `cf init`, `cf dev`, `cf deploy` | https://developers.cloudflare.com/cf/get-started/firs - Network accessline 18
| Install, sign in, credential and account selection | https://developers.cloudflare.com/cf/get-started/index.md | - Network accessline 19
| First Worker with `cf init`, `cf dev`, `cf deploy` | https://developers.cloudflare.com/cf/get-started/first-worker/index.md | - Network accessline 20
| Find, create, and delete resources from the terminal | https://developers.cloudflare.com/cf/get-started/resources/index.md | - Network accessline 21
| `cf` for Wrangler users | https://developers.cloudflare.com/cf/wrangler/index.md | - Network accessline 22
| Migrate a Wrangler project with `cf migrate` | https://developers.cloudflare.com/cf/wrangler/migrate/index.md | - Network accessline 23
| Wrangler-to-`cf` command and config reference | https://developers.cloudflare.com/cf/wrangler/reference/index.md | - Network accessline 24
| Develop, build, and deploy; modes and previews | https://developers.cloudflare.com/cf/projects/index.md | - Network accessline 25
| Typed `cloudflare.config.ts` | https://developers.cloudflare.com/cf/projects/cloudflare-config/index.md | - Network accessline 26
| Using `cf` with coding agents (safety rules) | https://developers.cloudflare.com/cf/agents/index.md | - Network accessline 27
| CI, API tokens, unattended authentication | https://developers.cloudflare.com/cf/ci/index.md | - Network accessline 28
| Environment variables | https://developers.cloudflare.com/cf/environment-variables/index.md | - Network accessline 29
| Find slow or expensive D1 databases and queries with `cf sql query` | https://developers.cloudflare.com/d1/observability/find-expensive-queries/index.md | - Network accessline 41
- `cf auth login` prints a link and a one-time code, then opens the browser. On a remote machine, over SSH, or in a container, add `--no-browser` so `cf` only prints the link; approve it from another device. Add `--force` to sign in again. - Network accessline 43
- Unattended agents and CI cannot complete `cf auth login` — set `CLOUDFLARE_API_TOKEN` instead (see https://developers.cloudflare.com/cf/ci/index.md). - Network accessline 77
- `cloudflare.config.ts` exists: use `cf`. - `wrangler.jsonc`, `wrangler.json`, or `wrangler.toml` exists, and no `cloudflare.config.ts`: keep Wrangler for `dev`, `build`, and `deploy`. Do not run `cf dev`, `cf build`, or `cf deploy` there - Network accessline 78
- `wrangler.jsonc`, `wrangler.json`, or `wrangler.toml` exists, and no `cloudflare.config.ts`: keep Wrangler for `dev`, `build`, and `deploy`. Do not run `cf dev`, `cf build`, or `cf deploy` there — they can generate a new configuration tha - Network accessline 79
- Neither exists: use `cf`, as [Use cf with coding agents](https://developers.cloudflare.com/cf/agents/index.md) recommends. Do not install Wrangler or create a Wrangler configuration file. - Network accessline 81
Product documentation often shows only Wrangler commands and `wrangler.jsonc` configuration. In a `cf` project, treat those as tasks to translate, not commands to run, and do not add a Wrangler configuration file. Use one CLI per project; t - Network accessline 90
For the current list, refer to "Commands not yet supported" in the [Wrangler to cf reference](https://developers.cloudflare.com/cf/wrangler/reference/index.md).
skills/cf-cli/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/cloudflare-email-service/SKILL.md
- Network accessline 16
| Source | How to retrieve | Use for | |--------|----------------|---------| | Cloudflare docs | Cloudflare MCP `docs` tool or URL `https://developers.cloudflare.com/email-service/index.md` | API reference, limits, pricing, latest features - Network accessline 17
|--------|----------------|---------| | Cloudflare docs | Cloudflare MCP `docs` tool or URL `https://developers.cloudflare.com/email-service/index.md` | API reference, limits, pricing, latest features | | REST API spec | `https://developers - Network accessline 18
| Cloudflare docs | Cloudflare MCP `docs` tool or URL `https://developers.cloudflare.com/email-service/index.md` | API reference, limits, pricing, latest features | - Network accessline 19
| REST API spec | `https://developers.cloudflare.com/api/resources/email_sending/index.md` | OpenAPI spec for the Email Sending REST API | - Network accessline 20
| Workers types | `https://www.npmjs.com/package/@cloudflare/workers-types` | Type signatures, binding shapes | - Network accessline 21
| Agents SDK docs | [Email agent walkthrough](https://developers.cloudflare.com/agents/examples/email-agent/index.md) | Email handling in Agents SDK | - Network accessline 36
|--------------|------|-----------| | **Send emails from a Cloudflare Worker** | Workers binding (no API keys needed) | [sending.md](references/sending.md) | | **Send emails from an AI agent built with [Cloudflare Agents SDK](https://develo - Network accessline 37
| **Send emails from a Cloudflare Worker** | Workers binding (no API keys needed) | [sending.md](references/sending.md) | | **Send emails from an AI agent built with [Cloudflare Agents SDK](https://developers.cloudflare.com/agents/index.md) - Network accessline 38
| **Send emails from an AI agent built with [Cloudflare Agents SDK](https://developers.cloudflare.com/agents/index.md)** | `onEmail()` + `replyToEmail()` in Agent class | [sending.md](references/sending.md) |
skills/cloudflare-email-service/references/cli-and-mcp.md
- Network accessline 5
For full CLI reference, run `npx wrangler email --help`. For Dashboard setup, see the [getting started docs](https://developers.cloudflare.com/email-service/get-started/index.md). - Network accessline 55
If you have the [Cloudflare MCP server](https://github.com/cloudflare/mcp) (`https://mcp.cloudflare.com/mcp`) configured, you can manage Email Service through its `search` and `execute` tools. - Network accessline 116
[Credential-related source omitted] - Access to secretsline 116
[Credential-related source omitted] - Access to secretsline 117
[Credential-related source omitted]
skills/cloudflare-email-service/references/deliverability.md
- Network accessline 3
For full details, see the [deliverability docs](https://developers.cloudflare.com/email-service/concepts/deliverability/index.md) and [email authentication docs](https://developers.cloudflare.com/email-service/concepts/email-authentication/ - Network accessline 28
See the [suppressions docs](https://developers.cloudflare.com/email-service/concepts/suppressions/index.md) for details. - Network accessline 53
1. Log in to the [Cloudflare dashboard](https://dash.cloudflare.com) and select your account. - Network accessline 79
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/limits" \ - Network accessline 100
curl "https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/suppression?page=1&per_page=100&order=created_at&direction=desc" \ - Network accessline 128
curl -X POST "https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/suppression" \ - Network accessline 139
curl -X DELETE "https://api.cloudflare.com/client/v4/accounts/{account_id}/email/sending/suppression/{suppression_id}" \ - Network accessline 145
Email Service exposes two zone-level datasets via the [GraphQL Analytics API](https://developers.cloudflare.com/analytics/graphql-api/index.md). You can explore the schema interactively at [graphql.cloudflare.com/explorer](https://graphql.c - Network accessline 261
**curl example:** - Network accessline 264
curl "https://api.cloudflare.com/client/v4/graphql" \
skills/cloudflare-email-service/references/rest-api.md
- Network accessline 7
| Task | Read | |------|------| | Authenticate, send an email, or find the complete request schema | [REST API](https://developers.cloudflare.com/email-service/api/send-emails/rest-api/index.md) and its linked Email Sending API reference | - Network accessline 8
|------|------| | Authenticate, send an email, or find the complete request schema | [REST API](https://developers.cloudflare.com/email-service/api/send-emails/rest-api/index.md) and its linked Email Sending API reference | | Set multiple r - Network accessline 9
| Authenticate, send an email, or find the complete request schema | [REST API](https://developers.cloudflare.com/email-service/api/send-emails/rest-api/index.md) and its linked Email Sending API reference | - Network accessline 10
| Set multiple recipients, CC/BCC, or named addresses | [Specify recipients](https://developers.cloudflare.com/email-service/examples/email-sending/recipients/index.md) (REST examples) | - Network accessline 11
| Encode attachments | [REST attachments](https://developers.cloudflare.com/email-service/api/send-emails/rest-api/index.md#attachments) | - Network accessline 12
| Add custom headers | [Email headers](https://developers.cloudflare.com/email-service/reference/headers/index.md) | - Network accessline 13
| Check recipient, message-size, or sending quotas | [Limits](https://developers.cloudflare.com/email-service/platform/limits/index.md) | - Network accessline 14
| Interpret delivery outcomes | [REST response](https://developers.cloudflare.com/email-service/api/send-emails/rest-api/index.md#response) | - Network accessline 15
| Diagnose errors and decide whether to retry | [REST error handling](https://developers.cloudflare.com/email-service/api/send-emails/rest-api/index.md#error-handling) |
skills/cloudflare-email-service/references/routing.md
- Network accessline 5
For full API details, see the [Email Routing docs](https://developers.cloudflare.com/email-service/api/route-emails/email-handler/index.md). - Access to secretsline 17
[Credential-related source omitted] - Network accessline 94
Use [postal-mime](https://www.npmjs.com/package/postal-mime) to parse raw MIME content: - Access to secretsline 157
[Credential-related source omitted]
skills/cloudflare-email-service/references/sending.md
- Network accessline 5
Read the documentation for the selected task before implementing. Inspect the project's installed Wrangler and Agents SDK versions, configuration, and existing conventions first. Run `wrangler types` through the project's package manager af - Network accessline 7
| Task | Read | |------|------| | Configure the binding, send a message, or maintain existing MIME-based sending | [Workers API](https://developers.cloudflare.com/email-service/api/send-emails/workers-api/index.md) | - Network accessline 8
|------|------| | Configure the binding, send a message, or maintain existing MIME-based sending | [Workers API](https://developers.cloudflare.com/email-service/api/send-emails/workers-api/index.md) | | Restrict sender or destination addres - Network accessline 9
| Configure the binding, send a message, or maintain existing MIME-based sending | [Workers API](https://developers.cloudflare.com/email-service/api/send-emails/workers-api/index.md) | - Network accessline 10
| Restrict sender or destination addresses | [Configure send bindings](https://developers.cloudflare.com/email-service/configuration/send-bindings/index.md) | - Network accessline 11
| Set multiple recipients, CC/BCC, or named addresses | [Specify recipients](https://developers.cloudflare.com/email-service/examples/email-sending/recipients/index.md) | - Network accessline 12
| Add files, inline images, or uploaded attachments | [Email attachments](https://developers.cloudflare.com/email-service/examples/email-sending/email-attachments/index.md) | - Network accessline 13
| Set custom headers or diagnose header validation | [Email headers](https://developers.cloudflare.com/email-service/reference/headers/index.md) | - Network accessline 14
| Check recipient, message-size, or sending quotas | [Limits](https://developers.cloudflare.com/email-service/platform/limits/index.md) | - Network accessline 15
| Choose local simulation or remote delivery | [Local email sending](https://developers.cloudflare.com/email-service/local-development/sending/index.md) | - Network accessline 16
| Interpret send results and binding errors | [Workers API response and error handling](https://developers.cloudflare.com/email-service/api/send-emails/workers-api/index.md#error-handling) | - Network accessline 17
| Send, receive, route, and securely reply from an Agent | [Email agent walkthrough](https://developers.cloudflare.com/agents/examples/email-agent/index.md) |
skills/cloudflare-email-service/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/cloudflare-one-migrations/SKILL.md
- Network accessline 14
3. Build an inventory: identities, groups, apps, destinations, connectors/tunnels, DNS/URL/firewall/DLP/TLS policies, objects/lists, locations/sites, exceptions, hit counts, and compliance logging. 4. Produce a mapping plan: source object, - Network accessline 15
4. Produce a mapping plan: source object, Cloudflare One target resource, confidence, prerequisites, unsupported/partial mappings, and manual decisions. 5. Create dependencies first: identity/[SCIM](https://developers.cloudflare.com/cloudfl - Network accessline 16
5. Create dependencies first: identity/[SCIM](https://developers.cloudflare.com/cloudflare-one/team-and-resources/users/scim/index.md), connectors/on-ramps, routes/DNS, lists/objects, TLS bypasses, Access apps/policies, Gateway policies, DL - Network accessline 28
- ZIA/SWG policies usually map to [Gateway traffic policies](https://developers.cloudflare.com/cloudflare-one/traffic-policies/index.md) and Gateway lists. - Network accessline 29
- ZPA private app access usually maps to [Access application types](https://developers.cloudflare.com/cloudflare-one/access-controls/applications/choose-application-type/index.md), [Cloudflare Tunnel](https://developers.cloudflare.com/cloud - Network accessline 31
- Legacy VPN replacement is usually Access + Cloudflare One Client / WARP + Tunnel or Mesh for app access. Use [Cloudflare WAN](https://developers.cloudflare.com/cloudflare-wan/index.md) only when site-to-site traffic is required; use the [ - Network accessline 37
- Object dependencies: address objects, service objects, groups, custom categories, network services, app IDs, zones, tags, connectors, and server groups. - Identity readiness: IdP, SCIM/group sync, group-name normalization, individual-user - Network accessline 38
- Identity readiness: IdP, SCIM/group sync, group-name normalization, individual-user rules, local groups, service accounts, and contractor identities. - TLS/DLP readiness: source decryption rules, certificate-pinned bypasses, [DLP](https:/ - Network accessline 39
- TLS/DLP readiness: source decryption rules, certificate-pinned bypasses, [DLP](https://developers.cloudflare.com/cloudflare-one/data-loss-prevention/index.md) engines/profiles, custom regex, exact-match data, and payload logging expectati - Network accessline 40
- Connectivity readiness: source tunnels/connectors, private DNS, [Split Tunnels](https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/index.md) or bypass be - Network accessline 47
- Custom URL categories often split into separate IP, domain, and URL lists. Count the generated lists, not just source categories. - ZIA locations with IPs are useful as source IP lists; they are not automatically [Gateway DNS locations](h - Network accessline 48
- ZIA locations with IPs are useful as source IP lists; they are not automatically [Gateway DNS locations](https://developers.cloudflare.com/cloudflare-one/networks/resolvers-and-proxies/dns/locations/index.md) for DNS policy scoping. - Network accessline 51
- DLP engines and custom regex usually require manual Cloudflare DLP profile recreation. Placeholder policies must not be enabled as if DLP is complete. - Network application groups and unsupported protocols are partial mappings. Review the - Network accessline 53
- If SCIM is unavailable, identity-scoped source rules become overly broad unless you add an enforceable alternative such as user/email lists. Check [Gateway identity selectors](https://developers.cloudflare.com/cloudflare-one/traffic-polic - Network accessline 60
- Each ZPA connector instance within a group maps to one cloudflared replica running against that tunnel's token. Match replica count to connector instance count per group to preserve the same topology. A single tunnel token supports multip - Network accessline 61
- For each connector group, identify all server groups linked to it and all app segments assigned to those server groups. IP addresses and CIDRs in those app segments become CIDR routes on the corresponding tunnel; domain names become hostn - Network accessline 62
- ZPA bypass means split-tunnel bypass in Cloudflare, not an Access `bypass` decision. Bypass rules map to Cloudflare One Client [Split Tunnel](https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-clien - Network accessline 63
- Agentless/browser apps may become separate public-hostname Access apps per domain. WARP private apps remain private-destination apps. - The default Cloudflare Access application destination limit is 5 hostnames per app. For ZPA migrations - Network accessline 64
- The default Cloudflare Access application destination limit is 5 hostnames per app. For ZPA migrations with large app segments, contact the Cloudflare account team to request an increase (up to 50) before implementation. Confirm the limit - Network accessline 65
- IP-anchored apps require an explicit egress decision before migration: preserve source IP through customer egress, use Cloudflare [dedicated egress](https://developers.cloudflare.com/cloudflare-one/traffic-policies/egress-policies/index.m - Network accessline 66
- Resolver policies can be account-wide. Be careful with overlapping private DNS namespaces across sites or virtual networks; retrieve [resolver policy](https://developers.cloudflare.com/cloudflare-one/traffic-policies/resolver-policies/ind - Network accessline 74
- Export address/service objects and groups with rules. Missing object exports cause silent-looking drops unless explicitly detected. - Broad `any` destination/service rules and very broad CIDRs require manual review. Do not auto-create bro - Network accessline 76
- HIP/device checks require Cloudflare [device posture](https://developers.cloudflare.com/cloudflare-one/reusable-components/posture-checks/index.md) integrations before enforcement.
skills/cloudflare-one-migrations/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/cloudflare-one/SKILL.md
- Network accessline 8
Before citing limits, settings, API fields, category IDs, or exact UI paths, retrieve current information from the [Cloudflare One docs](https://developers.cloudflare.com/cloudflare-one/index.md), the Cloudflare docs MCP server, or the Clou - Network accessline 8
Before citing limits, settings, API fields, category IDs, or exact UI paths, retrieve current information from the [Cloudflare One docs](https://developers.cloudflare.com/cloudflare-one/index.md), the Cloudflare docs MCP server, or the Clou - Network accessline 33
- App shape: web app, API, SSH/RDP/VNC, database, SaaS app, public hostname, private IP, or private hostname. Retrieve [Access application type](https://developers.cloudflare.com/cloudflare-one/access-controls/applications/choose-applicatio - Network accessline 33
- App shape: web app, API, SSH/RDP/VNC, database, SaaS app, public hostname, private IP, or private hostname. Retrieve [Access application type](https://developers.cloudflare.com/cloudflare-one/access-controls/applications/choose-applicatio - Network accessline 34
- Access model: clientless browser access, private networking with device client, peer to peer connectivity, service connections with service tokens or mutual TLS, or SaaS SSO federation. - Policy needs: user groups, device posture, session - Network accessline 34
- Access model: clientless browser access, private networking with device client, peer to peer connectivity, service connections with service tokens or mutual TLS, or SaaS SSO federation. - Policy needs: user groups, device posture, session - Network accessline 35
- Policy needs: user groups, device posture, session duration, mTLS, service tokens, and app launcher visibility. Retrieve [Access policy](https://developers.cloudflare.com/cloudflare-one/access-controls/policies/index.md) docs before confi - Network accessline 35
- Policy needs: user groups, device posture, session duration, mTLS, service tokens, and app launcher visibility. Retrieve [Access policy](https://developers.cloudflare.com/cloudflare-one/access-controls/policies/index.md) docs before confi - Network accessline 41
- HA: dev/test single connector, production multiple connectors, or advanced multi-tunnel/site redundancy. - Runtime: where cloudflared or Cloudflare Mesh nodes (formerly WARP Connector) will run: VM, container, Kubernetes, bare metal, or o - Network accessline 41
- HA: dev/test single connector, production multiple connectors, or advanced multi-tunnel/site redundancy. - Runtime: where cloudflared or Cloudflare Mesh nodes (formerly WARP Connector) will run: VM, container, Kubernetes, bare metal, or o - Network accessline 42
- Runtime: where cloudflared or Cloudflare Mesh nodes (formerly WARP Connector) will run: VM, container, Kubernetes, bare metal, or other target. - Egress: whether connectors can reach Cloudflare over the required outbound ports/protocols. - Network accessline 42
- Runtime: where cloudflared or Cloudflare Mesh nodes (formerly WARP Connector) will run: VM, container, Kubernetes, bare metal, or other target. - Egress: whether connectors can reach Cloudflare over the required outbound ports/protocols. - Network accessline 43
- Egress: whether connectors can reach Cloudflare over the required outbound ports/protocols. Retrieve [Tunnel connectivity prechecks](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/troubleshoot-tunne - Network accessline 43
- Egress: whether connectors can reach Cloudflare over the required outbound ports/protocols. Retrieve [Tunnel connectivity prechecks](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/troubleshoot-tunne - Network accessline 44
- Origin reachability: whether the connector can resolve and reach every private origin. - Routing: required CIDRs/hostnames, overlapping IP spaces, [virtual networks](https://developers.cloudflare.com/cloudflare-one/networks/connectors/clo - Network accessline 44
- Origin reachability: whether the connector can resolve and reach every private origin. - Routing: required CIDRs/hostnames, overlapping IP spaces, [virtual networks](https://developers.cloudflare.com/cloudflare-one/networks/connectors/clo - Network accessline 45
- Routing: required CIDRs/hostnames, overlapping IP spaces, [virtual networks](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/cloudflared/tunnel-virtual-networks/index.md), [Split Tunnels] - Network accessline 45
- Routing: required CIDRs/hostnames, overlapping IP spaces, [virtual networks](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/cloudflared/tunnel-virtual-networks/index.md), [Split Tunnels] - Network accessline 50
- Traffic controls: DNS categories, HTTP URL/path inspection, L4 ports/protocols, egress IP requirements, custom lists, and allow/block exceptions. Retrieve [Gateway traffic policy](https://developers.cloudflare.com/cloudflare-one/traffic-p - Network accessline 50
- Traffic controls: DNS categories, HTTP URL/path inspection, L4 ports/protocols, egress IP requirements, custom lists, and allow/block exceptions. Retrieve [Gateway traffic policy](https://developers.cloudflare.com/cloudflare-one/traffic-p - Network accessline 51
- Identity: whether Gateway policies need user or group selectors, and whether users will be authenticated through Cloudflare One Client/IdP context. Check [Gateway identity selectors](https://developers.cloudflare.com/cloudflare-one/traffi - Network accessline 51
- Identity: whether Gateway policies need user or group selectors, and whether users will be authenticated through Cloudflare One Client/IdP context. Check [Gateway identity selectors](https://developers.cloudflare.com/cloudflare-one/traffi - Network accessline 52
- TLS inspection: root CA deployment path, certificate-pinned applications, compliance exceptions, and FIPS requirements. Retrieve [TLS decryption](https://developers.cloudflare.com/cloudflare-one/traffic-policies/http-policies/tls-decrypti - Network accessline 52
- TLS inspection: root CA deployment path, certificate-pinned applications, compliance exceptions, and FIPS requirements. Retrieve [TLS decryption](https://developers.cloudflare.com/cloudflare-one/traffic-policies/http-policies/tls-decrypti - Network accessline 53
- DLP: sensitive data types, channels to inspect, TLS inspection readiness, DLP profiles, payload logging requirements, and false-positive tolerance. Retrieve [DLP](https://developers.cloudflare.com/cloudflare-one/data-loss-prevention/index - Network accessline 53
- DLP: sensitive data types, channels to inspect, TLS inspection readiness, DLP profiles, payload logging requirements, and false-positive tolerance. Retrieve [DLP](https://developers.cloudflare.com/cloudflare-one/data-loss-prevention/index - Network accessline 59
- CASB: SaaS vendors, admin access level, scan policy, org size, remediation owner, and whether inline protection is also required. Retrieve [CASB findings](https://developers.cloudflare.com/cloudflare-one/cloud-and-saas-findings/manage-fin - Network accessline 59
- CASB: SaaS vendors, admin access level, scan policy, org size, remediation owner, and whether inline protection is also required. Retrieve [CASB findings](https://developers.cloudflare.com/cloudflare-one/cloud-and-saas-findings/manage-fin - Network accessline 61
- Risk scoring: relevant behavior signals, false-positive sources such as VPNs or service accounts, and whether risk is for investigation or enforcement. Retrieve [user risk score](https://developers.cloudflare.com/cloudflare-one/team-and-r - Network accessline 61
- Risk scoring: relevant behavior signals, false-positive sources such as VPNs or service accounts, and whether risk is for investigation or enforcement. Retrieve [user risk score](https://developers.cloudflare.com/cloudflare-one/team-and-r - Network accessline 65
- Site topology, on-ramp type, route ownership, tunnel redundancy, static vs BGP-managed routes, network firewall needs, and appliance/profile ownership. Retrieve [Cloudflare WAN](https://developers.cloudflare.com/cloudflare-wan/index.md) a - Network accessline 65
- Site topology, on-ramp type, route ownership, tunnel redundancy, static vs BGP-managed routes, network firewall needs, and appliance/profile ownership. Retrieve [Cloudflare WAN](https://developers.cloudflare.com/cloudflare-wan/index.md) a - Network accessline 70
- For new Access deployments, create policies through the reusable policy API (`/access/policies`) and attach them to applications. Do not send inline `policies` in an application create/update request unless the current API documentation e - Network accessline 70
- For new Access deployments, create policies through the reusable policy API (`/access/policies`) and attach them to applications. Do not send inline `policies` in an application create/update request unless the current API documentation e - Network accessline 71
- Treat an app-scoped policy reported as `reusable: false` as legacy. Migrate existing policies with the documented `make_reusable` endpoint or replace them with reusable policies; do not create new legacy policies. Distinguish legacy polic - Network accessline 71
- Treat an app-scoped policy reported as `reusable: false` as legacy. Migrate existing policies with the documented `make_reusable` endpoint or replace them with reusable policies; do not create new legacy policies. Distinguish legacy polic - Network accessline 72
- Public hostname Access apps can be clientless. Private destination apps require the Cloudflare One Client or another network on-ramp plus routes and DNS resolution. Retrieve [self-hosted private app](https://developers.cloudflare.com/clou - Network accessline 72
- Public hostname Access apps can be clientless. Private destination apps require the Cloudflare One Client or another network on-ramp plus routes and DNS resolution. Retrieve [self-hosted private app](https://developers.cloudflare.com/clou - Network accessline 73
- Cloudflare Tunnel is an off-ramp from a private network to Cloudflare. Cloudflare WAN and Mesh are other off-ramps which can also be on-ramps. - Group-based policies depend on IdP group claims or SCIM. If group sync is missing, do not inv - Network accessline 73
- Cloudflare Tunnel is an off-ramp from a private network to Cloudflare. Cloudflare WAN and Mesh are other off-ramps which can also be on-ramps. - Group-based policies depend on IdP group claims or SCIM. If group sync is missing, do not inv - Network accessline 74
- Group-based policies depend on IdP group claims or SCIM. If group sync is missing, do not invent group selectors. - Private hostnames need explicit DNS routing/resolution; creating an Access app alone is not enough. Use [resolver policies - Network accessline 74
- Group-based policies depend on IdP group claims or SCIM. If group sync is missing, do not invent group selectors. - Private hostnames need explicit DNS routing/resolution; creating an Access app alone is not enough. Use [resolver policies - Network accessline 75
- Private hostnames need explicit DNS routing/resolution; creating an Access app alone is not enough. Use [resolver policies](https://developers.cloudflare.com/cloudflare-one/traffic-policies/resolver-policies/index.md) and review [Connect - Network accessline 75
- Private hostnames need explicit DNS routing/resolution; creating an Access app alone is not enough. Use [resolver policies](https://developers.cloudflare.com/cloudflare-one/traffic-policies/resolver-policies/index.md) and review [Connect - Network accessline 76
- HTTP inspection and DLP for encrypted web traffic require TLS inspection and planned Do Not Inspect exceptions. - Gateway DNS, Network, HTTP, and Egress policies have different evaluation semantics. Retrieve [order of enforcement](https:/ - Network accessline 76
- HTTP inspection and DLP for encrypted web traffic require TLS inspection and planned Do Not Inspect exceptions. - Gateway DNS, Network, HTTP, and Egress policies have different evaluation semantics. Retrieve [order of enforcement](https:/ - Network accessline 77
- Gateway DNS, Network, HTTP, and Egress policies have different evaluation semantics. Retrieve [order of enforcement](https://developers.cloudflare.com/cloudflare-one/traffic-policies/order-of-enforcement/index.md) docs before explaining p - Network accessline 77
- Gateway DNS, Network, HTTP, and Egress policies have different evaluation semantics. Retrieve [order of enforcement](https://developers.cloudflare.com/cloudflare-one/traffic-policies/order-of-enforcement/index.md) docs before explaining p - Network accessline 92
- The [Cloudflare One device client](https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/index.md) is the on-ramp for user devices. Two components control it: **enrollment rules** (who can conne - Network accessline 92
- The [Cloudflare One device client](https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/index.md) is the on-ramp for user devices. Two components control it: **enrollment rules** (who can conne - Network accessline 93
- The enrollment rule is an Access application of type `warp`, not a device setting. It accepts reusable Access policies. Look in Access for enrollment debugging, not Devices. - For headless or autonomous devices (services, kiosks, Linux ho - Network accessline 93
- The enrollment rule is an Access application of type `warp`, not a device setting. It accepts reusable Access policies. Look in Access for enrollment debugging, not Devices. - For headless or autonomous devices (services, kiosks, Linux ho - Network accessline 94
- For headless or autonomous devices (services, kiosks, Linux hosts), use service token enrollment. Non-human devices authenticate as `non_identity@[team-domain].cloudflareaccess.com` and have no group membership - device profiles targeting - Network accessline 94
- For headless or autonomous devices (services, kiosks, Linux hosts), use service token enrollment. Non-human devices authenticate as `non_identity@[team-domain].cloudflareaccess.com` and have no group membership - device profiles targeting - Network accessline 95
- Device profiles control connection mode, [split tunnel](https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/index.md) configuration, user permissions (dis - Network accessline 95
- Device profiles control connection mode, [split tunnel](https://developers.cloudflare.com/cloudflare-one/team-and-resources/devices/cloudflare-one-client/configure/route-traffic/split-tunnels/index.md) configuration, user permissions (dis - Network accessline 106
- Include vs exclude is per-profile, not per-entry. You cannot mix modes in the same profile. Switching modes mid-deployment requires re-evaluating every entry. - Split tunnel entries must align with tunnel routes bidirectionally. A CIDR in - Network accessline 106
- Include vs exclude is per-profile, not per-entry. You cannot mix modes in the same profile. Switching modes mid-deployment requires re-evaluating every entry. - Split tunnel entries must align with tunnel routes bidirectionally. A CIDR in - Network accessline 107
- Split tunnel entries must align with tunnel routes bidirectionally. A CIDR in the include list without a matching tunnel route causes a black hole. A tunnel route without a matching device profile entry means traffic never enters the tunn - Network accessline 107
- Split tunnel entries must align with tunnel routes bidirectionally. A CIDR in the include list without a matching tunnel route causes a black hole. A tunnel route without a matching device profile entry means traffic never enters the tunn - Network accessline 108
- MDM parameters (`mdm.xml` / managed preferences) override dashboard-configured profile settings for any setting specified in the file. If dashboard changes appear to have no effect on managed devices, check MDM config. Retrieve [MDM deplo - Network accessline 108
- MDM parameters (`mdm.xml` / managed preferences) override dashboard-configured profile settings for any setting specified in the file. If dashboard changes appear to have no effect on managed devices, check MDM config. Retrieve [MDM deplo - Network accessline 115
- Virtual networks should be used primarily when IP subnets overlap and hostname-based routing is not used. It can be used to control other user connectivity behavior, but it is recommended to manage through security policies. - A healthy t - Network accessline 115
- Virtual networks should be used primarily when IP subnets overlap and hostname-based routing is not used. It can be used to control other user connectivity behavior, but it is recommended to manage through security policies. - A healthy t - Network accessline 116
- A healthy tunnel only proves cloudflared can reach Cloudflare. The tunnel must have appropriate published application routes, network routes, or hostname routes for connectivity to function. - Cloudflare Tunnel and Cloudflare Mesh can bot - Network accessline 116
- A healthy tunnel only proves cloudflared can reach Cloudflare. The tunnel must have appropriate published application routes, network routes, or hostname routes for connectivity to function. - Cloudflare Tunnel and Cloudflare Mesh can bot - Network accessline 117
- Cloudflare Tunnel and Cloudflare Mesh can both be used to facilitate connectivity to internal networks. Cloudflare WAN can as well, but it is gated behind Enterprise subscriptions. Retrieve [choose an on-ramp](https://developers.cloudflar - Network accessline 117
- Cloudflare Tunnel and Cloudflare Mesh can both be used to facilitate connectivity to internal networks. Cloudflare WAN can as well, but it is gated behind Enterprise subscriptions. Retrieve [choose an on-ramp](https://developers.cloudflar - Network accessline 124
- HTTP Do Not Inspect rules run before HTTP Allow/Block/Isolate behavior. A later block rule will not override an earlier inspection bypass. - Certificate-pinned apps need Do Not Inspect exceptions before broad TLS inspection. Deploy the Cl - Network accessline 124
- HTTP Do Not Inspect rules run before HTTP Allow/Block/Isolate behavior. A later block rule will not override an earlier inspection bypass. - Certificate-pinned apps need Do Not Inspect exceptions before broad TLS inspection. Deploy the Cl - Network accessline 125
- Certificate-pinned apps need Do Not Inspect exceptions before broad TLS inspection. Deploy the Cloudflare root CA to managed devices before enabling inspection. - DLP profiles are detection definitions only. They enforce nothing until ref - Network accessline 125
- Certificate-pinned apps need Do Not Inspect exceptions before broad TLS inspection. Deploy the Cloudflare root CA to managed devices before enabling inspection. - DLP profiles are detection definitions only. They enforce nothing until ref - Network accessline 126
- DLP profiles are detection definitions only. They enforce nothing until referenced by a DLP policy or a CASB integration. [Passive Detection](https://developers.cloudflare.com/cloudflare-one/data-loss-prevention/passive-detection/index.md - Network accessline 126
- DLP profiles are detection definitions only. They enforce nothing until referenced by a DLP policy or a CASB integration. [Passive Detection](https://developers.cloudflare.com/cloudflare-one/data-loss-prevention/passive-detection/index.md - Network accessline 132
- API CASB is out-of-band and periodic. It does not provide real-time inline enforcement although some integrations support "remediation"; use Gateway granular application controls for inline CASB capability for supported applications. Retr - Network accessline 132
- API CASB is out-of-band and periodic. It does not provide real-time inline enforcement although some integrations support "remediation"; use Gateway granular application controls for inline CASB capability for supported applications. Retr - Network accessline 133
- CASB findings are tied to specific assets and instances. Drill into affected assets before recommending remediation. - Use current Dashboard remediation guidance for CASB fixes. Most remediations happen in the SaaS admin console, not Clou - Network accessline 133
- CASB findings are tied to specific assets and instances. Drill into affected assets before recommending remediation. - Use current Dashboard remediation guidance for CASB fixes. Most remediations happen in the SaaS admin console, not Clou - Network accessline 134
- Use current Dashboard remediation guidance for CASB fixes. Most remediations happen in the SaaS admin console, not Cloudflare. - CASB scans are periodic: the initial scan can take several hours, and later scans run roughly every 24-48 hou - Network accessline 134
- Use current Dashboard remediation guidance for CASB fixes. Most remediations happen in the SaaS admin console, not Cloudflare. - CASB scans are periodic: the initial scan can take several hours, and later scans run roughly every 24-48 hou - Network accessline 135
- CASB scans are periodic: the initial scan can take several hours, and later scans run roughly every 24-48 hours. Retrieve [CASB troubleshooting](https://developers.cloudflare.com/cloudflare-one/cloud-and-saas-findings/troubleshoot-casb/in - Network accessline 135
- CASB scans are periodic: the initial scan can take several hours, and later scans run roughly every 24-48 hours. Retrieve [CASB troubleshooting](https://developers.cloudflare.com/cloudflare-one/cloud-and-saas-findings/troubleshoot-casb/in - Network accessline 140
- [Zero Trust Infrastructure Access](https://developers.cloudflare.com/cloudflare-one/access-controls/applications/non-http/infrastructure-apps/index.md) (ZTIA) is the purpose-built offering for SSH access through the device client. It prov - Network accessline 140
- [Zero Trust Infrastructure Access](https://developers.cloudflare.com/cloudflare-one/access-controls/applications/non-http/infrastructure-apps/index.md) (ZTIA) is the purpose-built offering for SSH access through the device client. It prov - Network accessline 141
- [Browser Rendering](https://developers.cloudflare.com/cloudflare-one/access-controls/applications/non-http/browser-rendering/index.md) provides clientless SSH, RDP, and VNC through the browser without requiring the device client. Clientle - Network accessline 141
- [Browser Rendering](https://developers.cloudflare.com/cloudflare-one/access-controls/applications/non-http/browser-rendering/index.md) provides clientless SSH, RDP, and VNC through the browser without requiring the device client. Clientle - Network accessline 142
- For SSH command logging, use [Access for Infrastructure](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/use-cases/ssh/ssh-infrastructure-access/index.md#enable-ssh-command-logging). The Gateway Audi - Network accessline 142
- For SSH command logging, use [Access for Infrastructure](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/use-cases/ssh/ssh-infrastructure-access/index.md#enable-ssh-command-logging). The Gateway Audi - Network accessline 143
- Short-lived certificates require CA configuration on the target host and `sshd` configured to trust the Cloudflare CA public key. Retrieve [short-lived certificate setup](https://developers.cloudflare.com/cloudflare-one/networks/connector - Network accessline 143
- Short-lived certificates require CA configuration on the target host and `sshd` configured to trust the Cloudflare CA public key. Retrieve [short-lived certificate setup](https://developers.cloudflare.com/cloudflare-one/networks/connector - Network accessline 148
- [Gateway activity logs](https://developers.cloudflare.com/cloudflare-one/insights/logs/dashboard-logs/gateway-logs/index.md) record DNS, HTTP, and Network policy decisions. Filter by rule name, user identity, destination, action, and time - Network accessline 148
- [Gateway activity logs](https://developers.cloudflare.com/cloudflare-one/insights/logs/dashboard-logs/gateway-logs/index.md) record DNS, HTTP, and Network policy decisions. Filter by rule name, user identity, destination, action, and time - Network accessline 149
- [Access audit logs](https://developers.cloudflare.com/cloudflare-one/insights/logs/dashboard-logs/access-authentication-logs/index.md) record authentication decisions per app - who authenticated, which policy matched, and session details. - Network accessline 149
- [Access audit logs](https://developers.cloudflare.com/cloudflare-one/insights/logs/dashboard-logs/access-authentication-logs/index.md) record authentication decisions per app - who authenticated, which policy matched, and session details. - Network accessline 150
- [Shadow IT discovery](https://developers.cloudflare.com/cloudflare-one/insights/analytics/shadow-it-discovery/index.md) uses Gateway HTTP logs to surface unmanaged SaaS applications. Requires TLS inspection for HTTPS visibility. - Network accessline 150
- [Shadow IT discovery](https://developers.cloudflare.com/cloudflare-one/insights/analytics/shadow-it-discovery/index.md) uses Gateway HTTP logs to surface unmanaged SaaS applications. Requires TLS inspection for HTTPS visibility. - Network accessline 151
- [DEX (Digital Experience Monitoring)](https://developers.cloudflare.com/cloudflare-one/insights/dex/index.md) provides fleet-level and per-device connectivity diagnostics. Use [DEX tests](https://developers.cloudflare.com/cloudflare-one/i - Network accessline 151
- [DEX (Digital Experience Monitoring)](https://developers.cloudflare.com/cloudflare-one/insights/dex/index.md) provides fleet-level and per-device connectivity diagnostics. Use [DEX tests](https://developers.cloudflare.com/cloudflare-one/i - Network accessline 152
- [Logpush](https://developers.cloudflare.com/cloudflare-one/insights/logs/logpush/index.md) exports Gateway, Access, Network, and DEX logs to external SIEM or storage. Configure before go-live if the customer requires centralized log reten - Network accessline 152
- [Logpush](https://developers.cloudflare.com/cloudflare-one/insights/logs/logpush/index.md) exports Gateway, Access, Network, and DEX logs to external SIEM or storage. Configure before go-live if the customer requires centralized log reten
skills/cloudflare-one/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/cloudflare/SKILL.md
- Network accessline 14
- **The project has `wrangler.jsonc`, `wrangler.json`, or `wrangler.toml`, and no `cloudflare.config.ts`:** use Wrangler for development and deployment, and load the `wrangler` skill. `cf` resource commands work alongside it. Run `cf migrat - Network accessline 15
- **Every other project, including a new project or one with no Cloudflare configuration:** use `cf`. Load the `cf-cli` skill if it is installed; otherwise follow [Use cf with coding agents](https://developers.cloudflare.com/cf/agents/index - Network accessline 17
The product guidance below, and the documentation it links to, applies with either CLI. Many documentation pages show only Wrangler commands and configuration; in a `cf` project, do not run them or add a Wrangler configuration file. Use one - Network accessline 28
**Recommend Workers and [Workers Static Assets](https://developers.cloudflare.com/workers/static-assets/index.md) for new websites and applications, including static sites, SPAs, and full-stack apps.** Workers can do everything Pages can do - Network accessline 30
Find the row closest to the user's task. Products can appear in multiple rows, and a solution can combine products. Read the linked reference or docs before implementing; load named skills when installed. Local links open bundled references - Network accessline 32
| What you need to do | Product or tool to consider | When to choose it | Skill or reference | | --- | --- | --- | --- | | Choose the building blocks for an AI application | AI overview | Compare Cloudflare's AI services before choosing inf - Network accessline 33
| --- | --- | --- | --- | | Choose the building blocks for an AI application | AI overview | Compare Cloudflare's AI services before choosing inference, retrieval, or agent tooling | [AI docs](https://developers.cloudflare.com/ai/index.md) - Network accessline 34
| Choose the building blocks for an AI application | AI overview | Compare Cloudflare's AI services before choosing inference, retrieval, or agent tooling | [AI docs](https://developers.cloudflare.com/ai/index.md) | - Network accessline 35
| Choose infrastructure for a customer-facing platform | Cloudflare for Platforms | Compare running customer code with serving an app on customer domains | [Platform overview](https://developers.cloudflare.com/cloudflare-for-platforms/index - Network accessline 36
| Choose an approach to live audio and video | Realtime | Compare application SDKs, media infrastructure, and connectivity relays | [Realtime overview](https://developers.cloudflare.com/realtime/index.md) | - Network accessline 37
| Start a Worker or framework project | C3 | Scaffold a project using the appropriate framework template | [C3](references/c3/README.md); `wrangler` skill | | Build or deploy a Next.js app on Cloudflare | vinext + Workers | Use vinext rathe - Network accessline 38
| Build or deploy a Next.js app on Cloudflare | vinext + Workers | Use vinext rather than OpenNext for new projects | [nextjs-on-cloudflare skill](../nextjs-on-cloudflare/SKILL.md); [Next.js docs](https://developers.cloudflare.com/workers/f - Network accessline 39
| Host a new static site, SPA, or full-stack app | Workers + Workers Static Assets | Serve site files and add server-side logic where needed | [Static Assets](references/static-assets/README.md); `workers-best-practices` skill | | Build an - Network accessline 40
| Build an API or handle webhooks | Workers | Run request handlers with access to Cloudflare services | `workers-best-practices` skill; [Workers docs](https://developers.cloudflare.com/workers/index.md) | - Network accessline 41
| Control team, CI, or service-account access to Developer Platform resources | Roles, scopes, and permission policies | Choose the least-privilege role and a scope supported for the member, User Group, or API token | [Roles and permissions - Network accessline 42
| Maintain an existing Pages deployment | Pages + Pages Functions | Update an existing site or its server endpoints; use Workers for new projects | [Pages](references/pages/README.md); [Pages Functions](references/pages-functions/README.md) - Network accessline 43
| Move a Pages project to Workers | Workers + Workers Static Assets | The task calls for migrating the hosting platform | [Pages migration guide](https://developers.cloudflare.com/workers/static-assets/migration-guides/migrate-from-pages/in - Network accessline 44
| Let customers deploy code on your platform | Workers for Platforms | Run and manage customer Workers with per-customer controls | [Workers for Platforms docs](https://developers.cloudflare.com/cloudflare-for-platforms/workers-for-platform - Network accessline 45
| Let customers use their own domains with your app | Cloudflare for SaaS | Manage custom hostnames, TLS certificates, and origin routing; check hostname validation and apex-domain plan requirements. Combine with Workers for Platforms when - Network accessline 46
| Connect a Worker to storage or another service | Bindings | Give the Worker access to configured resources through its environment | [Bindings](references/bindings/README.md) | | Run containerized services or Linux software | Containers | - Network accessline 47
| Run containerized services or Linux software | Containers | The workload needs a container image or software outside the Workers runtime | [Containers](references/containers/README.md) | | Execute generated or untrusted code, build Code M - Network accessline 48
| Execute generated or untrusted code, build Code Mode tools, or create on-demand previews | Dynamic Workers | Load code at runtime in isolated Workers; check bindings, egress controls, and resource limits. Choose Sandbox when execution nee - Network accessline 49
| Give an agent a shell, filesystem, or interactive development environment | Sandbox SDK | Code execution needs a Linux environment or container tools; inspect the package line first | `sandbox-next` for new or preview projects; `sandbox-s - Network accessline 50
| Upgrade a stable Sandbox app to the preview API | Sandbox SDK | The user wants the stable-to-next migration | `sandbox-migrate-to-next` skill; [migration guide](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) | - Network accessline 51
| Coordinate chat rooms, games, collaborative documents, or bookings | Durable Objects | Operations need shared state and coordination per room, document, or entity | `durable-objects` skill; [Durable Objects docs](https://developers.cloudf - Network accessline 52
| Store and recover state inside a Durable Object | Durable Object storage | Choose storage APIs, transactions, and recovery for coordinated per-entity data | `durable-objects` skill; [SQLite storage API](https://developers.cloudflare.com/d - Network accessline 55
| Distribute configuration or other key-value data | KV | Read-heavy key-value access fits the workload's consistency requirements | [KV](references/kv/README.md) | | Store uploads, downloads, or large objects | R2 | Store files by object k - Network accessline 56
| Store uploads, downloads, or large objects | R2 | Store files by object key; pair with D1 when searchable metadata needs SQL | [R2](references/r2/README.md) | | Store versioned file trees, agent checkpoints, or repositories | Artifacts | - Network accessline 57
| Store versioned file trees, agent checkpoints, or repositories | Artifacts | Files need versioning and Git-compatible access; currently closed beta, so confirm access before implementation | [Artifacts docs](https://developers.cloudflare. - Network accessline 58
| Ingest event streams into R2 | Basin Pipelines | Transform and deliver streaming records into R2 | `basin` skill; [Basin Pipelines](https://developers.cloudflare.com/basin-pipelines/index.md) | - Network accessline 59
| Manage Iceberg tables in R2 | Basin Catalog | Organize tables for analytics and compatible query engines | `basin` skill; [Basin Catalog](https://developers.cloudflare.com/basin-catalog/index.md) | - Network accessline 60
| Query Iceberg tables with SQL | Basin SQL | Analyze tables in Basin Catalog | `basin` skill; [Basin SQL](https://developers.cloudflare.com/basin-sql/index.md) | - Network accessline 61
| Keep a durable event log with independent readers | K2 Streams | Produce records from Workers or HTTP, then consume with subscriptions | `k2` skill; [K2 docs](https://developers.cloudflare.com/k2/index.md) | - Network accessline 62
| Cache application responses | Workers Cache | Default for application caching; check the patterns and limitations before choosing alternatives | [Workers Cache](https://developers.cloudflare.com/workers/cache/index.md); see caching guidan - Network accessline 63
| Accelerate an existing website and control cached content | Cache/CDN | Configure caching for a proxied origin using Cache Rules, expiration settings, and purging | [Cache/CDN docs](https://developers.cloudflare.com/cache/index.md) | - Network accessline 64
| Keep origin content in a persistent cache | Cache Reserve | Reduce origin fetches with persistent CDN cache storage | [Cache Reserve docs](https://developers.cloudflare.com/cache/advanced-configuration/cache-reserve/index.md) | - Network accessline 70
| Build custom semantic search or retrieval | Vectorize + Workers AI | Control embeddings, indexing, and retrieval rather than using a managed pipeline | [Vectorize](references/vectorize/README.md); [Workers AI](references/workers-ai/README - Network accessline 71
| Observe and control requests to AI providers | AI Gateway | Add inference analytics, caching, and request controls | [AI Gateway](references/ai-gateway/README.md) | | Build stateful agents with tools, scheduling, or chat | Agents SDK | Im - Network accessline 72
| Build stateful agents with tools, scheduling, or chat | Agents SDK | Implement agent behavior on Cloudflare; add Dynamic Workers or Sandbox for the required execution runtime | `agents-sdk` skill; [Agents docs](https://developers.cloudfla - Network accessline 73
| Build durable agents with TypeScript hooks | Flue | Use an open agent framework with Cloudflare and Node.js targets | [Flue](https://flueframework.com/); [getting started](https://flueframework.com/docs/guide/getting-started/); [Cloudflar - Network accessline 74
| Expose tools through a remote MCP server | Workers + Agents SDK | Publish tools for MCP clients, with authentication appropriate to the service | `agents-sdk` skill, its `references/mcp.md`; [MCP docs](https://developers.cloudflare.com/ag - Network accessline 75
| Automate browsers, take screenshots, or extract rendered pages | Browser Run | The task requires a browser rather than a plain HTTP request | [Browser Run](references/browser-rendering/README.md) | | Connect a domain, configure DNS record - Network accessline 76
| Connect a domain, configure DNS records, or troubleshoot resolution | DNS | Manage authoritative records and choose whether traffic is proxied through Cloudflare | [DNS docs](https://developers.cloudflare.com/dns/index.md) | - Network accessline 77
| Configure HTTPS and certificates | SSL/TLS | Secure connections from visitors to Cloudflare and from Cloudflare to the origin | [SSL/TLS docs](https://developers.cloudflare.com/ssl/index.md) | - Network accessline 78
| Distribute traffic across origins and fail over unhealthy servers | Load Balancing | Use health checks and traffic steering for multiple origin servers | [Load Balancing docs](https://developers.cloudflare.com/load-balancing/index.md) | - Network accessline 79
| Connect an existing server to Cloudflare | Cloudflare Tunnel | Reach an origin without a publicly routable IP address | [Tunnel](references/tunnel/README.md) | | Connect Workers to private services | Workers VPC | Access services in priva - Network accessline 80
| Connect Workers to private services | Workers VPC | Access services in private networks from a Worker | [Workers VPC docs](https://developers.cloudflare.com/workers-vpc/index.md) | - Network accessline 81
| Require employee login before accessing an internal app | Access | Put identity-based access policies in front of an internal application | `cloudflare-one` skill; [Access docs](https://developers.cloudflare.com/cloudflare-one/access-cont - Network accessline 82
| Protect access to internal applications and networks | Cloudflare One | Apply identity and network access policies | `cloudflare-one` skill; [Cloudflare One docs](https://developers.cloudflare.com/cloudflare-one/index.md) | - Network accessline 83
| Transform permitted Gateway HTTP traffic with a Worker | Gateway Forward + Workers | Apply custom request or response logic to traffic passing through Gateway | [gateway-workers skill](../gateway-workers/SKILL.md) | | Migrate existing acc - Network accessline 84
| Migrate existing access and network security configurations | Cloudflare One | The task is a supported migration to Cloudflare One | `cloudflare-one-migrations` skill; [Cloudflare One docs](https://developers.cloudflare.com/cloudflare-one - Network accessline 85
| Proxy a TCP or UDP application | Spectrum | Protect and accelerate non-HTTP application traffic | [Spectrum docs](https://developers.cloudflare.com/spectrum/index.md) | - Network accessline 86
| Connect a network directly to Cloudflare | Network Interconnect | Dedicated network connectivity is required | [Network Interconnect docs](https://developers.cloudflare.com/network-interconnect/index.md) | - Network accessline 87
| Improve routing across the network | Argo Smart Routing | Optimize traffic paths to the origin | [Argo Smart Routing docs](https://developers.cloudflare.com/argo-smart-routing/index.md) | - Network accessline 88
| Reduce Worker-to-backend latency | Workers placement | Use explicit region hints for known regional databases, or traffic-based Smart Placement | [Workers placement docs](https://developers.cloudflare.com/workers/configuration/placement/i - Network accessline 89
| Redirect URLs, rewrite paths or headers, or change origin routing | Rules | Use Redirect, Transform, or Origin Rules when configuration can express the required behavior | [Rules docs](https://developers.cloudflare.com/rules/index.md) | - Network accessline 90
| Make small HTTP request or response changes | Snippets | Lightweight edge logic meets the need | [Snippets docs](https://developers.cloudflare.com/rules/snippets/index.md) | | Protect forms from automated abuse | Turnstile | Add bot chall - Network accessline 91
| Protect forms from automated abuse | Turnstile | Add bot challenges and server-side token validation | `turnstile-spin` skill; [Turnstile docs](https://developers.cloudflare.com/turnstile/index.md) | | Filter malicious web requests | WAF - Network accessline 92
| Filter malicious web requests | WAF | Apply application-layer rules and managed protections | [WAF](references/waf/README.md) | | Protect services from denial-of-service attacks | DDoS Protection | Mitigate attacks at the relevant network - Network accessline 93
| Protect services from denial-of-service attacks | DDoS Protection | Mitigate attacks at the relevant network or application layer | [DDoS protection docs](https://developers.cloudflare.com/ddos-protection/index.md) | - Network accessline 94
| Detect and control automated traffic | Bot Management | Make request decisions based on bot detection | [Bot Management docs](https://developers.cloudflare.com/bots/index.md) | - Network accessline 95
| Discover and protect API endpoints | API Shield | Apply API-specific protections and validation | [API Shield docs](https://developers.cloudflare.com/api-shield/index.md) | - Network accessline 96
| Queue visitors during traffic spikes | Waiting Room | Control admission when application capacity is limited | [Waiting Room docs](https://developers.cloudflare.com/waiting-room/index.md) | - Network accessline 97
| Store a Worker's API keys and credentials | Workers secrets | Bind secrets to a Worker without committing values to source | `wrangler` skill; [secrets docs](https://developers.cloudflare.com/workers/configuration/secrets/index.md) | - Network accessline 98
| Share managed secrets across services | Secrets Store | Manage reusable account-level secrets | [Secrets Store](references/secrets-store/README.md) | | Control where data is processed and stored | Data Localization Suite | Evaluate region - Network accessline 99
| Control where data is processed and stored | Data Localization Suite | Evaluate regional processing and storage controls against the actual requirements | [Data Localization docs](https://developers.cloudflare.com/data-localization/index. - Network accessline 100
| Prove a claim without identifying or tracking the user | Privacy Pass | Use privacy-preserving tokens in a supported integration | [Privacy Pass docs](https://developers.cloudflare.com/privacy-pass/index.md) | - Network accessline 101
| Store, resize, transform, and deliver images | Cloudflare Images | Use managed image processing and delivery | [Images](references/images/README.md) | | Encode, store, and deliver live or on-demand video | Stream | Use managed video infra - Network accessline 102
| Encode, store, and deliver live or on-demand video | Stream | Use managed video infrastructure | [Stream](references/stream/README.md) | | Build an audio/video calling application with SDKs | RealtimeKit | Use application-level SDKs for c - Network accessline 103
| Build an audio/video calling application with SDKs | RealtimeKit | Use application-level SDKs for calls and meetings | [RealtimeKit docs](https://developers.cloudflare.com/realtime/realtimekit/index.md) | - Network accessline 104
| Build custom real-time media infrastructure | Realtime SFU | Control the application while using a selective forwarding unit for media | [Realtime SFU docs](https://developers.cloudflare.com/realtime/sfu/index.md) | - Network accessline 105
| Relay WebRTC connections through restrictive networks | TURN Service | Clients need a connectivity relay | [TURN docs](https://developers.cloudflare.com/realtime/turn/index.md) | - Network accessline 106
| Deliver live media over QUIC | MoQ | Use the Media over QUIC protocol; check current compatibility and availability | [MoQ docs](https://developers.cloudflare.com/moq/index.md) | - Network accessline 107
| Send transactional email | Email Service | Send application-generated messages | `cloudflare-email-service` skill; [Email Service docs](https://developers.cloudflare.com/email-service/index.md) | - Network accessline 108
| Forward incoming email | Email Routing | Route addresses on a domain to destination mailboxes | `cloudflare-email-service` skill; [Route emails](https://developers.cloudflare.com/email-service/get-started/route-emails/index.md) | - Network accessline 109
| Process incoming email in code | Email Workers | Apply custom logic to inbound messages | `cloudflare-email-service` skill; [Email handler](https://developers.cloudflare.com/email-service/api/route-emails/email-handler/index.md) | - Network accessline 110
| Manage third-party tags and scripts | Zaraz | Load and manage third-party tools through Cloudflare | [Zaraz docs](https://developers.cloudflare.com/zaraz/index.md) | - Network accessline 111
| Run locally and manage resources from the CLI | Cloudflare CLI (`cf`); Wrangler for existing Wrangler projects | Develop, configure, deploy, and inspect the intended account and environment; choose the CLI as described in [Choose the CLI] - Network accessline 112
| Test Worker behavior before deployment | Workers testing tools | Choose runtime tests or integration tests for the affected behavior | [Testing docs](https://developers.cloudflare.com/workers/testing/index.md); `durable-objects` skill for - Network accessline 113
| Embed local Worker simulation in tooling | Miniflare | A programmatic emulator is needed for a custom development or test harness | [Miniflare](references/miniflare/README.md) | | Run or investigate the underlying Workers runtime | worker - Network accessline 114
| Run or investigate the underlying Workers runtime | workerd | Work directly with the runtime outside normal managed deployment | [workerd repository](https://github.com/cloudflare/workerd) | - Network accessline 115
| Try a small Worker in the browser | Workers Playground | Explore or share a minimal example without local setup | [Workers Playground docs](https://developers.cloudflare.com/workers/playground/index.md) | - Network accessline 116
| Build and deploy whenever code is pushed | Workers Builds | Connect a Git repository to automated builds and deployments | [Builds docs](https://developers.cloudflare.com/workers/ci-cd/builds/index.md) | - Network accessline 117
| Test a branch or pull request in an isolated environment | Workers Previews | Create a branch environment under the same Worker with its own settings and URLs; check which bound resources are isolated or shared | [Previews docs](https://d - Network accessline 118
| Inspect an uploaded version, release it gradually, or roll back code | Workers versions and deployments | Manage application releases that use production resources; rollback does not restore connected resource data | [Deployment docs](htt - Network accessline 119
| Release a feature gradually or target user groups | Flagship | Change feature availability with targeting and percentage rollouts | [Flagship docs](https://developers.cloudflare.com/flagship/index.md) | - Network accessline 120
| Manage infrastructure as code | Terraform or Pulumi | Use Terraform for declarative configuration or Pulumi for infrastructure in programming languages | [Terraform docs](https://developers.cloudflare.com/terraform/index.md); [Pulumi docs - Network accessline 121
| Automate account or product configuration through an API | Cloudflare REST API | Manage resources programmatically; prefer bindings for supported operations inside Workers | [REST API docs](https://developers.cloudflare.com/fundamentals/a - Network accessline 123
| Profile CPU usage or memory allocations in deployed Workers or Durable Objects | Workers profiling | Investigate CPU and memory issues in production | [workers-profiling skill](../workers-profiling/SKILL.md) | | Process Worker execution e - Network accessline 124
| Process Worker execution events in code | Tail Workers | Build custom log or exception processing | [Tail Workers](references/tail-workers/README.md) | | Export Worker logs to another system | Workers Logpush | Deliver logs to a supported - Network accessline 125
| Export Worker logs to another system | Workers Logpush | Deliver logs to a supported external destination | [Logpush docs](https://developers.cloudflare.com/workers/observability/logs/logpush/index.md) | - Network accessline 126
| Measure custom application events | Workers Analytics Engine | Analyze high-cardinality event data written from Workers | [Analytics Engine docs](https://developers.cloudflare.com/analytics/analytics-engine/index.md) | - Network accessline 127
| Measure website usage and visitor performance | Cloudflare Web Analytics | Add website analytics and real-user measurements | [Web Analytics docs](https://developers.cloudflare.com/web-analytics/index.md) | - Network accessline 128
| Query metrics across Cloudflare products | GraphQL Analytics API | Retrieve product analytics programmatically | [GraphQL Analytics API docs](https://developers.cloudflare.com/analytics/graphql-api/index.md) | - Network accessline 129
| Audit page speed and find loading bottlenecks | Web performance tools | Measure and improve the site's actual browser performance | `web-perf` skill; [Web Analytics docs](https://developers.cloudflare.com/web-analytics/index.md) | - Network accessline 130
| Ask questions about an account or diagnose its configuration in the dashboard | Agent Lee | Use the dashboard's AI assistant; check current account eligibility | [Agent Lee docs](https://developers.cloudflare.com/agent-lee/index.md) | - Network accessline 136
Use the [Cloudflare product directory](https://developers.cloudflare.com/directory/index.md) for additional products and their current docs. Follow links to the specific feature or API involved. Use [Choose a data or storage product](https: - Network accessline 140
Prefer [Workers Cache](https://developers.cloudflare.com/workers/cache/index.md) for caching, including [advanced patterns](https://developers.cloudflare.com/workers/cache/examples/index.md) using cached inner entrypoints and programmatic i - Network accessline 150
Cloudflare documentation: <https://developers.cloudflare.com/llms.txt> - Network accessline 151
Cloudflare changelog: <https://developers.cloudflare.com/changelog/index.md>
skills/cloudflare/references/ai-gateway/README.md
- Network accessline 17
For new single-model calls, start with the [REST API](https://developers.cloudflare.com/ai-gateway/usage/rest-api/index.md) or [Workers bindings](https://developers.cloudflare.com/ai-gateway/usage/worker-binding-methods/index.md), depending - Network accessline 19
The [legacy Unified API](https://developers.cloudflare.com/ai-gateway/usage/chat-completion/index.md) is deprecated for single-model calls but remains required for dynamic routes. Check the task before changing an existing endpoint. - Network accessline 25
- [Workers AI](../workers-ai/README.md) — model inference. - [Agents SDK documentation](https://developers.cloudflare.com/agents/index.md) — stateful agents. - Network accessline 26
- [Agents SDK documentation](https://developers.cloudflare.com/agents/index.md) — stateful agents.
skills/cloudflare/references/ai-gateway/configuration.md
- Network accessline 5
| Task | Current documentation | |------|-----------------------| | Send a first request and locate the account/gateway identifiers | [Getting started](https://developers.cloudflare.com/ai-gateway/get-started/index.md) | - Network accessline 6
|------|-----------------------| | Send a first request and locate the account/gateway identifiers | [Getting started](https://developers.cloudflare.com/ai-gateway/get-started/index.md) | | Create, update, or delete a gateway; use the defau - Network accessline 7
| Send a first request and locate the account/gateway identifiers | [Getting started](https://developers.cloudflare.com/ai-gateway/get-started/index.md) | - Network accessline 8
| Create, update, or delete a gateway; use the default gateway | [Manage gateways](https://developers.cloudflare.com/ai-gateway/configuration/manage-gateway/index.md) | - Network accessline 9
| Manage gateways programmatically | [Gateway management API](https://developers.cloudflare.com/api/resources/ai_gateway/methods/list/index.md) | - Network accessline 10
| Protect gateway access and choose token permissions for the endpoint | [Authenticated Gateway](https://developers.cloudflare.com/ai-gateway/configuration/authentication/index.md) and [REST API authentication](https://developers.cloudflare - Network accessline 11
| Configure Wrangler and an AI binding | [Workers AI binding setup](https://developers.cloudflare.com/ai-gateway/integrations/aig-workers-ai-binding/index.md) and [binding methods](https://developers.cloudflare.com/ai-gateway/usage/worker-b - Network accessline 12
| Store provider keys, select aliases, or diagnose missing credentials | [Bring Your Own Keys](https://developers.cloudflare.com/ai-gateway/configuration/bring-your-own-keys/index.md) | - Network accessline 13
| Use Cloudflare billing or determine which credentials take precedence | [Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/index.md) | - Network accessline 14
| Supply provider credentials with each request | [Provider guides](https://developers.cloudflare.com/ai-gateway/usage/providers/index.md) |
skills/cloudflare/references/ai-gateway/dynamic-routing.md
- Network accessline 5
| Task | Current documentation | |------|-----------------------| | Design conditional routes, A/B splits, quotas, model fallbacks, and version rollbacks | [Dynamic routing](https://developers.cloudflare.com/ai-gateway/features/dynamic-rout - Network accessline 6
|------|-----------------------| | Design conditional routes, A/B splits, quotas, model fallbacks, and version rollbacks | [Dynamic routing](https://developers.cloudflare.com/ai-gateway/features/dynamic-routing/index.md) | | Invoke a route - Network accessline 7
| Design conditional routes, A/B splits, quotas, model fallbacks, and version rollbacks | [Dynamic routing](https://developers.cloudflare.com/ai-gateway/features/dynamic-routing/index.md) | - Network accessline 8
| Invoke a route from an SDK, HTTP request, or Worker; inspect route response metadata | [Using a dynamic route](https://developers.cloudflare.com/ai-gateway/features/dynamic-routing/usage/index.md) | - Network accessline 9
| Define route elements and connections programmatically | [JSON configuration](https://developers.cloudflare.com/ai-gateway/features/dynamic-routing/json-configuration/index.md) | - Network accessline 10
| Provide metadata used by routing conditions | [Custom metadata](https://developers.cloudflare.com/ai-gateway/observability/custom-metadata/index.md) | - Network accessline 11
| Configure model/provider fallbacks | [Fallbacks](https://developers.cloudflare.com/ai-gateway/configuration/fallbacks/index.md) | - Network accessline 12
| Configure retries, backoff, and timeouts | [Request handling](https://developers.cloudflare.com/ai-gateway/configuration/request-handling/index.md) | - Network accessline 13
| Inspect request outcomes, costs, and errors | [Analytics](https://developers.cloudflare.com/ai-gateway/observability/analytics/index.md) and [logging](https://developers.cloudflare.com/ai-gateway/observability/logging/index.md) | - Network accessline 15
Check the usage guide's authentication and stored-key prerequisites. Dynamic routes still use the [Unified API compatibility endpoint](https://developers.cloudflare.com/ai-gateway/usage/chat-completion/index.md); its single-model deprecatio
skills/cloudflare/references/ai-gateway/features.md
- Network accessline 5
| Task | Current documentation | |------|-----------------------| | Enable caching, set TTLs, bypass the cache, or choose a custom cache key | [Caching](https://developers.cloudflare.com/ai-gateway/features/caching/index.md) | - Network accessline 6
|------|-----------------------| | Enable caching, set TTLs, bypass the cache, or choose a custom cache key | [Caching](https://developers.cloudflare.com/ai-gateway/features/caching/index.md) | | Control request volume with fixed or sliding - Network accessline 7
| Enable caching, set TTLs, bypass the cache, or choose a custom cache key | [Caching](https://developers.cloudflare.com/ai-gateway/features/caching/index.md) | - Network accessline 8
| Control request volume with fixed or sliding limits | [Rate limiting](https://developers.cloudflare.com/ai-gateway/features/rate-limiting/index.md) | - Network accessline 9
| Enforce cost budgets | [Spend limits](https://developers.cloudflare.com/ai-gateway/features/spend-limits/index.md) | - Network accessline 10
| Evaluate and enforce content policies | [Guardrails setup](https://developers.cloudflare.com/ai-gateway/features/guardrails/set-up-guardrail/index.md) and [usage considerations](https://developers.cloudflare.com/ai-gateway/features/guardr - Network accessline 11
| Detect sensitive data in prompts and responses | [DLP setup](https://developers.cloudflare.com/ai-gateway/features/dlp/set-up-dlp/index.md) | - Network accessline 12
| Choose provider keys or Cloudflare billing | [BYOK](https://developers.cloudflare.com/ai-gateway/configuration/bring-your-own-keys/index.md) and [Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/index - Network accessline 13
| Configure provider data retention for Unified Billing | [Zero Data Retention](https://developers.cloudflare.com/ai-gateway/features/unified-billing/index.md#zero-data-retention-zdr) | - Network accessline 14
| Configure log collection, payload storage, and retention | [Logging](https://developers.cloudflare.com/ai-gateway/observability/logging/index.md) | - Network accessline 15
| Export logs | [Workers Logpush](https://developers.cloudflare.com/ai-gateway/observability/logging/logpush/index.md) | - Network accessline 16
| Attach request metadata for tracking and routing | [Custom metadata](https://developers.cloudflare.com/ai-gateway/observability/custom-metadata/index.md) | - Network accessline 17
| Override model costs | [Custom costs](https://developers.cloudflare.com/ai-gateway/configuration/custom-costs/index.md) | - Network accessline 18
| Check supported providers, quotas, or pricing | [Provider guides](https://developers.cloudflare.com/ai-gateway/usage/providers/index.md), [limits](https://developers.cloudflare.com/ai-gateway/reference/limits/index.md), and [pricing](http
skills/cloudflare/references/ai-gateway/sdk-integration.md
- Network accessline 5
| Integration task | Current documentation | |------------------|-----------------------| | New single-model HTTP calls or OpenAI-compatible clients | [REST API](https://developers.cloudflare.com/ai-gateway/usage/rest-api/index.md) | - Network accessline 6
|------------------|-----------------------| | New single-model HTTP calls or OpenAI-compatible clients | [REST API](https://developers.cloudflare.com/ai-gateway/usage/rest-api/index.md) | | Vercel AI SDK, provider adapters, and fallback pr - Network accessline 7
| New single-model HTTP calls or OpenAI-compatible clients | [REST API](https://developers.cloudflare.com/ai-gateway/usage/rest-api/index.md) | - Network accessline 8
| Vercel AI SDK, provider adapters, and fallback providers | [Vercel AI SDK integration](https://developers.cloudflare.com/ai-gateway/integrations/vercel-ai-sdk/index.md) | | Preserve OpenAI-native endpoints with the OpenAI SDK, Python, or - Network accessline 9
| Preserve OpenAI-native endpoints with the OpenAI SDK, Python, or HTTP | [OpenAI provider guide](https://developers.cloudflare.com/ai-gateway/usage/providers/openai/index.md) | | Preserve Anthropic-native requests | [Anthropic provider gui - Network accessline 10
| Preserve Anthropic-native requests | [Anthropic provider guide](https://developers.cloudflare.com/ai-gateway/usage/providers/anthropic/index.md) | - Network accessline 11
| Use another provider or a framework's configurable provider endpoint | [Provider guides](https://developers.cloudflare.com/ai-gateway/usage/providers/index.md) — match the framework's expected API shape to the provider endpoint | - Network accessline 12
| Configure Workers AI and an AI binding | [Binding setup](https://developers.cloudflare.com/ai-gateway/integrations/aig-workers-ai-binding/index.md) | - Network accessline 13
| Call Workers AI or third-party models from a Worker; use gateway methods | [Workers binding methods](https://developers.cloudflare.com/ai-gateway/usage/worker-binding-methods/index.md) | - Network accessline 14
| Set request metadata, caching, or other gateway headers | [Header glossary](https://developers.cloudflare.com/ai-gateway/glossary/index.md) | - Network accessline 15
| Invoke a dynamic route | [Dynamic route usage](https://developers.cloudflare.com/ai-gateway/features/dynamic-routing/usage/index.md) | - Network accessline 17
The [legacy Unified API](https://developers.cloudflare.com/ai-gateway/usage/chat-completion/index.md) is deprecated for single-model calls, but dynamic routes still require its compatibility endpoint. Do not migrate a dynamic route to the R
skills/cloudflare/references/ai-gateway/troubleshooting.md
- Network accessline 5
| Symptom or task | Current documentation | |-----------------|-----------------------| | Authentication or provider errors, timeouts, DLP failures, or unexpected cache behavior | [Troubleshooting](https://developers.cloudflare.com/ai-gatew - Network accessline 6
|-----------------|-----------------------| | Authentication or provider errors, timeouts, DLP failures, or unexpected cache behavior | [Troubleshooting](https://developers.cloudflare.com/ai-gateway/reference/troubleshooting/index.md) | | G - Network accessline 7
| Authentication or provider errors, timeouts, DLP failures, or unexpected cache behavior | [Troubleshooting](https://developers.cloudflare.com/ai-gateway/reference/troubleshooting/index.md) | - Network accessline 8
| Gateway authentication failure | [Authenticated Gateway](https://developers.cloudflare.com/ai-gateway/configuration/authentication/index.md) and [REST API authentication](https://developers.cloudflare.com/ai-gateway/usage/rest-api/index.m - Network accessline 9
| Provider key or billing mismatch | [BYOK](https://developers.cloudflare.com/ai-gateway/configuration/bring-your-own-keys/index.md), [Unified Billing](https://developers.cloudflare.com/ai-gateway/features/unified-billing/index.md), and the - Network accessline 10
| Rate limits or repeated failures | [Rate limiting](https://developers.cloudflare.com/ai-gateway/features/rate-limiting/index.md) and [request handling](https://developers.cloudflare.com/ai-gateway/configuration/request-handling/index.md) - Network accessline 11
| Unexpected cache hit or miss, including streaming behavior | [Caching](https://developers.cloudflare.com/ai-gateway/features/caching/index.md) | - Network accessline 12
| Missing logs, collection overrides, or storage limits | [Logging](https://developers.cloudflare.com/ai-gateway/observability/logging/index.md) and [limits](https://developers.cloudflare.com/ai-gateway/reference/limits/index.md) | - Network accessline 13
| Inspect headers, request metadata, usage, or export logs | [Header glossary](https://developers.cloudflare.com/ai-gateway/glossary/index.md), [custom metadata](https://developers.cloudflare.com/ai-gateway/observability/custom-metadata/ind - Network accessline 14
| Dynamic route failure | [Dynamic route usage](https://developers.cloudflare.com/ai-gateway/features/dynamic-routing/usage/index.md) |
skills/cloudflare/references/ai-search/README.md
- Network accessline 3
Use AI Search for managed content indexing and retrieval, with optional answer generation. Start with [How AI Search works](https://developers.cloudflare.com/ai-search/concepts/how-ai-search-works/index.md). - Network accessline 11
For freshness requirements, read [Syncing](https://developers.cloudflare.com/ai-search/configuration/indexing/syncing/index.md) for your data source before choosing an architecture. Use the current [limits and pricing](https://developers.cl - Network accessline 17
| Task | Start here | |------|------------| | Build a new Worker integration | [Workers binding quick start](https://developers.cloudflare.com/ai-search/get-started/workers/index.md) | - Network accessline 18
|------|------------| | Build a new Worker integration | [Workers binding quick start](https://developers.cloudflare.com/ai-search/get-started/workers/index.md) | | Choose an API or maintain an existing integration | [API routes](api.md) | - Network accessline 19
| Build a new Worker integration | [Workers binding quick start](https://developers.cloudflare.com/ai-search/get-started/workers/index.md) | - Network accessline 25
Existing `env.AI.autorag()` integrations can continue to work. Use the [migration guide](https://developers.cloudflare.com/ai-search/api/migration/workers-binding/index.md) when upgrading; migration is not required just to maintain an exist
skills/cloudflare/references/ai-search/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | New Worker integration: bindings, search, chat completions, and streaming | [Search Workers binding](https://developers.cloudflare.com/ai-search/api/search/workers-binding/index.md) | - Network accessline 6
|------|---------------| | New Worker integration: bindings, search, chat completions, and streaming | [Search Workers binding](https://developers.cloudflare.com/ai-search/api/search/workers-binding/index.md) | | Create, list, configure, an - Network accessline 7
| New Worker integration: bindings, search, chat completions, and streaming | [Search Workers binding](https://developers.cloudflare.com/ai-search/api/search/workers-binding/index.md) | - Network accessline 8
| Create, list, configure, and inspect instances | [Instances Workers binding](https://developers.cloudflare.com/ai-search/api/instances/workers-binding/index.md) | - Network accessline 9
| Query over HTTP and configure request authentication | [Search REST API](https://developers.cloudflare.com/ai-search/api/search/rest-api/index.md) | - Network accessline 10
| Maintain an existing `env.AI.autorag()` integration | [Legacy Workers binding](https://developers.cloudflare.com/ai-search/api/migration/workers-binding-legacy/index.md) | - Network accessline 11
| Upgrade a legacy binding, including responses, streaming, and filters | [Workers binding migration](https://developers.cloudflare.com/ai-search/api/migration/workers-binding/index.md) |
skills/cloudflare/references/ai-search/configuration.md
- Network accessline 3
| Task | Documentation | |------|---------------| | Set up a Worker and local development | [Workers binding quick start](https://developers.cloudflare.com/ai-search/get-started/workers/index.md) | - Network accessline 4
|------|---------------| | Set up a Worker and local development | [Workers binding quick start](https://developers.cloudflare.com/ai-search/get-started/workers/index.md) | | Select built-in uploads, R2, or a website; check supported format - Network accessline 5
| Set up a Worker and local development | [Workers binding quick start](https://developers.cloudflare.com/ai-search/get-started/workers/index.md) | - Network accessline 6
| Select built-in uploads, R2, or a website; check supported formats | [Data sources](https://developers.cloudflare.com/ai-search/configuration/data-source/index.md) | - Network accessline 7
| Connect existing R2 content | [R2 data source](https://developers.cloudflare.com/ai-search/configuration/data-source/r2/index.md) | - Network accessline 8
| Configure crawling and diagnose bot-protection requirements | [Website data source](https://developers.cloudflare.com/ai-search/configuration/data-source/website/index.md) | - Network accessline 9
| Include or exclude files and URL paths | [Path filtering](https://developers.cloudflare.com/ai-search/configuration/indexing/path-filtering/index.md) | - Network accessline 10
| Configure source syncs, trigger indexing, or pause and resume | [Syncing](https://developers.cloudflare.com/ai-search/configuration/indexing/syncing/index.md) | - Network accessline 11
| Grant AI Search access to R2 for indexing | [Service API token](https://developers.cloudflare.com/ai-search/configuration/indexing/service-api-token/index.md) | - Network accessline 12
| Organize instances by application, tenant, or environment | [Namespaces](https://developers.cloudflare.com/ai-search/concepts/namespaces/index.md) | - Network accessline 13
| Configure models | [Models](https://developers.cloudflare.com/ai-search/configuration/models/index.md) | - Network accessline 14
| Inspect instance configuration and indexing progress | [Instances Workers binding](https://developers.cloudflare.com/ai-search/api/instances/workers-binding/index.md) | - Network accessline 16
Indexing credentials and request authentication serve different purposes. For authenticating search requests over HTTP, use the [Search REST API](https://developers.cloudflare.com/ai-search/api/search/rest-api/index.md) documentation.
skills/cloudflare/references/ai-search/gotchas.md
- Network accessline 3
| Symptom or question | Documentation | |---------------------|---------------| | API request fails, including authentication or missing instances | [API error codes](https://developers.cloudflare.com/ai-search/troubleshooting/api-error-cod - Network accessline 4
|---------------------|---------------| | API request fails, including authentication or missing instances | [API error codes](https://developers.cloudflare.com/ai-search/troubleshooting/api-error-codes/index.md) | | Upload or sync succeeds - Network accessline 5
| API request fails, including authentication or missing instances | [API error codes](https://developers.cloudflare.com/ai-search/troubleshooting/api-error-codes/index.md) | - Network accessline 6
| Upload or sync succeeds but content fails during processing | [Indexing error codes](https://developers.cloudflare.com/ai-search/troubleshooting/indexing-error-codes/index.md) | - Network accessline 7
| Content is missing or stale | [Syncing](https://developers.cloudflare.com/ai-search/configuration/indexing/syncing/index.md) and [supported data sources and formats](https://developers.cloudflare.com/ai-search/configuration/data-source/in - Network accessline 8
| Filters return unexpected documents or no matches | [Filtering](https://developers.cloudflare.com/ai-search/configuration/retrieval/filtering/index.md) and [metadata attributes](https://developers.cloudflare.com/ai-search/configuration/in - Network accessline 9
| Thresholds exclude results or responses need tuning | [Result controls](https://developers.cloudflare.com/ai-search/configuration/retrieval/result-controls/index.md) | - Network accessline 10
| Binding types, response parsing, or streaming fail after an upgrade | [Workers binding migration](https://developers.cloudflare.com/ai-search/api/migration/workers-binding/index.md) | - Network accessline 11
| Capacity, file-size, or billing questions | [Limits and pricing](https://developers.cloudflare.com/ai-search/platform/limits-pricing/index.md) |
skills/cloudflare/references/ai-search/patterns.md
- Network accessline 3
Choose retrieval-only search when your application displays chunks or handles generation itself; choose chat completions when AI Search should also generate the answer. Read [Search Workers binding](https://developers.cloudflare.com/ai-sear - Network accessline 5
| Task | Documentation | |------|---------------| | Isolate tenants using separate instances or a shared filtered instance | [Multitenancy](https://developers.cloudflare.com/ai-search/how-to/per-tenant-search/index.md) | - Network accessline 6
|------|---------------| | Isolate tenants using separate instances or a shared filtered instance | [Multitenancy](https://developers.cloudflare.com/ai-search/how-to/per-tenant-search/index.md) | | Define built-in or custom metadata | [Meta - Network accessline 7
| Isolate tenants using separate instances or a shared filtered instance | [Multitenancy](https://developers.cloudflare.com/ai-search/how-to/per-tenant-search/index.md) | - Network accessline 8
| Define built-in or custom metadata | [Metadata attributes](https://developers.cloudflare.com/ai-search/configuration/indexing/metadata/index.md) | - Network accessline 9
| Filter by metadata, combine conditions, or match a folder and subfolders | [Filtering](https://developers.cloudflare.com/ai-search/configuration/retrieval/filtering/index.md) | - Network accessline 10
| Tune result count and relevance thresholds | [Result controls](https://developers.cloudflare.com/ai-search/configuration/retrieval/result-controls/index.md) | - Network accessline 11
| Resolve follow-up queries using conversation context | [Query rewriting](https://developers.cloudflare.com/ai-search/configuration/retrieval/query-rewriting/index.md) | - Network accessline 12
| Improve result ordering with a second model | [Reranking](https://developers.cloudflare.com/ai-search/configuration/retrieval/reranking/index.md) | - Network accessline 13
| Customize generation and query-rewriting instructions | [System prompt](https://developers.cloudflare.com/ai-search/configuration/retrieval/system-prompt/index.md) |
skills/cloudflare/references/bindings/README.md
- Network accessline 9
- [Bindings overview and catalog](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md): capability model, available products, environment access, and binding lifecycle. - Network accessline 10
- [Storage options](https://developers.cloudflare.com/workers/platform/storage-options/index.md): choose storage from consistency, query, and coordination requirements.
skills/cloudflare/references/bindings/api.md
- Network accessline 5
| Task | Current documentation | | --- | --- | | Access bindings in handlers, entrypoint classes, or imported `env` | [Bindings and environment access](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md) | - Network accessline 6
| --- | --- | | Access bindings in handlers, entrypoint classes, or imported `env` | [Bindings and environment access](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md) | | Generate environment and runtime types; con - Network accessline 7
| Access bindings in handlers, entrypoint classes, or imported `env` | [Bindings and environment access](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md) | - Network accessline 8
| Generate environment and runtime types; configure TypeScript or migrate from `@cloudflare/workers-types` | [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 9
| Use framework-specific environment access | [Hono on Workers](https://developers.cloudflare.com/workers/framework-guides/web-apps/more-web-frameworks/hono/index.md) (follow the framework's linked documentation) | - Network accessline 10
| Read, write, delete, and list KV keys | [KV Workers API](https://developers.cloudflare.com/kv/api/index.md) | - Network accessline 11
| Read, write, delete, and list R2 objects | [R2 Workers API](https://developers.cloudflare.com/r2/api/workers/workers-api-reference/index.md) | - Network accessline 12
| Prepare and bind SQL statements or execute batches | [D1 Workers Binding API](https://developers.cloudflare.com/d1/worker-api/index.md) | - Network accessline 13
| Address Durable Objects and call their methods | [Durable Objects API](https://developers.cloudflare.com/durable-objects/api/index.md) | - Network accessline 14
| Send queue messages | [Queues JavaScript APIs](https://developers.cloudflare.com/queues/configuration/javascript-apis/index.md) | - Network accessline 15
| Run model inference | [Workers AI bindings](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md) | - Network accessline 16
| Call another Worker using HTTP or typed RPC | [Service bindings](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/index.md) and [RPC TypeScript](https://developers.cloudflare.com/workers/runtime-apis/rpc/ty - Network accessline 17
| Find other product binding APIs, including Browser, mTLS, rate limiting, and Workflows | [Current binding catalog](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md) |
skills/cloudflare/references/bindings/configuration.md
- Network accessline 5
| Task | Current documentation | | --- | --- | | Configure storage, compute, platform, and service bindings | [Wrangler binding configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#bindings) | - Network accessline 6
| --- | --- | | Configure storage, compute, platform, and service bindings | [Wrangler binding configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#bindings) | | Create or inspect resources and manage dep - Network accessline 7
| Configure storage, compute, platform, and service bindings | [Wrangler binding configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#bindings) | - Network accessline 8
| Create or inspect resources and manage deployments | [Wrangler commands](https://developers.cloudflare.com/workers/wrangler/commands/index.md) (select the product's commands) | - Network accessline 9
| Configure named environments and non-inheritable bindings | [Wrangler environments](https://developers.cloudflare.com/workers/wrangler/environments/index.md) | - Network accessline 10
| Set non-sensitive configuration | [Environment variables](https://developers.cloudflare.com/workers/configuration/environment-variables/index.md) | - Network accessline 11
| Set or rotate credentials in a chosen environment | [Secrets](https://developers.cloudflare.com/workers/configuration/secrets/index.md) | - Network accessline 12
| Configure text, data, and Wasm modules in existing projects | [Wrangler bundling](https://developers.cloudflare.com/workers/wrangler/bundling/index.md) and [configuration](https://developers.cloudflare.com/workers/wrangler/configuration/i - Network accessline 13
| Choose locally simulated resources or remote bindings | [Local development](https://developers.cloudflare.com/workers/local-development/index.md) and [supported bindings per development mode](https://developers.cloudflare.com/workers/loca - Network accessline 14
| Supply local variables and secrets | [Local environment variables and secrets](https://developers.cloudflare.com/workers/local-development/environment-variables/index.md) | - Network accessline 15
| Seed or persist local resource data | [Adding local data](https://developers.cloudflare.com/workers/local-development/local-data/index.md) | - Network accessline 16
| Generate types after configuring bindings | [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) |
skills/cloudflare/references/bindings/gotchas.md
- Network accessline 5
| Symptom or question | What to check | | --- | --- | | A binding is undefined or points to unexpected data | [Binding configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#bindings) and [environment inher - Network accessline 6
| --- | --- | | A binding is undefined or points to unexpected data | [Binding configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#bindings) and [environment inheritance](https://developers.cloudflare.co - Network accessline 7
| A binding is undefined or points to unexpected data | [Binding configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#bindings) and [environment inheritance](https://developers.cloudflare.com/workers/wran - Network accessline 8
| TypeScript cannot find a binding or runtime type | [Current type generation and TypeScript setup](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 9
| Updated credentials are not reflected in a client | [Binding changes and retained global state](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md#making-changes-to-bindings); verify the [secret's environment and dep - Network accessline 10
| Binding calls fail outside a handler | [Environment access and global-scope restrictions](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md#how-to-access-env) | - Network accessline 11
| A service target is unavailable or incorrect | [Service bindings](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/index.md) and [multi-Worker development](https://developers.cloudflare.com/workers/local-de - Network accessline 12
| Local data, secrets, or available bindings differ from deployment | [Development mode support](https://developers.cloudflare.com/workers/local-development/bindings-per-env/index.md), [local data](https://developers.cloudflare.com/workers/ - Network accessline 13
| KV reads appear stale or return no value | [How KV works](https://developers.cloudflare.com/kv/concepts/how-kv-works/index.md); verify the namespace and handle missing values | - Network accessline 14
| Resource-specific API errors or limits | Follow the product from the [binding catalog](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md) to its troubleshooting and limits documentation | - Network accessline 15
| Worker resource limits or unexpected charges | [Workers limits](https://developers.cloudflare.com/workers/platform/limits/index.md) and [pricing](https://developers.cloudflare.com/workers/platform/pricing/index.md); check each bound produ - Network accessline 16
| Need to inspect configuration, resources, deployments, or logs | [Wrangler commands](https://developers.cloudflare.com/workers/wrangler/commands/index.md) and [real-time logs](https://developers.cloudflare.com/workers/observability/logs/r
skills/cloudflare/references/bindings/patterns.md
- Network accessline 5
| Task | Current documentation | | --- | --- | | Choose HTTP forwarding or RPC between Workers | [Service bindings](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/index.md) | - Network accessline 6
| --- | --- | | Choose HTTP forwarding or RPC between Workers | [Service bindings](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/index.md) | | Forward Requests and Responses through a service binding | [Se - Network accessline 7
| Choose HTTP forwarding or RPC between Workers | [Service bindings](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/index.md) | | Forward Requests and Responses through a service binding | [Service bindings - Network accessline 8
| Forward Requests and Responses through a service binding | [Service bindings over HTTP](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/http/index.md) | - Network accessline 9
| Expose callable methods with `WorkerEntrypoint` | [Service bindings over RPC](https://developers.cloudflare.com/workers/runtime-apis/bindings/service-bindings/rpc/index.md) and [RPC TypeScript](https://developers.cloudflare.com/workers/ru - Network accessline 10
| Run connected Workers during development | [Developing with multiple Workers](https://developers.cloudflare.com/workers/local-development/multi-workers/index.md) | - Network accessline 11
| Test handlers against configured bindings and mock dependencies | [Workers Vitest configuration](https://developers.cloudflare.com/workers/testing/vitest-integration/configuration/index.md) and [test APIs](https://developers.cloudflare.co - Network accessline 12
| Select KV, D1, R2, or Durable Objects | [Storage options](https://developers.cloudflare.com/workers/platform/storage-options/index.md) | - Network accessline 13
| Keep clients current when bindings change | [Binding lifecycle](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md#making-changes-to-bindings) | - Network accessline 14
| Manage credentials used by external API clients | [Secrets](https://developers.cloudflare.com/workers/configuration/secrets/index.md) |
skills/cloudflare/references/browser-rendering/README.md
- Network accessline 3
Use Browser Run for screenshots, PDFs, rendered content extraction, and browser automation. Read the relevant current documentation before implementing; use the [documentation index](https://developers.cloudflare.com/browser-run/llms.txt) t
skills/cloudflare/references/browser-rendering/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Screenshots, PDFs, HTML, scraping, or structured extraction | [Quick Actions](https://developers.cloudflare.com/browser-run/quick-actions/index.md) — links to each action's request options - Network accessline 6
|------|---------------| | Screenshots, PDFs, HTML, scraping, or structured extraction | [Quick Actions](https://developers.cloudflare.com/browser-run/quick-actions/index.md) — links to each action's request options and examples for REST or - Network accessline 7
| Screenshots, PDFs, HTML, scraping, or structured extraction | [Quick Actions](https://developers.cloudflare.com/browser-run/quick-actions/index.md) — links to each action's request options and examples for REST or Workers bindings | - Network accessline 8
| Automate a browser in Workers with Puppeteer | [Puppeteer](https://developers.cloudflare.com/browser-run/puppeteer/index.md) — Cloudflare package, browser operations, and session APIs | - Network accessline 9
| Automate a browser in Workers with Playwright | [Playwright](https://developers.cloudflare.com/browser-run/playwright/index.md) — Cloudflare package, locators, storage state, and tracing | - Network accessline 10
| Control a remote browser from an external runtime | [CDP](https://developers.cloudflare.com/browser-run/cdp/index.md) — session endpoints and links to Puppeteer, Playwright, and other clients |
skills/cloudflare/references/browser-rendering/configuration.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Start a project or configure REST authentication | [Get started](https://developers.cloudflare.com/browser-run/get-started/index.md) — Quick Actions and browser session setup | - Network accessline 6
|------|---------------| | Start a project or configure REST authentication | [Get started](https://developers.cloudflare.com/browser-run/get-started/index.md) — Quick Actions and browser session setup | | Configure a Worker or choose a dev - Network accessline 7
| Start a project or configure REST authentication | [Get started](https://developers.cloudflare.com/browser-run/get-started/index.md) — Quick Actions and browser session setup | - Network accessline 8
| Configure a Worker or choose a development mode | [Wrangler reference](https://developers.cloudflare.com/browser-run/reference/wrangler/index.md) — browser bindings, compatibility requirements, and local/remote development | - Network accessline 9
| Install or update a Workers browser client | [Puppeteer](https://developers.cloudflare.com/browser-run/puppeteer/index.md) or [Playwright](https://developers.cloudflare.com/browser-run/playwright/index.md) — package-specific setup and sup - Network accessline 10
| Connect from a script, server, or CI outside Workers | [CDP](https://developers.cloudflare.com/browser-run/cdp/index.md) — authentication and client integration guides |
skills/cloudflare/references/browser-rendering/gotchas.md
- Network accessline 5
| Concern | Documentation | |---------|---------------| | Quotas, launch rates, concurrency, and session timeouts | [Limits](https://developers.cloudflare.com/browser-run/limits/index.md) — check the current plan and integration-specific li - Network accessline 6
|---------|---------------| | Quotas, launch rates, concurrency, and session timeouts | [Limits](https://developers.cloudflare.com/browser-run/limits/index.md) — check the current plan and integration-specific limits | | Browser hours and c - Network accessline 7
| Quotas, launch rates, concurrency, and session timeouts | [Limits](https://developers.cloudflare.com/browser-run/limits/index.md) — check the current plan and integration-specific limits | - Network accessline 8
| Browser hours and concurrent-browser charges | [Pricing](https://developers.cloudflare.com/browser-run/pricing/index.md) — distinguish Quick Actions from browser sessions | - Network accessline 9
| Missing bindings, action failures, or unsupported behavior | [FAQ](https://developers.cloudflare.com/browser-run/faq/index.md) — diagnose the reported error and runtime constraints | | Puppeteer page evaluation cannot access outer variabl - Network accessline 10
| Puppeteer page evaluation cannot access outer variables | [JavaScript execution](https://pptr.dev/guides/javascript-execution) — browser execution context, passing arguments, and returned values | | Block resources or handle intercepted P - Network accessline 11
| Block resources or handle intercepted Puppeteer requests | [Request interception](https://pptr.dev/guides/network-interception) — continue, respond, or abort requests and avoid duplicate handling | - Network accessline 12
| Unexpected disconnects or session loss | [Browser close reasons](https://developers.cloudflare.com/browser-run/reference/browser-close-reasons/index.md) — inspect the recorded close reason before choosing recovery | - Network accessline 13
| Development or compatibility failures | [Wrangler reference](https://developers.cloudflare.com/browser-run/reference/wrangler/index.md) — verify binding configuration and interface-specific development support |
skills/cloudflare/references/browser-rendering/patterns.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Implement screenshots, PDFs, or extraction | [Quick Actions](https://developers.cloudflare.com/browser-run/quick-actions/index.md) — choose the action and follow its example | - Network accessline 6
|------|---------------| | Implement screenshots, PDFs, or extraction | [Quick Actions](https://developers.cloudflare.com/browser-run/quick-actions/index.md) — choose the action and follow its example | | Build custom interactions | [Puppet - Network accessline 7
| Implement screenshots, PDFs, or extraction | [Quick Actions](https://developers.cloudflare.com/browser-run/quick-actions/index.md) — choose the action and follow its example | | Build custom interactions | [Puppeteer](https://developers.c - Network accessline 8
| Build custom interactions | [Puppeteer](https://developers.cloudflare.com/browser-run/puppeteer/index.md) or [Playwright](https://developers.cloudflare.com/browser-run/playwright/index.md) — browser automation examples | | Reconnect acros - Network accessline 9
| Reconnect across requests | [Reuse sessions](https://developers.cloudflare.com/browser-run/features/reuse-sessions/index.md) — disconnect/reconnect lifecycle and when to use Durable Objects for stateful ownership | - Network accessline 10
| Share browser capacity while isolating users | [Concurrency and session isolation](https://developers.cloudflare.com/browser-run/limits/index.md#how-can-i-manage-concurrency-and-session-isolation-with-browser-run) — tabs, browser contexts - Access to secretsline 12
[Credential-related source omitted]
skills/cloudflare/references/c3/README.md
- Network accessline 42
Fetch the [Workers framework guide](https://developers.cloudflare.com/workers/framework-guides/index.md) for the chosen framework before scaffolding or adapting an existing app. For Next.js, follow [Next.js on Workers](https://developers.cl
skills/cloudflare/references/c3/configuration.md
skills/cloudflare/references/c3/gotchas.md
skills/cloudflare/references/containers/README.md
- Network accessline 7
Use [Containers](https://developers.cloudflare.com/containers/index.md) for existing container images, custom runtimes, system dependencies, full filesystem access, or workloads needing additional CPU and memory. Use [Workers](https://devel - Network accessline 9
Containers are controlled through [Durable Objects](https://developers.cloudflare.com/durable-objects/index.md). An instance's identity does not make its filesystem persistent: design for restarts and store durable data outside the containe - Network accessline 15
| Task | Start here | | --- | --- | | Create a project and deploy the first container | [Get started](https://developers.cloudflare.com/containers/get-started/index.md) | - Network accessline 16
| --- | --- | | Create a project and deploy the first container | [Get started](https://developers.cloudflare.com/containers/get-started/index.md) | | Configure images, bindings, instance sizes, and deployments | [Configuration](configurati - Network accessline 17
| Create a project and deploy the first container | [Get started](https://developers.cloudflare.com/containers/get-started/index.md) | | Configure images, bindings, instance sizes, and deployments | [Configuration](configuration.md) | | Con - Network accessline 23
For additional topics, consult the [Containers documentation index](https://developers.cloudflare.com/containers/llms.txt).
skills/cloudflare/references/containers/api.md
- Network accessline 3
Use the [Container interface](https://developers.cloudflare.com/containers/api/container-class/index.md) for the current SDK methods, signatures, properties, and examples. Use the [Durable Object Container API](https://developers.cloudflare - Network accessline 5
| Task | Documentation | | --- | --- | | Forward HTTP or WebSocket requests | [Request methods](https://developers.cloudflare.com/containers/api/container-class/index.md#request-methods) | - Network accessline 6
| --- | --- | | Forward HTTP or WebSocket requests | [Request methods](https://developers.cloudflare.com/containers/api/container-class/index.md#request-methods) | | Start a process, wait for ports, stop, or destroy it | [Start and stop](ht - Network accessline 7
| Forward HTTP or WebSocket requests | [Request methods](https://developers.cloudflare.com/containers/api/container-class/index.md#request-methods) | - Network accessline 8
| Start a process, wait for ports, stop, or destroy it | [Start and stop](https://developers.cloudflare.com/containers/api/container-class/index.md#start-and-stop) | - Network accessline 9
| React to startup, exit, errors, or idle expiry | [Lifecycle hooks](https://developers.cloudflare.com/containers/api/container-class/index.md#lifecycle-hooks) | - Network accessline 10
| Inspect state or keep background work active | [State and monitoring](https://developers.cloudflare.com/containers/api/container-class/index.md#state-and-monitoring) | - Network accessline 11
| Schedule callbacks without replacing the SDK's alarm handler | [Scheduling](https://developers.cloudflare.com/containers/api/container-class/index.md#scheduling) | - Network accessline 12
| Address named instances, select stateless instances, or switch request ports | [Utility functions](https://developers.cloudflare.com/containers/api/container-class/index.md#utility-functions) | - Network accessline 13
| Communicate over TCP from a Durable Object | [TCP port API](https://developers.cloudflare.com/containers/api/durable-object-container/index.md#gettcpport) |
skills/cloudflare/references/containers/configuration.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Configure the container image, Durable Object binding, class, migrations, and instance count | [Wrangler Containers configuration](https://developers.cloudflare.com/workers/wrangler/configuration/ind - Network accessline 6
| --- | --- | | Configure the container image, Durable Object binding, class, migrations, and instance count | [Wrangler Containers configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#containers) | | Sel - Network accessline 7
| Configure the container image, Durable Object binding, class, migrations, and instance count | [Wrangler Containers configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#containers) | - Network accessline 8
| Select a predefined size or configure custom CPU, memory, and disk | [Limits and instance types](https://developers.cloudflare.com/containers/platform/limits/index.md) and [custom instance configuration](https://developers.cloudflare.com/ - Network accessline 9
| Set ports, readiness checks, idle timeout, entrypoint, or internet access | [Container properties](https://developers.cloudflare.com/containers/api/container-class/index.md#properties) | - Network accessline 10
| Set runtime variables or pass secrets per instance | [Environment variables](https://developers.cloudflare.com/containers/configuration/environment-variables/index.md) and [environment variables and secrets example](https://developers.clo - Network accessline 11
| Build images or use existing registry images | [Image management](https://developers.cloudflare.com/containers/guides/image-management/index.md) | - Network accessline 12
| Run and iterate locally | [Local development](https://developers.cloudflare.com/containers/guides/local-dev/index.md) | - Network accessline 13
| Deploy from a workstation or Workers Builds | [Deploy Containers](https://developers.cloudflare.com/containers/guides/deploy/index.md) | - Network accessline 14
| Control image updates and replacement of running instances | [Rollouts](https://developers.cloudflare.com/containers/configuration/rollouts/index.md) | - Network accessline 15
| Estimate resource and network costs | [Pricing](https://developers.cloudflare.com/containers/platform/pricing/index.md) |
skills/cloudflare/references/containers/gotchas.md
- Network accessline 5
| Symptom or concern | Documentation to read | | --- | --- | | Startup timeout or unavailable port | [Start and stop](https://developers.cloudflare.com/containers/api/container-class/index.md#start-and-stop), [Container properties](https:// - Network accessline 6
| --- | --- | | Startup timeout or unavailable port | [Start and stop](https://developers.cloudflare.com/containers/api/container-class/index.md#start-and-stop), [Container properties](https://developers.cloudflare.com/containers/api/contai - Network accessline 7
| Startup timeout or unavailable port | [Start and stop](https://developers.cloudflare.com/containers/api/container-class/index.md#start-and-stop), [Container properties](https://developers.cloudflare.com/containers/api/container-class/inde - Network accessline 8
| WebSocket forwarding fails | [WebSocket example](https://developers.cloudflare.com/containers/examples/websocket/index.md) and [request methods](https://developers.cloudflare.com/containers/api/container-class/index.md#request-methods) | - Network accessline 9
| Background work stops on idle expiry | [Activity renewal](https://developers.cloudflare.com/containers/api/container-class/index.md#renewactivitytimeout) and [idle expiry hook](https://developers.cloudflare.com/containers/api/container-cl - Network accessline 10
| Scheduled callbacks do not run | [Scheduling and alarm ownership](https://developers.cloudflare.com/containers/api/container-class/index.md#scheduling) | - Network accessline 11
| Shutdown cleanup or filesystem data loss | [Container shutdown and disk lifecycle](https://developers.cloudflare.com/containers/concepts/architecture/index.md#container-shutdown) | - Network accessline 12
| Out-of-memory errors or resource exhaustion | [FAQ](https://developers.cloudflare.com/containers/faq/index.md) and [limits and instance types](https://developers.cloudflare.com/containers/platform/limits/index.md) | - Network accessline 13
| Instance count exceeded or unexpected request distribution | [Wrangler configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#containers) and [scaling and routing](https://developers.cloudflare.com/contai - Network accessline 14
| Worker and container image versions differ after deployment | [Deployment behavior](https://developers.cloudflare.com/containers/guides/deploy/index.md) and [rollouts](https://developers.cloudflare.com/containers/configuration/rollouts/in - Network accessline 15
| Local behavior differs from deployed behavior | [Local development](https://developers.cloudflare.com/containers/guides/local-dev/index.md) | - Network accessline 16
| Logs, cold starts, or runtime availability questions | [FAQ](https://developers.cloudflare.com/containers/faq/index.md) |
skills/cloudflare/references/containers/patterns.md
- Network accessline 3
Choose instance identity based on the workload: per-user/session or per-job identities for affinity, one shared identity for a singleton, and interchangeable instances for stateless requests. Read [scaling and routing](https://developers.cl - Network accessline 5
| Task | Documentation | | --- | --- | | Distribute requests across stateless instances | [Stateless instances example](https://developers.cloudflare.com/containers/examples/stateless/index.md) | - Network accessline 6
| --- | --- | | Distribute requests across stateless instances | [Stateless instances example](https://developers.cloudflare.com/containers/examples/stateless/index.md) | | Forward WebSocket connections | [WebSocket example](https://develop - Network accessline 7
| Distribute requests across stateless instances | [Stateless instances example](https://developers.cloudflare.com/containers/examples/stateless/index.md) | - Network accessline 8
| Forward WebSocket connections | [WebSocket example](https://developers.cloudflare.com/containers/examples/websocket/index.md) | - Network accessline 9
| React to lifecycle changes | [Status hooks example](https://developers.cloudflare.com/containers/examples/status-hooks/index.md) | - Network accessline 10
| Handle shutdown and persist data across restarts | [Container lifecycle](https://developers.cloudflare.com/containers/concepts/architecture/index.md) and [Container interface](https://developers.cloudflare.com/containers/api/container-cla - Network accessline 11
| Keep long operations active or schedule callbacks | [Activity renewal](https://developers.cloudflare.com/containers/api/container-class/index.md#renewactivitytimeout) and [scheduling](https://developers.cloudflare.com/containers/api/conta - Network accessline 12
| Start containers on a cron schedule | [Cron container example](https://developers.cloudflare.com/containers/examples/cron/index.md) | | Route requests to multiple ports | [Request methods](https://developers.cloudflare.com/containers/api/ - Network accessline 13
| Route requests to multiple ports | [Request methods](https://developers.cloudflare.com/containers/api/container-class/index.md#request-methods) and [utility functions](https://developers.cloudflare.com/containers/api/container-class/index - Network accessline 14
| Access Workers bindings from the container | [Connect to Workers and bindings](https://developers.cloudflare.com/containers/configuration/workers-connections/index.md) | - Network accessline 18
For multi-step orchestration, combine the [Workflows Workers API](https://developers.cloudflare.com/workflows/build/workers-api/index.md) with the [Container API](api.md). For queue-driven jobs, read the [Queues consumer API](https://develo
skills/cloudflare/references/cron-triggers/README.md
- Network accessline 5
- **Set up a recurring job:** [Cron Triggers](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md) covers scheduling, deployment, and execution history. - Network accessline 6
- **Implement the job:** [Scheduled handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/index.md) covers controller properties, asynchronous work, and multiple schedules. - **Schedule durable work:** [Trigger - Network accessline 7
- **Schedule durable work:** [Trigger Workflows](https://developers.cloudflare.com/workflows/build/trigger-workflows/index.md) covers direct Workflow schedules and starting instances from a Worker. Check this before introducing a Worker who - Network accessline 8
- **Check capacity:** fetch [Workers limits](https://developers.cloudflare.com/workers/platform/limits/index.md) for the target plan and invocation type.
skills/cloudflare/references/cron-triggers/api.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Implement the handler and access the cron expression, scheduled time, bindings, and context | [Scheduled handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/index.md) | - Network accessline 6
| --- | --- | | Implement the handler and access the cron expression, scheduled time, bindings, and context | [Scheduled handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/index.md) | | Route different schedu - Network accessline 7
| Implement the handler and access the cron expression, scheduled time, bindings, and context | [Scheduled handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/index.md) | - Network accessline 8
| Route different schedules to different operations | [Handle multiple cron triggers](https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/index.md#handle-multiple-cron-triggers) | - Network accessline 9
| Await work and understand how asynchronous failures affect invocation status | [Handler methods](https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/index.md#methods) | - Network accessline 10
| Invoke a scheduled handler locally with a chosen expression or time | [Test Cron Triggers locally](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#test-cron-triggers-locally) | - Network accessline 11
| Build tests using runtime-backed controllers and execution contexts | [Workers test APIs](https://developers.cloudflare.com/workers/testing/vitest-integration/test-apis/index.md) | - Network accessline 12
| Start and inspect a Workflow instance | [Trigger Workflows](https://developers.cloudflare.com/workflows/build/trigger-workflows/index.md) |
skills/cloudflare/references/cron-triggers/configuration.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Add a handler and configure triggers, including per-environment schedules and deployment propagation | [Add a Cron Trigger](https://developers.cloudflare.com/workers/configuration/cron-triggers/index - Network accessline 6
| --- | --- | | Add a handler and configure triggers, including per-environment schedules and deployment propagation | [Add a Cron Trigger](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#add-a-cron-trigger) | - Network accessline 7
| Add a handler and configure triggers, including per-environment schedules and deployment propagation | [Add a Cron Trigger](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#add-a-cron-trigger) | - Network accessline 8
| Choose an expression, interpret weekday numbering, or check supported extensions | [Supported cron expressions](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#supported-cron-expressions) | - Network accessline 9
| Remove schedules or distinguish omission from an empty configuration | [Remove a Cron Trigger](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#remove-a-cron-trigger) | - Network accessline 10
| Configure renewable-energy execution locations | [Green Compute](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#green-compute) | - Network accessline 11
| Check trigger counts and execution budgets | [Workers limits](https://developers.cloudflare.com/workers/platform/limits/index.md) | - Network accessline 12
| Schedule Workflow instances directly | [Schedule a Workflow directly](https://developers.cloudflare.com/workflows/build/trigger-workflows/index.md#schedule-a-workflow-directly) |
skills/cloudflare/references/cron-triggers/gotchas.md
- Network accessline 5
| Symptom or question | Documentation and check | | --- | --- | | Job runs at an unexpected time | Check [UTC execution](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#background) and [expression syntax](http - Network accessline 6
| --- | --- | | Job runs at an unexpected time | Check [UTC execution](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#background) and [expression syntax](https://developers.cloudflare.com/workers/configuratio - Network accessline 7
| Job runs at an unexpected time | Check [UTC execution](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#background) and [expression syntax](https://developers.cloudflare.com/workers/configuration/cron-trigger - Network accessline 8
| Schedule is missing after deployment | Check the handler, target environment, and propagation guidance in [Add a Cron Trigger](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#add-a-cron-trigger). | - Network accessline 9
| Removing or preserving schedules has an unexpected result | Review [Remove a Cron Trigger](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#remove-a-cron-trigger) before changing empty or omitted configuratio - Network accessline 10
| Local invocation fails | Follow [Test Cron Triggers locally](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#test-cron-triggers-locally) for the supported endpoint, port, and query parameters. | - Network accessline 11
| Async work fails or completion status is surprising | Read [handler methods](https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/index.md#methods) and inspect [past events](https://developers.cloudflare.com/workers/c - Network accessline 12
| Job exceeds its execution budget | Check [Workers limits](https://developers.cloudflare.com/workers/platform/limits/index.md) before choosing a smaller unit of work or [Workflows](../workflows/README.md). | - Network accessline 13
| Green Compute behavior differs from expectations | Read [Green Compute](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#green-compute) for its execution-location policy and account configuration. |
skills/cloudflare/references/cron-triggers/patterns.md
- Network accessline 5
| Need | Documentation | | --- | --- | | Periodic API sync, cleanup, reports, or health checks in a Worker | [Cron Triggers background](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#background) and [schedule - Network accessline 6
| --- | --- | | Periodic API sync, cleanup, reports, or health checks in a Worker | [Cron Triggers background](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#background) and [scheduled handler](https://develo - Network accessline 7
| Periodic API sync, cleanup, reports, or health checks in a Worker | [Cron Triggers background](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#background) and [scheduled handler](https://developers.cloudflar - Network accessline 8
| Different jobs on different schedules | [Handle multiple cron triggers](https://developers.cloudflare.com/workers/runtime-apis/handlers/scheduled/index.md#handle-multiple-cron-triggers) | - Network accessline 9
| Durable multi-step work started on a schedule | [Trigger Workflows](https://developers.cloudflare.com/workflows/build/trigger-workflows/index.md) | - Network accessline 10
| Send work to a queue and implement its consumer | [Queues JavaScript APIs](https://developers.cloudflare.com/queues/configuration/javascript-apis/index.md) | - Network accessline 11
| Coordinate state across invocations | [What are Durable Objects?](https://developers.cloudflare.com/durable-objects/concepts/what-are-durable-objects/index.md) | - Network accessline 12
| Inspect whether scheduled work ran | [View past events](https://developers.cloudflare.com/workers/configuration/cron-triggers/index.md#view-past-events) | - Network accessline 16
Use [Workers limits](https://developers.cloudflare.com/workers/platform/limits/index.md) to evaluate whether the job fits one invocation. If it needs durable steps, waiting, or explicit retry boundaries, inspect [Workflows](../workflows/REA
skills/cloudflare/references/d1/README.md
- Network accessline 3
Use D1 for managed relational application data with SQLite semantics. For an existing external database, consider [Hyperdrive](../hyperdrive/); for per-entity coordination, consider [Durable Objects](https://developers.cloudflare.com/worker - Network accessline 9
- [Get started](https://developers.cloudflare.com/d1/get-started/index.md): create a database, bind it to a Worker, and run a first query. - Network accessline 15
Check [limits](https://developers.cloudflare.com/d1/platform/limits/index.md) and [pricing](https://developers.cloudflare.com/d1/platform/pricing/index.md) for capacity, allowances, and plan availability; do not infer them from old examples
skills/cloudflare/references/d1/api.md
- Network accessline 5
| Task | Current documentation | | --- | --- | | Bind values and choose a query execution method | [Prepared statement methods](https://developers.cloudflare.com/d1/worker-api/prepared-statements/index.md) | - Network accessline 6
| --- | --- | | Bind values and choose a query execution method | [Prepared statement methods](https://developers.cloudflare.com/d1/worker-api/prepared-statements/index.md) | | Execute batches and understand transaction rollback; use databa - Network accessline 7
| Bind values and choose a query execution method | [Prepared statement methods](https://developers.cloudflare.com/d1/worker-api/prepared-statements/index.md) | - Network accessline 8
| Execute batches and understand transaction rollback; use database sessions | [D1 Database API](https://developers.cloudflare.com/d1/worker-api/d1-database/index.md) | - Network accessline 9
| Interpret results and query metadata | [Return objects](https://developers.cloudflare.com/d1/worker-api/return-object/index.md) | | Choose supported JavaScript values and TypeScript result types | [Workers Binding API](https://developers. - Network accessline 10
| Choose supported JavaScript values and TypeScript result types | [Workers Binding API](https://developers.cloudflare.com/d1/worker-api/index.md) | | Choose consistency constraints and carry bookmarks between requests | [Read replication a - Network accessline 11
| Choose consistency constraints and carry bookmarks between requests | [Read replication and Sessions API](https://developers.cloudflare.com/d1/best-practices/read-replication/index.md) | - Network accessline 12
| Query from a server-side script outside Workers | [REST query API](https://developers.cloudflare.com/api/resources/d1/subresources/database/methods/query/index.md) | - Network accessline 13
| Handle query failures and transient errors | [Debug D1](https://developers.cloudflare.com/d1/observability/debug-d1/index.md) and [retry queries](https://developers.cloudflare.com/d1/best-practices/retry-queries/index.md) | - Network accessline 14
| Test database queries and apply migrations in tests | [Workers Vitest APIs: D1](https://developers.cloudflare.com/workers/testing/vitest-integration/test-apis/index.md#d1) |
skills/cloudflare/references/d1/configuration.md
- Network accessline 5
| Task | Current documentation | | --- | --- | | Create a database and attach a Worker binding | [Getting started](https://developers.cloudflare.com/d1/get-started/index.md) | - Network accessline 6
| --- | --- | | Create a database and attach a Worker binding | [Getting started](https://developers.cloudflare.com/d1/get-started/index.md) | | Configure binding fields and multiple databases | [Wrangler D1 configuration](https://developer - Network accessline 7
| Create a database and attach a Worker binding | [Getting started](https://developers.cloudflare.com/d1/get-started/index.md) | - Network accessline 8
| Configure binding fields and multiple databases | [Wrangler D1 configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#d1-databases) | - Network accessline 9
| Separate staging and production databases | [D1 environments](https://developers.cloudflare.com/d1/configuration/environments/index.md) | - Network accessline 10
| Create, track, and apply schema migrations | [Migrations](https://developers.cloudflare.com/d1/reference/migrations/index.md) | - Network accessline 11
| Look up CLI flags for management, execution, and exports | [D1 Wrangler commands](https://developers.cloudflare.com/d1/wrangler-commands/index.md) | - Network accessline 12
| Develop against local database state | [Local development](https://developers.cloudflare.com/d1/best-practices/local-development/index.md) | - Network accessline 13
| Generate binding types | [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 14
| Choose an ORM or query builder, including Drizzle | [D1 community projects](https://developers.cloudflare.com/d1/reference/community-projects/index.md) (follow the integration's current setup guide) | - Network accessline 15
| Import or export SQL data | [Import and export data](https://developers.cloudflare.com/d1/best-practices/import-export-data/index.md) | - Network accessline 16
| Enable replicas and use them through sessions | [Read replication](https://developers.cloudflare.com/d1/best-practices/read-replication/index.md) |
skills/cloudflare/references/d1/gotchas.md
- Network accessline 5
| Symptom or question | What to check | | --- | --- | | Missing table, query exception, or constraint error | [Debug D1](https://developers.cloudflare.com/d1/observability/debug-d1/index.md); verify the target binding, environment, and appl - Network accessline 6
| --- | --- | | Missing table, query exception, or constraint error | [Debug D1](https://developers.cloudflare.com/d1/observability/debug-d1/index.md); verify the target binding, environment, and applied [migrations](https://developers.clou - Network accessline 7
| Missing table, query exception, or constraint error | [Debug D1](https://developers.cloudflare.com/d1/observability/debug-d1/index.md); verify the target binding, environment, and applied [migrations](https://developers.cloudflare.com/d1/ - Network accessline 8
| Boolean, date, or other binding type mismatch | [Workers Binding API type conversion](https://developers.cloudflare.com/d1/worker-api/index.md) and [SQL support](https://developers.cloudflare.com/d1/sql-api/sql-statements/index.md) | - Network accessline 9
| Foreign key failure during writes or migrations | [Foreign key enforcement and deferral](https://developers.cloudflare.com/d1/sql-api/foreign-keys/index.md) | - Network accessline 10
| Slow or expensive database, excessive rows read or written, or finding which databases and queries cost the most | [Find slow and expensive queries](https://developers.cloudflare.com/d1/observability/find-expensive-queries/index.md) with - Network accessline 11
| Query duration, statement, storage, or account limits | [Current limits](https://developers.cloudflare.com/d1/platform/limits/index.md) | - Network accessline 12
| Unexpected usage charges or plan assumptions | [Pricing](https://developers.cloudflare.com/d1/platform/pricing/index.md); [find the databases and queries that cost the most](https://developers.cloudflare.com/d1/observability/find-expensiv - Network accessline 13
| Stale reads after a write | [Sessions, bookmarks, and read replication](https://developers.cloudflare.com/d1/best-practices/read-replication/index.md) | - Network accessline 14
| Transient query failures | [Retry guidance](https://developers.cloudflare.com/d1/best-practices/retry-queries/index.md); check idempotency before retrying writes | - Network accessline 15
| Import/export failure or unsupported data | [Import/export behavior and limitations](https://developers.cloudflare.com/d1/best-practices/import-export-data/index.md) | - Network accessline 16
| Local and deployed databases differ | [Local development](https://developers.cloudflare.com/d1/best-practices/local-development/index.md) and [environment configuration](https://developers.cloudflare.com/d1/configuration/environments/inde
skills/cloudflare/references/d1/patterns.md
- Network accessline 5
| Task | Current documentation | | --- | --- | | Design pagination, filters, joins, and aggregations | [Query a database](https://developers.cloudflare.com/d1/best-practices/query-d1/index.md) and [supported SQL](https://developers.cloudfla - Network accessline 6
| --- | --- | | Design pagination, filters, joins, and aggregations | [Query a database](https://developers.cloudflare.com/d1/best-practices/query-d1/index.md) and [supported SQL](https://developers.cloudflare.com/d1/sql-api/sql-statements/ - Network accessline 7
| Design pagination, filters, joins, and aggregations | [Query a database](https://developers.cloudflare.com/d1/best-practices/query-d1/index.md) and [supported SQL](https://developers.cloudflare.com/d1/sql-api/sql-statements/index.md) | - Network accessline 8
| Reduce scans and inspect query plans | [Use indexes](https://developers.cloudflare.com/d1/best-practices/use-indexes/index.md) | - Network accessline 9
| Find queries in production to index or cache | [Find slow and expensive queries](https://developers.cloudflare.com/d1/observability/find-expensive-queries/index.md) | - Network accessline 10
| Batch writes or transform data | [Database API](https://developers.cloudflare.com/d1/worker-api/d1-database/index.md) and [limits](https://developers.cloudflare.com/d1/platform/limits/index.md) | - Network accessline 11
| Store and query event metadata | [Query JSON](https://developers.cloudflare.com/d1/sql-api/query-json/index.md) | - Network accessline 12
| Evaluate a cache in front of D1 | [How KV works](https://developers.cloudflare.com/kv/concepts/how-kv-works/index.md) | - Network accessline 13
| Choose shared or per-tenant databases | [D1 FAQs](https://developers.cloudflare.com/d1/reference/faq/index.md) and [limits](https://developers.cloudflare.com/d1/platform/limits/index.md) | - Network accessline 14
| Reduce read latency while preserving required consistency | [Read replication](https://developers.cloudflare.com/d1/best-practices/read-replication/index.md) | - Network accessline 15
| Plan point-in-time recovery or portable backups | [Time Travel](https://developers.cloudflare.com/d1/reference/time-travel/index.md) and [import/export](https://developers.cloudflare.com/d1/best-practices/import-export-data/index.md) |
skills/cloudflare/references/hyperdrive/README.md
- Network accessline 3
Use Hyperdrive to connect Workers to an existing PostgreSQL or MySQL database with connection pooling and optional query caching. It does not replace the origin database or replicate its data. Start with [how Hyperdrive works](https://devel - Network accessline 7
Fetch the relevant official page before implementing. Driver versions, compatibility settings, API shapes, CLI flags, cache settings, and limits belong in the docs rather than this reference. Use the [Hyperdrive documentation index](https:/ - Network accessline 20
- Choose a driver for the database engine and existing application stack; verify supported versions and Worker requirements in its guide. - Create database clients inside each handler invocation. Hyperdrive manages the underlying origin poo - Network accessline 21
- Create database clients inside each handler invocation. Hyperdrive manages the underlying origin pool; consult [connection lifecycle](https://developers.cloudflare.com/hyperdrive/concepts/connection-lifecycle/index.md) for cleanup behavio - Network accessline 22
- Choose caching by read freshness. Disabling caching still allows connection pooling; a write does not invalidate cached reads. See [query caching](https://developers.cloudflare.com/hyperdrive/concepts/query-caching/index.md). - Network accessline 27
- [D1](../d1/) for a managed SQLite alternative. - [Workers](https://developers.cloudflare.com/workers/index.md) for the runtime and bindings. - Network accessline 28
- [Workers](https://developers.cloudflare.com/workers/index.md) for the runtime and bindings.
skills/cloudflare/references/hyperdrive/api.md
- Network accessline 7
| Task | Official documentation | |------|------------------------| | PostgreSQL with node-postgres (`pg`), including binding connection string and parameterized queries | [node-postgres](https://developers.cloudflare.com/hyperdrive/example - Network accessline 8
|------|------------------------| | PostgreSQL with node-postgres (`pg`), including binding connection string and parameterized queries | [node-postgres](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/postgres-dri - Network accessline 9
| PostgreSQL with node-postgres (`pg`), including binding connection string and parameterized queries | [node-postgres](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/postgres-drivers-and-libraries/node-postgres/i - Network accessline 10
| PostgreSQL with tagged-template queries and Postgres.js driver options | [Postgres.js](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/postgres-drivers-and-libraries/postgres-js/index.md) | - Network accessline 11
| MySQL with binding connection properties and Worker-specific driver options | [mysql2](https://developers.cloudflare.com/hyperdrive/examples/connect-to-mysql/mysql-drivers-and-libraries/mysql2/index.md) | - Network accessline 12
| Check database features, prepared statements, and library compatibility | [Supported databases and features](https://developers.cloudflare.com/hyperdrive/reference/supported-databases-and-features/index.md) | - Network accessline 13
| Generate binding and runtime TypeScript types | [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 15
Keep an existing supported driver when it fits the application. Choose by database engine and library integration needs; do not infer cache behavior from a driver's prepared-statement setting. Fetch [query caching](https://developers.cloudf - Network accessline 19
| Task | Official documentation | |------|------------------------| | Use Drizzle with PostgreSQL | [PostgreSQL Drizzle guide](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/postgres-drivers-and-libraries/drizzle- - Network accessline 20
|------|------------------------| | Use Drizzle with PostgreSQL | [PostgreSQL Drizzle guide](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/postgres-drivers-and-libraries/drizzle-orm/index.md) | | Use Drizzle with - Network accessline 21
| Use Drizzle with PostgreSQL | [PostgreSQL Drizzle guide](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/postgres-drivers-and-libraries/drizzle-orm/index.md) | - Network accessline 22
| Use Drizzle with MySQL | [MySQL Drizzle guide](https://developers.cloudflare.com/hyperdrive/examples/connect-to-mysql/mysql-drivers-and-libraries/drizzle-orm/index.md) | - Network accessline 23
| Use Prisma with PostgreSQL | [Prisma guide](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/postgres-drivers-and-libraries/prisma-orm/index.md) | - Network accessline 24
| Assess another query builder, including Kysely | [Postgres.js integration notes](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/postgres-drivers-and-libraries/postgres-js/index.md) and [database compatibility](h - Network accessline 26
An ORM still uses a database driver and inherits its Worker connection constraints. Keep clients scoped to the invocation using [connection lifecycle](https://developers.cloudflare.com/hyperdrive/concepts/connection-lifecycle/index.md). Whe
skills/cloudflare/references/hyperdrive/configuration.md
- Network accessline 5
| Task | Official documentation | |------|------------------------| | Create the first configuration and bind it to a Worker | [Get started](https://developers.cloudflare.com/hyperdrive/get-started/index.md) | - Network accessline 6
|------|------------------------| | Create the first configuration and bind it to a Worker | [Get started](https://developers.cloudflare.com/hyperdrive/get-started/index.md) | | Create, inspect, update, or delete configurations; set cache o - Network accessline 7
| Create the first configuration and bind it to a Worker | [Get started](https://developers.cloudflare.com/hyperdrive/get-started/index.md) | - Network accessline 8
| Create, inspect, update, or delete configurations; set cache or pool options | [Wrangler commands](https://developers.cloudflare.com/hyperdrive/reference/wrangler-commands/index.md) | - Network accessline 9
| Generate TypeScript types from Worker configuration | [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 10
| Connect a private database using the recommended Workers VPC route | [Workers VPC integration](https://developers.cloudflare.com/hyperdrive/configuration/connect-to-private-database-vpc/index.md) | - Network accessline 11
| Maintain a private database connection using Tunnel and Access | [Tunnel integration](https://developers.cloudflare.com/hyperdrive/configuration/connect-to-private-database/index.md) | - Network accessline 12
| Configure database network access | [Firewall and networking](https://developers.cloudflare.com/hyperdrive/configuration/firewall-and-networking-configuration/index.md) | - Network accessline 13
| Configure server verification or client certificates | [SSL/TLS certificates](https://developers.cloudflare.com/hyperdrive/configuration/tls-ssl-certificates-for-hyperdrive/index.md) | - Network accessline 14
| Rotate origin database credentials | [Credential rotation](https://developers.cloudflare.com/hyperdrive/configuration/rotate-credentials/index.md) | - Network accessline 15
| Configure cache freshness or separate cached and fresh-read bindings | [Query caching](https://developers.cloudflare.com/hyperdrive/concepts/query-caching/index.md) | - Network accessline 16
| Budget origin connections across configurations | [Tune connection pooling](https://developers.cloudflare.com/hyperdrive/configuration/tune-connection-pool/index.md) | - Network accessline 17
| Choose local database access or remote Hyperdrive testing | [Local development](https://developers.cloudflare.com/hyperdrive/configuration/local-development/index.md) | - Network accessline 18
| Place compute near a regional database | [Placement Hints](https://developers.cloudflare.com/workers/configuration/placement/index.md#configure-explicit-placement-hints) | - Network accessline 22
- Identify the database engine, provider, and network path first. The [PostgreSQL](https://developers.cloudflare.com/hyperdrive/examples/connect-to-postgres/index.md) and [MySQL](https://developers.cloudflare.com/hyperdrive/examples/connect - Network accessline 31
Fetch [Workers placement](https://developers.cloudflare.com/workers/configuration/placement/index.md) before configuring a database-backed Worker. For multiple sequential queries to one regional database, prefer an explicit region hint over - Network accessline 33
- Establish the database's actual cloud provider and region from provider metadata or the user. - If location is missing, ask for the provider and region. For unknown or multiple back-end locations, use [Smart Placement](https://developers. - Network accessline 34
- If location is missing, ask for the provider and region. For unknown or multiple back-end locations, use [Smart Placement](https://developers.cloudflare.com/workers/configuration/placement/index.md#enable-smart-placement).
skills/cloudflare/references/hyperdrive/gotchas.md
- Network accessline 3
Start with the actual error and the affected configuration. Fetch [Troubleshoot and debug](https://developers.cloudflare.com/hyperdrive/observability/troubleshooting/index.md) for current error codes and diagnosis rather than guessing from - Network accessline 5
| Symptom | What to inspect and where to read | |---------|----------------------------------| | Connection refused or authentication failure | Check origin reachability and credentials using [troubleshooting](https://developers.cloudflare. - Network accessline 6
|---------|----------------------------------| | Connection refused or authentication failure | Check origin reachability and credentials using [troubleshooting](https://developers.cloudflare.com/hyperdrive/observability/troubleshooting/ind - Network accessline 7
| Connection refused or authentication failure | Check origin reachability and credentials using [troubleshooting](https://developers.cloudflare.com/hyperdrive/observability/troubleshooting/index.md) and [firewall/networking configuration]( - Network accessline 8
| Private database or TLS failure | Follow the selected [Workers VPC](https://developers.cloudflare.com/hyperdrive/configuration/connect-to-private-database-vpc/index.md) or [Tunnel/Access](https://developers.cloudflare.com/hyperdrive/confi - Network accessline 9
| Pool exhaustion or too many connections | Distinguish client connection lifetime from origin pool capacity. Read [connection lifecycle](https://developers.cloudflare.com/hyperdrive/concepts/connection-lifecycle/index.md), [pool tuning](ht - Network accessline 10
| Query timeout | Check the current [limits](https://developers.cloudflare.com/hyperdrive/platform/limits/index.md) and [metrics](https://developers.cloudflare.com/hyperdrive/observability/metrics/index.md) before changing query or transact - Network accessline 11
| Stale reads or unexpectedly uncached queries | Inspect the binding's cache configuration and query eligibility in [query caching](https://developers.cloudflare.com/hyperdrive/concepts/query-caching/index.md). Writes do not purge cached re - Network accessline 12
| Slow multi-query requests | Inspect [metrics](https://developers.cloudflare.com/hyperdrive/observability/metrics/index.md) and check whether Worker placement matches the regional database. Follow [placement setup](./configuration.md#place - Network accessline 13
| Local connection failure, ignored environment variable, or absent cache behavior | Check binding names, local connection overrides, precedence, and remote testing in [local development](https://developers.cloudflare.com/hyperdrive/configu - Network accessline 14
| Unsupported driver or SQL feature | Check [supported databases and features](https://developers.cloudflare.com/hyperdrive/reference/supported-databases-and-features/index.md) and the selected [driver guide](./api.md). | - Network accessline 18
Retrieve [limits](https://developers.cloudflare.com/hyperdrive/platform/limits/index.md) and [pricing](https://developers.cloudflare.com/hyperdrive/platform/pricing/index.md) for current plan allowances, connection and query bounds, and lim
skills/cloudflare/references/hyperdrive/patterns.md
- Network accessline 5
| Workload or decision | Guidance and documentation | |----------------------|----------------------------| | Popular content or analytics dashboards | Cache only when the product can tolerate the configured stale window. Use [query caching - Network accessline 6
|----------------------|----------------------------| | Popular content or analytics dashboards | Cache only when the product can tolerate the configured stale window. Use [query caching](https://developers.cloudflare.com/hyperdrive/concept - Network accessline 7
| Popular content or analytics dashboards | Cache only when the product can tolerate the configured stale window. Use [query caching](https://developers.cloudflare.com/hyperdrive/concepts/query-caching/index.md) for eligibility, parameters, - Network accessline 8
| Mixed cached reads and fresh reads | Route authentication, permissions, and reads after writes through a cache-disabled configuration. Writes do not invalidate cached results; see [read-after-write behavior](https://developers.cloudflare. - Network accessline 9
| Multi-tenant queries | Derive tenant scope from authenticated application context and apply it to every query. A cache is not an authorization boundary. Review [query caching](https://developers.cloudflare.com/hyperdrive/concepts/query-ca - Network accessline 10
| Globally distributed callers | Understand the distinction between fast connection setup and the remaining query round trip in [how Hyperdrive works](https://developers.cloudflare.com/hyperdrive/concepts/how-hyperdrive-works/index.md). | | - Network accessline 11
| Multiple sequential database queries | For one regional database, configure an explicit region hint using [placement setup](./configuration.md#place-compute-near-the-database). Compare deployed request duration and [Hyperdrive metrics](ht - Network accessline 12
| Transactions or connection-local state | Keep transactions short and do not assume state survives across transactions. Fetch [connection pooling](https://developers.cloudflare.com/hyperdrive/concepts/connection-pooling/index.md) and [supp - Network accessline 13
| Client lifetime and pool sizing | Create clients per handler invocation; Hyperdrive owns the origin pool. Use [connection lifecycle](https://developers.cloudflare.com/hyperdrive/concepts/connection-lifecycle/index.md) and [pool tuning](ht
skills/cloudflare/references/images/api.md
- Network accessline 3
| Operation | Documentation | |-----------|---------------| | Optimize image bytes in a Worker; select input, transform, output, and response methods | [Optimize with Workers](https://developers.cloudflare.com/images/optimization/binding/in - Network accessline 4
|-----------|---------------| | Optimize image bytes in a Worker; select input, transform, output, and response methods | [Optimize with Workers](https://developers.cloudflare.com/images/optimization/binding/index.md#methods) | | Upload, li - Network accessline 5
| Optimize image bytes in a Worker; select input, transform, output, and response methods | [Optimize with Workers](https://developers.cloudflare.com/images/optimization/binding/index.md#methods) | - Network accessline 6
| Upload, list, retrieve, update, or delete hosted images from a Worker | [Manage hosted images with Workers](https://developers.cloudflare.com/images/storage/binding/index.md) | - Network accessline 7
| Upload or manage images through HTTP | [Upload methods](https://developers.cloudflare.com/images/storage/upload-images/methods/index.md#upload-using-api) and its linked Images API reference | - Network accessline 8
| Accept uploads directly from a client | [Direct Creator Upload](https://developers.cloudflare.com/images/storage/upload-images/direct-creator-upload/index.md) | - Network accessline 9
| Construct hosted-image delivery URLs | [Serve uploaded images](https://developers.cloudflare.com/images/optimization/hosted-images/serve-uploaded-images/index.md) | - Network accessline 10
| Apply URL optimization parameters or select fit, quality, and format | [Optimization features](https://developers.cloudflare.com/images/optimization/features/index.md) | - Network accessline 11
| Draw overlays or watermarks | [Draw overlays](https://developers.cloudflare.com/images/optimization/draw-overlays/index.md) |
skills/cloudflare/references/images/configuration.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Add the optimization binding | [Binding setup](https://developers.cloudflare.com/images/optimization/binding/index.md#setup) | - Network accessline 6
|------|---------------| | Add the optimization binding | [Binding setup](https://developers.cloudflare.com/images/optimization/binding/index.md#setup) | | Configure hosted-image management in a Worker | [Hosted binding setup](https://devel - Network accessline 7
| Add the optimization binding | [Binding setup](https://developers.cloudflare.com/images/optimization/binding/index.md#setup) | - Network accessline 8
| Configure hosted-image management in a Worker | [Hosted binding setup](https://developers.cloudflare.com/images/storage/binding/index.md#setup) | - Network accessline 9
| Choose local or remote development for the optimization binding | [Local binding development](https://developers.cloudflare.com/images/optimization/binding/index.md#interact-with-your-images-binding-locally) | - Network accessline 10
| Upload through the dashboard or API | [Upload methods](https://developers.cloudflare.com/images/storage/upload-images/methods/index.md) | - Network accessline 11
| Create named presets for hosted images | [Create predefined variants](https://developers.cloudflare.com/images/optimization/hosted-images/create-variants/index.md) | - Network accessline 12
| Enable dynamic options for hosted-image URLs | [Enable flexible variants](https://developers.cloudflare.com/images/optimization/hosted-images/enable-flexible-variants/index.md) | - Network accessline 13
| Find account hash and delivery URL components | [Serve uploaded images](https://developers.cloudflare.com/images/optimization/hosted-images/serve-uploaded-images/index.md) | - Network accessline 14
| Configure private access and generate signed URLs | [Serve private images](https://developers.cloudflare.com/images/optimization/hosted-images/serve-private-images/index.md) | - Network accessline 15
| Set hosted-image cache lifetime | [Browser TTL](https://developers.cloudflare.com/images/optimization/hosted-images/browser-ttl/index.md) |
skills/cloudflare/references/images/gotchas.md
- Network accessline 5
| Symptom or question | Documentation | |---------------------|---------------| | Resizing is absent, an origin request fails, or a transformation returns an error code | [Troubleshooting](https://developers.cloudflare.com/images/reference/ - Network accessline 6
|---------------------|---------------| | Resizing is absent, an origin request fails, or a transformation returns an error code | [Troubleshooting](https://developers.cloudflare.com/images/reference/troubleshooting/index.md) | | Input size - Network accessline 7
| Resizing is absent, an origin request fails, or a transformation returns an error code | [Troubleshooting](https://developers.cloudflare.com/images/reference/troubleshooting/index.md) | - Network accessline 8
| Input size, dimensions, animation, or format compatibility | [Limits and formats](https://developers.cloudflare.com/images/get-started/limits/index.md) — choose the section for the affected interface | - Network accessline 9
| Unexpected fit, quality, format, or crop behavior | [Optimization features](https://developers.cloudflare.com/images/optimization/features/index.md) | - Network accessline 10
| Binding input, output, or response handling fails | [Binding methods](https://developers.cloudflare.com/images/optimization/binding/index.md#methods) | - Network accessline 11
| Local behavior differs from production | [Local binding development](https://developers.cloudflare.com/images/optimization/binding/index.md#interact-with-your-images-binding-locally) | - Network accessline 12
| Private delivery fails or an image is unexpectedly public | [Serve private images](https://developers.cloudflare.com/images/optimization/hosted-images/serve-private-images/index.md) and [variant public access](https://developers.cloudflar - Network accessline 13
| Remote transformations appear stale | [Caching and purging](https://developers.cloudflare.com/images/reference/troubleshooting/index.md#caching-and-purging) | - Network accessline 14
| Worker transformations repeat unnecessarily | [Binding caching guidance](https://developers.cloudflare.com/images/optimization/binding/index.md#methods) |
skills/cloudflare/references/images/patterns.md
- Network accessline 5
| Workflow | Documentation | |----------|---------------| | Let users upload without exposing account credentials | [Direct Creator Upload](https://developers.cloudflare.com/images/storage/upload-images/direct-creator-upload/index.md) | - Network accessline 6
|----------|---------------| | Let users upload without exposing account credentials | [Direct Creator Upload](https://developers.cloudflare.com/images/storage/upload-images/direct-creator-upload/index.md) | | Serve images for different lay - Network accessline 7
| Let users upload without exposing account credentials | [Direct Creator Upload](https://developers.cloudflare.com/images/storage/upload-images/direct-creator-upload/index.md) | - Network accessline 8
| Serve images for different layouts and display densities | [Make responsive images](https://developers.cloudflare.com/images/optimization/make-responsive-images/index.md) | - Network accessline 9
| Select output format for hosted images | [Hosted-image format optimization](https://developers.cloudflare.com/images/optimization/hosted-images/serve-uploaded-images/index.md#optimize-format) | - Network accessline 10
| Select output format for a Worker pipeline | [Workers optimization binding](https://developers.cloudflare.com/images/optimization/binding/index.md) | - Network accessline 11
| Optimize user uploads, add a watermark, and store the result in R2 | [Transform user-uploaded images before uploading to R2](https://developers.cloudflare.com/images/tutorials/optimize-user-uploaded-image/index.md) | - Network accessline 12
| Compose overlays and watermarks | [Draw overlays](https://developers.cloudflare.com/images/optimization/draw-overlays/index.md) | - Network accessline 13
| Cache a Worker transformation response | [Binding methods and caching guidance](https://developers.cloudflare.com/images/optimization/binding/index.md#methods) | - Network accessline 14
| Configure hosted-image browser caching | [Browser TTL](https://developers.cloudflare.com/images/optimization/hosted-images/browser-ttl/index.md) |
skills/cloudflare/references/kv/README.md
- Network accessline 3
Use KV for read-heavy configuration, preferences, and application caches that tolerate stale data. Read [how KV works](https://developers.cloudflare.com/kv/concepts/how-kv-works/index.md) before choosing it: reads are eventually consistent, - Network accessline 5
For atomic updates or coordination, consider [Durable Objects](https://developers.cloudflare.com/durable-objects/index.md); for relational queries, [D1](../d1/); for large objects, [R2](../r2/). Use the [storage comparison](https://develope - Network accessline 7
Read the current documentation for the task before implementing. Use the [KV documentation index](https://developers.cloudflare.com/kv/llms.txt) to discover additional guides; these files preserve task routes rather than copies of APIs, com - Network accessline 11
- [Get started](https://developers.cloudflare.com/kv/get-started/index.md): create a namespace, bind it, and read and write data.
skills/cloudflare/references/kv/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Read one or several keys; choose text, JSON, binary, or stream results | [Read key-value pairs](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md) | - Network accessline 6
|------|---------------| | Read one or several keys; choose text, JSON, binary, or stream results | [Read key-value pairs](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md) | | Read metadata with values; tune read cach - Network accessline 7
| Read one or several keys; choose text, JSON, binary, or stream results | [Read key-value pairs](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md) | - Network accessline 8
| Read metadata with values; tune read caching or coalesce related keys | [Read guidance](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md) | - Network accessline 9
| Write values and metadata; set absolute expiration or a relative lifetime | [Write key-value pairs](https://developers.cloudflare.com/kv/api/write-key-value-pairs/index.md) | - Network accessline 10
| Delete a key | [Delete key-value pairs](https://developers.cloudflare.com/kv/api/delete-key-value-pairs/index.md) | - Network accessline 11
| Enumerate keys, filter by prefix, and paginate | [List keys](https://developers.cloudflare.com/kv/api/list-keys/index.md) | - Network accessline 12
| Access namespaces or perform bulk operations outside a Worker | [KV REST API](https://developers.cloudflare.com/api/resources/kv/index.md) and [Wrangler KV commands](https://developers.cloudflare.com/kv/reference/kv-commands/index.md) |
skills/cloudflare/references/kv/configuration.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Create a namespace and connect a Worker | [Get started](https://developers.cloudflare.com/kv/get-started/index.md) and [KV bindings](https://developers.cloudflare.com/kv/concepts/kv-bindin - Network accessline 6
|------|---------------| | Create a namespace and connect a Worker | [Get started](https://developers.cloudflare.com/kv/get-started/index.md) and [KV bindings](https://developers.cloudflare.com/kv/concepts/kv-bindings/index.md) | | Configur - Network accessline 7
| Create a namespace and connect a Worker | [Get started](https://developers.cloudflare.com/kv/get-started/index.md) and [KV bindings](https://developers.cloudflare.com/kv/concepts/kv-bindings/index.md) | - Network accessline 8
| Configure staging and production namespaces | [KV environments](https://developers.cloudflare.com/kv/reference/environments/index.md) | - Network accessline 9
| Generate Worker environment and binding types | [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 10
| Develop against local storage or a remote binding | [KV local development](https://developers.cloudflare.com/kv/concepts/kv-bindings/index.md) and [remote bindings](https://developers.cloudflare.com/workers/local-development/index.md#remo - Network accessline 11
| Manage namespaces, individual keys, and bulk files from the CLI | [Wrangler KV commands](https://developers.cloudflare.com/kv/reference/kv-commands/index.md) | - Network accessline 12
| Manage KV from another service or SDK | [KV REST API](https://developers.cloudflare.com/api/resources/kv/index.md) |
skills/cloudflare/references/kv/gotchas.md
- Network accessline 5
| Symptom or decision | Documentation and guidance | |---------------------|----------------------------| | Stale value after a write or delete | [How KV works](https://developers.cloudflare.com/kv/concepts/how-kv-works/index.md): allow for - Network accessline 6
|---------------------|----------------------------| | Stale value after a write or delete | [How KV works](https://developers.cloudflare.com/kv/concepts/how-kv-works/index.md): allow for eventual consistency; neither local read-after-write - Network accessline 7
| Stale value after a write or delete | [How KV works](https://developers.cloudflare.com/kv/concepts/how-kv-works/index.md): allow for eventual consistency; neither local read-after-write visibility nor a fixed global propagation deadline i - Network accessline 8
| Newly created key still appears absent | [Read caching](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md): missing-key lookups are cached too. Treat check-then-create as a race, not an atomic existence test. | - Network accessline 9
| Concurrent updates overwrite each other or writes are throttled | [Concurrent writes](https://developers.cloudflare.com/kv/api/write-key-value-pairs/index.md#concurrent-writes-to-the-same-key): retries do not make read-modify-write atomic - Network accessline 10
| Missing-value errors | [Read results](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md): distinguish `null` from valid falsy values and distinguish absence from an operation failure. | - Network accessline 11
| Slow reads, large results, or excessive operations | [Read guidance](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md): select result types and bulk reads to match the workload; increasing read cache lifetime trades - Network accessline 12
| Unexpected empty listing page | [Pagination](https://developers.cloudflare.com/kv/api/list-keys/index.md): use the completion flag and cursor, not page length, to determine whether to continue. | - Network accessline 13
| Data present in one environment but missing in another | [KV bindings](https://developers.cloudflare.com/kv/concepts/kv-bindings/index.md) and [environments](https://developers.cloudflare.com/kv/reference/environments/index.md): check loc - Network accessline 14
| Size, operation, or write-rate failures | [Limits](https://developers.cloudflare.com/kv/platform/limits/index.md): retrieve current constraints before sizing values, batches, or retry policies. | - Network accessline 15
| Estimate costs or explain billing | [Pricing](https://developers.cloudflare.com/kv/platform/pricing/index.md): check allowances, billable operations, storage, and bulk accounting for the actual workload. |
skills/cloudflare/references/kv/patterns.md
- Network accessline 3
Read the guide for the pattern before implementing it, and confirm that [KV's consistency model](https://developers.cloudflare.com/kv/concepts/how-kv-works/index.md) fits the application. - Network accessline 5
| Task | Documentation and design decision | |------|-----------------------------------| | Cache application data or API results | [Cache data with KV](https://developers.cloudflare.com/kv/examples/cache-data-with-workers-kv/index.md): dec - Network accessline 6
|------|-----------------------------------| | Cache application data or API results | [Cache data with KV](https://developers.cloudflare.com/kv/examples/cache-data-with-workers-kv/index.md): decide acceptable staleness, expiration, and beh - Network accessline 7
| Cache application data or API results | [Cache data with KV](https://developers.cloudflare.com/kv/examples/cache-data-with-workers-kv/index.md): decide acceptable staleness, expiration, and behavior when the origin fails. | - Network accessline 8
| Cache eligible HTTP responses | [Workers Cache](https://developers.cloudflare.com/workers/cache/index.md): choose the HTTP caching mechanism based on response semantics. | - Network accessline 9
| Store configuration or feature flags | [Distributed configuration](https://developers.cloudflare.com/kv/examples/distributed-configuration-with-workers-kv/index.md): choose defaults and rollout behavior that tolerate delayed updates. | - Network accessline 10
| Coalesce related keys | [Read guidance](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md): fewer reads can improve cache reuse, but combined values couple updates and can introduce write races. | - Network accessline 11
| Organize and enumerate keys by prefix | [List keys](https://developers.cloudflare.com/kv/api/list-keys/index.md): use a consistent naming scheme and paginate every listing. | - Network accessline 12
| Attach schema versions or other metadata | [Write metadata](https://developers.cloudflare.com/kv/api/write-key-value-pairs/index.md) and [read metadata](https://developers.cloudflare.com/kv/api/read-key-value-pairs/index.md): define compa - Network accessline 18
- For a memory → KV → origin cache, define each layer's lifetime and refill behavior. Process memory is not shared durable state; KV adds its own stale-value and negative-lookup caching. - For sessions, decide how quickly creation, updates, - Network accessline 19
- For sessions, decide how quickly creation, updates, and revocation must become visible. KV alone cannot provide immediate global revocation or guaranteed immediate reads after session creation. Use a store with suitable consistency when t - Network accessline 20
- For counters, rate limits, or other atomic read-modify-write decisions, use coordination such as [Durable Objects](https://developers.cloudflare.com/durable-objects/index.md). Serializing writes through an object does not make separate KV
skills/cloudflare/references/miniflare/README.md
- Network accessline 7
| Need | Start here | |------|------------| | Unit tests that execute in the Workers runtime | [Workers Vitest setup](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index.md) | - Network accessline 8
|------|------------| | Unit tests that execute in the Workers runtime | [Workers Vitest setup](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index.md) | | Integration tests against built Workers - Network accessline 9
| Unit tests that execute in the Workers runtime | [Workers Vitest setup](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index.md) | - Network accessline 10
| Integration tests against built Workers | [Integration test harness](https://developers.cloudflare.com/workers/testing/test-harness/index.md) | - Network accessline 11
| Low-level simulator control for a custom harness | [Miniflare testing guide](https://developers.cloudflare.com/workers/testing/miniflare/writing-tests/index.md) | - Network accessline 12
| Binding access from a Node.js process | [Wrangler getPlatformProxy](https://developers.cloudflare.com/workers/wrangler/api/index.md#getplatformproxy) | - Network accessline 18
- [Get started](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md) — installation, scripts, lifecycle, and event dispatch.
skills/cloudflare/references/miniflare/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Create, reload, or dispose an instance; wait for its HTTP server | [Get started](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md) | - Network accessline 6
|------|---------------| | Create, reload, or dispose an instance; wait for its HTTP server | [Get started](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md) | | Dispatch requests and supply request metadata - Network accessline 7
| Create, reload, or dispose an instance; wait for its HTTP server | [Get started](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md) | | Dispatch requests and supply request metadata | [Fetch events](https:// - Network accessline 8
| Dispatch requests and supply request metadata | [Fetch events](https://developers.cloudflare.com/workers/testing/miniflare/core/fetch/index.md) | - Network accessline 9
| Trigger queue and scheduled handlers programmatically | [Dispatching events](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md#dispatching-events) | - Network accessline 10
| Configure queue producers and consumers | [Queues](https://developers.cloudflare.com/workers/testing/miniflare/core/queues/index.md) | - Network accessline 11
| Trigger scheduled events over HTTP or the API | [Scheduled events](https://developers.cloudflare.com/workers/testing/miniflare/core/scheduled/index.md) | - Network accessline 12
| Access bindings from tests | [Interacting with bindings](https://developers.cloudflare.com/workers/testing/miniflare/writing-tests/index.md#interacting-with-bindings) | - Network accessline 13
| Access local storage | [KV](https://developers.cloudflare.com/workers/testing/miniflare/storage/kv/index.md), [R2](https://developers.cloudflare.com/workers/testing/miniflare/storage/r2/index.md), [D1](https://developers.cloudflare.com/wo - Network accessline 14
| Handle a WebSocket upgrade in a test | [WebSockets](https://developers.cloudflare.com/workers/testing/miniflare/core/web-sockets/index.md) |
skills/cloudflare/references/miniflare/configuration.md
- Network accessline 3
Direct Miniflare does not read Wrangler configuration. Configure its bindings explicitly and build TypeScript or bundled Workers before starting tests; see [writing tests](https://developers.cloudflare.com/workers/testing/miniflare/writing- - Network accessline 5
Match the Worker's intended compatibility date and flags when testing its behavior. Consult [compatibility dates](https://developers.cloudflare.com/workers/testing/miniflare/core/compatibility/index.md) rather than substituting a fixed date - Network accessline 7
| Configure | Documentation | |-----------|---------------| | Script source, HTTP server, request metadata, or reloading | [Get started](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md) | - Network accessline 8
|-----------|---------------| | Script source, HTTP server, request metadata, or reloading | [Get started](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md) | | Module format and resolution rules | [Modules]( - Network accessline 9
| Script source, HTTP server, request metadata, or reloading | [Get started](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md) | - Network accessline 10
| Module format and resolution rules | [Modules](https://developers.cloudflare.com/workers/testing/miniflare/core/modules/index.md) | - Network accessline 11
| Values and file-backed bindings | [Variables and secrets](https://developers.cloudflare.com/workers/testing/miniflare/core/variables-secrets/index.md) | - Network accessline 12
| Service bindings, shared storage, and several Workers | [Multiple Workers](https://developers.cloudflare.com/workers/testing/miniflare/core/multiple-workers/index.md) | - Network accessline 13
| Storage bindings and documented persistence options | [KV](https://developers.cloudflare.com/workers/testing/miniflare/storage/kv/index.md), [R2](https://developers.cloudflare.com/workers/testing/miniflare/storage/r2/index.md), [D1](https - Network accessline 14
| Queue producers and consumers | [Queues](https://developers.cloudflare.com/workers/testing/miniflare/core/queues/index.md) | - Network accessline 16
If the task is to run tests from the project's build and Wrangler configuration, consider the [integration test harness](https://developers.cloudflare.com/workers/testing/test-harness/index.md) or [Workers Vitest setup](https://developers.c
skills/cloudflare/references/miniflare/gotchas.md
- Network accessline 3
| Symptom or task | Check | |-----------------|-------| | TypeScript, bundled code, or imports fail to load | [Custom builds](https://developers.cloudflare.com/workers/testing/miniflare/writing-tests/index.md#custom-builds) and [module rule - Network accessline 4
|-----------------|-------| | TypeScript, bundled code, or imports fail to load | [Custom builds](https://developers.cloudflare.com/workers/testing/miniflare/writing-tests/index.md#custom-builds) and [module rules](https://developers.cloudf - Network accessline 5
| TypeScript, bundled code, or imports fail to load | [Custom builds](https://developers.cloudflare.com/workers/testing/miniflare/writing-tests/index.md#custom-builds) and [module rules](https://developers.cloudflare.com/workers/testing/min - Network accessline 6
| Bindings from Wrangler configuration are missing | [Interacting with bindings](https://developers.cloudflare.com/workers/testing/miniflare/writing-tests/index.md#interacting-with-bindings) — direct Miniflare needs explicit configuration | - Network accessline 7
| Tests disagree with Worker runtime behavior | [Test runtime differences](https://developers.cloudflare.com/workers/testing/miniflare/writing-tests/index.md) and [compatibility dates](https://developers.cloudflare.com/workers/testing/minif - Network accessline 8
| Instances keep running, ports conflict, or request metadata is unexpected | [Instance lifecycle and HTTP server](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md) — dispatching a request without HTTP does n - Network accessline 9
| Storage disappears or leaks across tests | Check the relevant [storage configuration](./configuration.md) and the chosen test tool's persistence settings | | Breakpoints are needed with direct Miniflare | [Attaching a debugger](https://de - Network accessline 10
| Breakpoints are needed with direct Miniflare | [Attaching a debugger](https://developers.cloudflare.com/workers/testing/miniflare/developing/debugger/index.md) | - Network accessline 11
| Upgrade a Miniflare 2 application | [Migrate from version 2](https://developers.cloudflare.com/workers/testing/miniflare/migrations/from-v2/index.md) | - Network accessline 12
| Upgrade an existing Workers Vitest package | [Migrate to Vitest plugin](https://developers.cloudflare.com/workers/testing/vitest-integration/migration-guides/migrate-to-vitest-plugin/index.md) | - Network accessline 13
| Replace unstable_dev tests | [Migration guide](https://developers.cloudflare.com/workers/testing/vitest-integration/migration-guides/migrate-from-unstable-dev/index.md) and [integration test harness](https://developers.cloudflare.com/work
skills/cloudflare/references/miniflare/patterns.md
- Network accessline 3
Choose the test runtime before adapting an example. With direct Miniflare, the Worker runs in workerd while the test runner runs in Node.js; importing Worker functions into Node.js can change runtime-dependent behavior. See [writing tests]( - Network accessline 5
| Task | Documentation | |------|---------------| | Write unit tests in the Workers runtime | [Workers Vitest setup](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index.md) | - Network accessline 6
|------|---------------| | Write unit tests in the Workers runtime | [Workers Vitest setup](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index.md) | | Use event, Durable Object, or other runtime - Network accessline 7
| Write unit tests in the Workers runtime | [Workers Vitest setup](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index.md) | - Network accessline 8
| Use event, Durable Object, or other runtime test helpers | [Vitest test APIs](https://developers.cloudflare.com/workers/testing/vitest-integration/test-apis/index.md) | - Network accessline 9
| Test built Workers from an external runner | [Integration test harness](https://developers.cloudflare.com/workers/testing/test-harness/index.md) | - Network accessline 10
| Build a custom runner with direct simulator control | [Miniflare writing tests](https://developers.cloudflare.com/workers/testing/miniflare/writing-tests/index.md) | | Access emulated bindings from Node.js | [getPlatformProxy](https://dev - Network accessline 11
| Access emulated bindings from Node.js | [getPlatformProxy](https://developers.cloudflare.com/workers/wrangler/api/index.md#getplatformproxy) | | Mock outbound requests in Workers Vitest tests | [Mock outbound requests](https://developers. - Network accessline 12
| Mock outbound requests in Workers Vitest tests | [Mock outbound requests](https://developers.cloudflare.com/workers/testing/vitest-integration/mock-outbound-requests/index.md) | - Network accessline 13
| Understand Vitest runtime isolation and concurrency | [Isolation and concurrency](https://developers.cloudflare.com/workers/testing/vitest-integration/isolation-and-concurrency/index.md) | - Network accessline 14
| Simulate inter-Worker calls and substitute services | [Multiple Workers](https://developers.cloudflare.com/workers/testing/miniflare/core/multiple-workers/index.md) | - Network accessline 19
For direct Miniflare, clean up instances after tests using the documented [lifecycle](https://developers.cloudflare.com/workers/testing/miniflare/get-started/index.md#watching-reloading-and-disposing). Choose persistence deliberately so tes
skills/cloudflare/references/observability/README.md
- Network accessline 7
| Need | Start here | | --- | --- | | Store, search, and investigate historical Worker logs | [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) | - Network accessline 8
| --- | --- | | Store, search, and investigate historical Worker logs | [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) | | Watch a deployment or reproduce an issue live | [Real-time logs a - Network accessline 9
| Store, search, and investigate historical Worker logs | [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) | - Network accessline 10
| Watch a deployment or reproduce an issue live | [Real-time logs and Wrangler tail](https://developers.cloudflare.com/workers/observability/logs/real-time-logs/index.md) | - Network accessline 11
| Understand request flows and dependency latency | [Workers Traces](https://developers.cloudflare.com/workers/observability/traces/index.md) | - Network accessline 12
| Monitor built-in request, error, and CPU metrics | [Metrics and analytics](https://developers.cloudflare.com/workers/observability/metrics-and-analytics/index.md) | - Network accessline 13
| Record custom events and tenant-level usage for SQL analysis | [Analytics Engine](https://developers.cloudflare.com/analytics/analytics-engine/get-started/index.md) | - Network accessline 14
| Export logs and traces to an observability provider | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) | - Network accessline 15
| Apply custom filtering, transformation, or delivery logic | [Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md) | - Network accessline 16
| Deliver Workers Trace Events to a supported log storage destination | [Workers Logpush](https://developers.cloudflare.com/workers/observability/logs/logpush/index.md) | - Network accessline 27
For broader product tasks, see [Analytics Engine docs](https://developers.cloudflare.com/analytics/analytics-engine/index.md), [GraphQL Analytics API docs](https://developers.cloudflare.com/analytics/graphql-api/index.md), and [Tail Workers
skills/cloudflare/references/observability/api.md
- Network accessline 5
| Task | Maintained documentation | | --- | --- | | Emit console messages and check supported methods | [Console API](https://developers.cloudflare.com/workers/runtime-apis/console/index.md) | - Network accessline 6
| --- | --- | | Emit console messages and check supported methods | [Console API](https://developers.cloudflare.com/workers/runtime-apis/console/index.md) | | Filter, group, and aggregate stored Workers Logs | [Query Builder](https://develo - Network accessline 7
| Emit console messages and check supported methods | [Console API](https://developers.cloudflare.com/workers/runtime-apis/console/index.md) | - Network accessline 8
| Filter, group, and aggregate stored Workers Logs | [Query Builder](https://developers.cloudflare.com/workers/observability/query-builder/index.md) | - Network accessline 9
| Query built-in Workers metrics with GraphQL | [Querying Workers metrics](https://developers.cloudflare.com/analytics/graphql-api/tutorials/querying-workers-metrics/index.md) | - Network accessline 10
| Define Analytics Engine fields and call `writeDataPoint()` | [Write data points](https://developers.cloudflare.com/analytics/analytics-engine/get-started/index.md) | - Network accessline 11
| Authenticate and query Analytics Engine datasets | [SQL API](https://developers.cloudflare.com/analytics/analytics-engine/sql-api/index.md) | - Network accessline 12
| Calculate counts, sums, and averages on sampled events | [Analytics Engine sampling](https://developers.cloudflare.com/analytics/analytics-engine/sampling/index.md) | - Network accessline 13
| Implement a Tail consumer and inspect event properties | [Tail handler API](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md) | - Network accessline 14
| Create and manage Logpush jobs | [Logpush API configuration](https://developers.cloudflare.com/logs/logpush/logpush-job/api-configuration/index.md) | - Network accessline 15
| Select exported Workers event fields | [Workers Trace Events dataset](https://developers.cloudflare.com/logs/logpush/logpush-job/datasets/account/workers_trace_events/index.md) | - Network accessline 16
| Export OTLP logs and traces | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) |
skills/cloudflare/references/observability/configuration.md
- Network accessline 5
| Task | Maintained documentation | | --- | --- | | Enable persisted logs, structured JSON logging, and sampling | [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) | - Network accessline 6
| --- | --- | | Enable persisted logs, structured JSON logging, and sampling | [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) | | Enable traces and set their sampling independently of logs - Network accessline 7
| Enable persisted logs, structured JSON logging, and sampling | [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) | - Network accessline 8
| Enable traces and set their sampling independently of logs | [Workers Traces](https://developers.cloudflare.com/workers/observability/traces/index.md) | - Network accessline 9
| Configure a named deployment environment | [Wrangler environments](https://developers.cloudflare.com/workers/wrangler/environments/index.md) and the environment example in [Workers Logs](https://developers.cloudflare.com/workers/observabi - Network accessline 10
| Bind an Analytics Engine dataset and write its first data point | [Analytics Engine get started](https://developers.cloudflare.com/analytics/analytics-engine/get-started/index.md) | - Network accessline 11
| Connect a producer to a Tail Worker | [Configure Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md) | - Network accessline 12
| Create a Logpush job, configure access, and enable Worker log delivery | [Workers Logpush](https://developers.cloudflare.com/workers/observability/logs/logpush/index.md) | - Network accessline 13
| Configure OTLP destinations, authentication, and local persistence | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) for destinations and authentication, and [Workers OpenTelemetry exp
skills/cloudflare/references/observability/gotchas.md
- Network accessline 5
| Symptom | Check and authoritative guide | | --- | --- | | Logs missing from the dashboard | Confirm the deployed Worker/environment, collection and persistence settings, recent traffic, query time range, and sampling. Follow [Workers Logs - Network accessline 6
| --- | --- | | Logs missing from the dashboard | Confirm the deployed Worker/environment, collection and persistence settings, recent traffic, query time range, and sampling. Follow [Workers Logs](https://developers.cloudflare.com/workers/ - Network accessline 7
| Logs missing from the dashboard | Confirm the deployed Worker/environment, collection and persistence settings, recent traffic, query time range, and sampling. Follow [Workers Logs](https://developers.cloudflare.com/workers/observability/ - Network accessline 8
| Live logs differ from stored logs | Confirm which workflow is being inspected; live streams can sample under load. See [real-time logs](https://developers.cloudflare.com/workers/observability/logs/real-time-logs/index.md). | - Network accessline 9
| Traces missing or incomplete | Check trace enablement and sampling separately from logs, then consult [tracing setup](https://developers.cloudflare.com/workers/observability/traces/index.md) and [known limitations](https://developers.clou - Network accessline 10
| Export destination has no data | Check signal type, destination name, credentials, endpoint compatibility, and provider status using [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) and - Network accessline 11
| Tail consumer receives no events | Check the producer's consumer configuration and deployment using [Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md). | - Network accessline 12
| Analytics Engine totals or averages look wrong | Account for sample weights and consistent field meanings using [sampling guidance](https://developers.cloudflare.com/analytics/analytics-engine/sampling/index.md). Check [limits](https://de - Network accessline 13
| Very short operations appear to take no time | Read [performance and timers](https://developers.cloudflare.com/workers/runtime-apis/performance/index.md) and [trace limitations](https://developers.cloudflare.com/workers/observability/trac - Network accessline 19
- [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md): log size, retention, sampling, and pricing. - Network accessline 20
- [Workers Traces](https://developers.cloudflare.com/workers/observability/traces/index.md) and [known limitations](https://developers.cloudflare.com/workers/observability/traces/known-limitations/index.md): availability, propagation, and i - Network accessline 21
- [Workers pricing](https://developers.cloudflare.com/workers/platform/pricing/index.md): current observability and Tail Worker billing terms. - Network accessline 22
- [Analytics Engine limits](https://developers.cloudflare.com/analytics/analytics-engine/limits/index.md) and [pricing](https://developers.cloudflare.com/analytics/analytics-engine/pricing/index.md): field/write limits, retention, query cos - Network accessline 23
- [Workers Logpush](https://developers.cloudflare.com/workers/observability/logs/logpush/index.md): Workers-specific eligibility, permissions, and pricing.
skills/cloudflare/references/observability/patterns.md
- Network accessline 5
| Task | Design decision and documentation | | --- | --- | | Usage-based billing | Define the billable event, tenant identity, time window, and accuracy requirements. Start with the maintained [Analytics Engine billing recipe](https://devel - Network accessline 6
| --- | --- | | Usage-based billing | Define the billable event, tenant identity, time window, and accuracy requirements. Start with the maintained [Analytics Engine billing recipe](https://developers.cloudflare.com/analytics/analytics-engi - Network accessline 7
| Usage-based billing | Define the billable event, tenant identity, time window, and accuracy requirements. Start with the maintained [Analytics Engine billing recipe](https://developers.cloudflare.com/analytics/analytics-engine/recipes/usa - Network accessline 8
| Performance monitoring | Use [built-in metrics](https://developers.cloudflare.com/workers/observability/metrics-and-analytics/index.md) for aggregate health and [traces](https://developers.cloudflare.com/workers/observability/traces/index - Network accessline 9
| Error tracking | Emit structured context without secrets, investigate with [Query Builder](https://developers.cloudflare.com/workers/observability/query-builder/index.md), and choose [Tail Workers](https://developers.cloudflare.com/worker - Network accessline 10
| Multi-tenant tracking | Choose the tenant dimension and consistent field positions using [Analytics Engine get started](https://developers.cloudflare.com/analytics/analytics-engine/get-started/index.md) and [sampling guidance](https://dev - Network accessline 11
| Tail Worker filtering | Use the current [Tail handler schema](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md) for outcomes, exceptions, and timing fields, with [Tail configuration](https://developers.cloudfl - Network accessline 12
| OpenTelemetry export | Prefer the maintained [OTLP export integration](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) for supported destinations. For Honeycomb, follow [Export to Honeycomb](https://develope - Network accessline 14
Use [Workers Logpush](https://developers.cloudflare.com/workers/observability/logs/logpush/index.md) when the requirement is Workers Trace Event delivery to a supported log destination. Use a Tail Worker when custom processing is required b
skills/cloudflare/references/pages-functions/README.md
- Network accessline 3
Use this reference for server-side behavior in an existing Pages project. For new applications, follow the Workers recommendation in the [Pages framework guidance](https://developers.cloudflare.com/pages/framework-guides/index.md). - Network accessline 5
| Task | Documentation | | --- | --- | | Identify filesystem routes and invocation boundaries | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 6
| --- | --- | | Identify filesystem routes and invocation boundaries | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | | Implement request handlers | [API reference](https://developers.cloudflare.com/pages/fu - Network accessline 7
| Identify filesystem routes and invocation boundaries | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 8
| Implement request handlers | [API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | - Network accessline 9
| Understand generated Worker output | [Advanced mode](https://developers.cloudflare.com/pages/functions/advanced-mode/index.md) |
skills/cloudflare/references/pages-functions/api.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Choose method handlers and access EventContext | [API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | - Network accessline 6
| --- | --- | | Choose method handlers and access EventContext | [API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | | Read parameters and resolve dynamic routes | [Routing](https://developers.cloudfl - Network accessline 7
| Choose method handlers and access EventContext | [API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | - Network accessline 8
| Read parameters and resolve dynamic routes | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 9
| Compose middleware and continue a request | [Middleware](https://developers.cloudflare.com/pages/functions/middleware/index.md) | | Use a supported resource binding | [Bindings](https://developers.cloudflare.com/pages/functions/bindings/i - Network accessline 10
| Use a supported resource binding | [Bindings](https://developers.cloudflare.com/pages/functions/bindings/index.md) | - Network accessline 11
| Handle requests through generated Worker output | [Advanced mode](https://developers.cloudflare.com/pages/functions/advanced-mode/index.md) |
skills/cloudflare/references/pages-functions/configuration.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Manage Wrangler settings and environment overrides | [Functions configuration](https://developers.cloudflare.com/pages/functions/wrangler-configuration/index.md) | - Network accessline 6
| --- | --- | | Manage Wrangler settings and environment overrides | [Functions configuration](https://developers.cloudflare.com/pages/functions/wrangler-configuration/index.md) | | Configure supported bindings, variables, and secrets | [Bi - Network accessline 7
| Manage Wrangler settings and environment overrides | [Functions configuration](https://developers.cloudflare.com/pages/functions/wrangler-configuration/index.md) | - Network accessline 8
| Configure supported bindings, variables, and secrets | [Bindings](https://developers.cloudflare.com/pages/functions/bindings/index.md) | - Network accessline 9
| Generate and configure runtime and environment types | [TypeScript](https://developers.cloudflare.com/pages/functions/typescript/index.md) | - Network accessline 10
| Run assets and Functions locally | [Local development](https://developers.cloudflare.com/pages/functions/local-development/index.md) | - Network accessline 11
| Set Function invocation routes | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 12
| Evaluate and enable placement | [Smart Placement](https://developers.cloudflare.com/pages/functions/smart-placement/index.md) |
skills/cloudflare/references/pages-functions/gotchas.md
- Network accessline 5
| Task | Documentation | | --- | --- | | A Function does not run or receives unexpected parameters | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 6
| --- | --- | | A Function does not run or receives unexpected parameters | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | | Middleware is skipped or static fallback fails | [Advanced mode](https://developer - Network accessline 7
| A Function does not run or receives unexpected parameters | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 8
| Middleware is skipped or static fallback fails | [Advanced mode](https://developers.cloudflare.com/pages/functions/advanced-mode/index.md) | - Network accessline 9
| Middleware order or scope is incorrect | [Middleware](https://developers.cloudflare.com/pages/functions/middleware/index.md) | - Network accessline 10
| Bindings or secrets differ between environments | [Bindings](https://developers.cloudflare.com/pages/functions/bindings/index.md) | - Network accessline 11
| Runtime or environment types do not match | [TypeScript](https://developers.cloudflare.com/pages/functions/typescript/index.md) | - Network accessline 12
| A local request behaves differently | [Local development](https://developers.cloudflare.com/pages/functions/local-development/index.md) | - Network accessline 13
| Inspect exceptions and deployment logs | [Debugging and logging](https://developers.cloudflare.com/pages/functions/debugging-and-logging/index.md) | - Network accessline 14
| Check runtime quotas | [Workers limits](https://developers.cloudflare.com/workers/platform/limits/index.md) | - Network accessline 15
| Check request costs | [Functions pricing](https://developers.cloudflare.com/pages/functions/pricing/index.md) |
skills/cloudflare/references/pages-functions/patterns.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Share authentication, logging, and error handling | [Middleware](https://developers.cloudflare.com/pages/functions/middleware/index.md) | - Network accessline 6
| --- | --- | | Share authentication, logging, and error handling | [Middleware](https://developers.cloudflare.com/pages/functions/middleware/index.md) | | Choose request handlers and asynchronous completion behavior | [API reference](https - Network accessline 7
| Share authentication, logging, and error handling | [Middleware](https://developers.cloudflare.com/pages/functions/middleware/index.md) | | Choose request handlers and asynchronous completion behavior | [API reference](https://developers. - Network accessline 8
| Choose request handlers and asynchronous completion behavior | [API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | | Keep asset requests outside Function invocation where appropriate | [Routing](htt - Network accessline 9
| Keep asset requests outside Function invocation where appropriate | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 10
| Use custom or framework-generated routing | [Advanced mode](https://developers.cloudflare.com/pages/functions/advanced-mode/index.md) | - Network accessline 11
| Integrate storage or another service | [Bindings](https://developers.cloudflare.com/pages/functions/bindings/index.md) | - Network accessline 12
| Exercise the assembled application locally | [Local development](https://developers.cloudflare.com/pages/functions/local-development/index.md) |
skills/cloudflare/references/pages/README.md
- Network accessline 3
Use this reference when maintaining an existing Pages project. For new applications, start with Workers as recommended in the [Pages framework guidance](https://developers.cloudflare.com/pages/framework-guides/index.md). Fetch current docum - Network accessline 5
| Task | Documentation | | --- | --- | | Configure the existing build | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | - Network accessline 6
| --- | --- | | Configure the existing build | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | | Manage automatic deployments from a repository | [Git integration](https://develope - Network accessline 7
| Configure the existing build | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | - Network accessline 8
| Manage automatic deployments from a repository | [Git integration](https://developers.cloudflare.com/pages/configuration/git-integration/index.md) | | Deploy prebuilt output | [Direct Upload](https://developers.cloudflare.com/pages/get-st - Network accessline 9
| Deploy prebuilt output | [Direct Upload](https://developers.cloudflare.com/pages/get-started/direct-upload/index.md) | | Implement server-side requests | [Functions API reference](https://developers.cloudflare.com/pages/functions/api-refe - Network accessline 10
| Implement server-side requests | [Functions API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | - Network accessline 11
| Plan a move to Workers | [Migrate from Pages to Workers](https://developers.cloudflare.com/workers/static-assets/migration-guides/migrate-from-pages/index.md) |
skills/cloudflare/references/pages/api.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Implement handlers and use context or asset fallback | [Functions API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | - Network accessline 6
| --- | --- | | Implement handlers and use context or asset fallback | [Functions API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | | Resolve dynamic paths and invocation routes | [Routing](https://d - Network accessline 7
| Implement handlers and use context or asset fallback | [Functions API reference](https://developers.cloudflare.com/pages/functions/api-reference/index.md) | - Network accessline 8
| Resolve dynamic paths and invocation routes | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 9
| Apply shared request logic | [Middleware](https://developers.cloudflare.com/pages/functions/middleware/index.md) | - Network accessline 10
| Understand framework-generated Worker output | [Advanced mode](https://developers.cloudflare.com/pages/functions/advanced-mode/index.md) | - Network accessline 11
| Find the guide for the existing framework | [Framework guides](https://developers.cloudflare.com/pages/framework-guides/index.md) |
skills/cloudflare/references/pages/configuration.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Set build commands, root/output directories, and build variables | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | - Network accessline 6
| --- | --- | | Set build commands, root/output directories, and build variables | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | | Manage Wrangler configuration, environments, an - Network accessline 7
| Set build commands, root/output directories, and build variables | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | - Network accessline 8
| Manage Wrangler configuration, environments, and dashboard migration | [Functions configuration](https://developers.cloudflare.com/pages/functions/wrangler-configuration/index.md) | - Network accessline 9
| Configure resource bindings, variables, and secrets | [Bindings](https://developers.cloudflare.com/pages/functions/bindings/index.md) | - Network accessline 10
| Set static response headers | [Headers](https://developers.cloudflare.com/pages/configuration/headers/index.md) | | Configure static redirects and rewrites | [Redirects](https://developers.cloudflare.com/pages/configuration/redirects/inde - Network accessline 11
| Configure static redirects and rewrites | [Redirects](https://developers.cloudflare.com/pages/configuration/redirects/index.md) | | Choose which requests invoke Functions | [Routing](https://developers.cloudflare.com/pages/functions/routi - Network accessline 12
| Choose which requests invoke Functions | [Routing](https://developers.cloudflare.com/pages/functions/routing/index.md) | - Network accessline 13
| Configure monorepo project boundaries | [Monorepos](https://developers.cloudflare.com/pages/configuration/monorepos/index.md) | - Network accessline 14
| Run the project locally | [Local development](https://developers.cloudflare.com/pages/functions/local-development/index.md) |
skills/cloudflare/references/pages/gotchas.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Build output is missing or incorrect | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | - Network accessline 6
| --- | --- | | Build output is missing or incorrect | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | | A static URL redirects or returns an unexpected 404 | [Serving Pages](https - Network accessline 7
| Build output is missing or incorrect | [Build configuration](https://developers.cloudflare.com/pages/configuration/build-configuration/index.md) | - Network accessline 8
| A static URL redirects or returns an unexpected 404 | [Serving Pages](https://developers.cloudflare.com/pages/configuration/serving-pages/index.md) | - Network accessline 9
| Static response headers are not applied | [Headers](https://developers.cloudflare.com/pages/configuration/headers/index.md) | - Network accessline 10
| A redirect rule does not match | [Redirects](https://developers.cloudflare.com/pages/configuration/redirects/index.md) | - Network accessline 11
| Investigate a failed Function request | [Debugging and logging](https://developers.cloudflare.com/pages/functions/debugging-and-logging/index.md) | - Network accessline 12
| Check deployment and file capacity | [Pages limits](https://developers.cloudflare.com/pages/platform/limits/index.md) | - Network accessline 13
| Understand Function versus static request billing | [Functions pricing](https://developers.cloudflare.com/pages/functions/pricing/index.md) | - Network accessline 19
Fetch the relevant [framework guide](https://developers.cloudflare.com/pages/framework-guides/index.md) before changing adapters or recommending another host. For a move to Workers, follow the [migration guide](https://developers.cloudflare
skills/cloudflare/references/pages/patterns.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Maintain a framework deployment | [Framework guides](https://developers.cloudflare.com/pages/framework-guides/index.md) | - Network accessline 6
| --- | --- | | Maintain a framework deployment | [Framework guides](https://developers.cloudflare.com/pages/framework-guides/index.md) | | Deploy from an external build pipeline | [Direct Upload](https://developers.cloudflare.com/pages/get - Network accessline 7
| Maintain a framework deployment | [Framework guides](https://developers.cloudflare.com/pages/framework-guides/index.md) | - Network accessline 8
| Deploy from an external build pipeline | [Direct Upload](https://developers.cloudflare.com/pages/get-started/direct-upload/index.md) | - Network accessline 9
| Manage multiple apps in one repository | [Monorepos](https://developers.cloudflare.com/pages/configuration/monorepos/index.md) | - Network accessline 10
| Evaluate backend locality | [Smart Placement](https://developers.cloudflare.com/pages/functions/smart-placement/index.md) | - Network accessline 11
| Plan a move to Workers | [Migrate from Pages to Workers](https://developers.cloudflare.com/workers/static-assets/migration-guides/migrate-from-pages/index.md) |
skills/cloudflare/references/queues/README.md
- Network accessline 13
See [How Queues works](https://developers.cloudflare.com/queues/reference/how-queues-works/index.md) and [delivery guarantees](https://developers.cloudflare.com/queues/reference/delivery-guarantees/index.md) before choosing ordering or dedu - Network accessline 24
For a first application, fetch [Getting started](https://developers.cloudflare.com/queues/get-started/index.md). Retrieve [limits](https://developers.cloudflare.com/queues/platform/limits/index.md) and [pricing](https://developers.cloudflar
skills/cloudflare/references/queues/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Send individual messages or batches; choose encoding; implement a typed Worker queue handler; dispatch by queue name | [JavaScript APIs](https://developers.cloudflare.com/queues/configurat - Network accessline 6
|------|---------------| | Send individual messages or batches; choose encoding; implement a typed Worker queue handler; dispatch by queue name | [JavaScript APIs](https://developers.cloudflare.com/queues/configuration/javascript-apis/index - Network accessline 7
| Send individual messages or batches; choose encoding; implement a typed Worker queue handler; dispatch by queue name | [JavaScript APIs](https://developers.cloudflare.com/queues/configuration/javascript-apis/index.md) | - Network accessline 8
| Understand automatic acknowledgement, explicit per-message and batch actions, precedence, delivery failures, delays, and backoff | [Batching, retries, and delays](https://developers.cloudflare.com/queues/configuration/batching-retries/ind - Network accessline 9
| Pull over HTTP and acknowledge or retry using leases | [Pull consumers](https://developers.cloudflare.com/queues/configuration/pull-consumers/index.md) | - Network accessline 10
| Publish from outside Workers | [Publish to a Queue via HTTP](https://developers.cloudflare.com/queues/examples/publish-to-a-queue-via-http/index.md) |
skills/cloudflare/references/queues/configuration.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Create a queue and connect producer and consumer Workers | [Getting started](https://developers.cloudflare.com/queues/get-started/index.md) | - Network accessline 6
|------|---------------| | Create a queue and connect producer and consumer Workers | [Getting started](https://developers.cloudflare.com/queues/get-started/index.md) | | Configure producer bindings, Worker consumers, retention, and concurr - Network accessline 7
| Create a queue and connect producer and consumer Workers | [Getting started](https://developers.cloudflare.com/queues/get-started/index.md) | - Network accessline 8
| Configure producer bindings, Worker consumers, retention, and concurrency settings | [Configure Queues](https://developers.cloudflare.com/queues/configuration/configure-queues/index.md) | - Network accessline 9
| Configure an external HTTP consumer and its visibility timeout | [Pull consumers](https://developers.cloudflare.com/queues/configuration/pull-consumers/index.md) | - Network accessline 10
| Choose batching, retry policy, or delivery delays | [Batching, retries, and delays](https://developers.cloudflare.com/queues/configuration/batching-retries/index.md) | - Network accessline 11
| Preserve messages that exhaust retries | [Dead Letter Queues](https://developers.cloudflare.com/queues/configuration/dead-letter-queues/index.md) | - Network accessline 12
| Set consumer scaling for downstream capacity | [Consumer concurrency](https://developers.cloudflare.com/queues/configuration/consumer-concurrency/index.md) | - Network accessline 13
| Choose content types and type Worker messages | [JavaScript APIs](https://developers.cloudflare.com/queues/configuration/javascript-apis/index.md) | - Network accessline 14
| Create, update, attach, remove, or delete queues and consumers | [Wrangler commands](https://developers.cloudflare.com/queues/reference/wrangler-commands/index.md) | - Network accessline 15
| Pause delivery, resume it, or purge messages | [Pause and purge](https://developers.cloudflare.com/queues/configuration/pause-purge/index.md) | - Network accessline 16
| Develop and test producers and consumers locally | [Local development](https://developers.cloudflare.com/queues/configuration/local-development/index.md) | - Network accessline 20
Fetch [limits](https://developers.cloudflare.com/queues/platform/limits/index.md) and [pricing](https://developers.cloudflare.com/queues/platform/pricing/index.md) for the account's plan before selecting retention, delays, or capacity. Do n
skills/cloudflare/references/queues/gotchas.md
- Network accessline 5
| Symptom or question | Documentation and decision | |---------------------|----------------------------| | Successful work repeats after another message fails | Read [acknowledgement and retry rules](https://developers.cloudflare.com/queue - Network accessline 6
|---------------------|----------------------------| | Successful work repeats after another message fails | Read [acknowledgement and retry rules](https://developers.cloudflare.com/queues/configuration/batching-retries/index.md); use per-m - Network accessline 7
| Successful work repeats after another message fails | Read [acknowledgement and retry rules](https://developers.cloudflare.com/queues/configuration/batching-retries/index.md); use per-message outcomes for independent work. | - Network accessline 8
| A caught failure disappears instead of retrying | Read [handler lifecycle and APIs](https://developers.cloudflare.com/queues/configuration/javascript-apis/index.md); returning successfully can acknowledge messages. Explicitly retry failed - Network accessline 9
| Duplicate processing | Read [delivery guarantees](https://developers.cloudflare.com/queues/reference/delivery-guarantees/index.md); enforce idempotency at the side-effect destination. | - Network accessline 10
| Pull consumers cannot decode payloads | Check [pull consumer encoding](https://developers.cloudflare.com/queues/configuration/pull-consumers/index.md) and [content types](https://developers.cloudflare.com/queues/configuration/javascript-a - Network accessline 11
| Messages stop arriving or backlog grows | Check [consumer configuration](https://developers.cloudflare.com/queues/configuration/configure-queues/index.md), [pause state](https://developers.cloudflare.com/queues/configuration/pause-purge/i - Network accessline 12
| Dead-letter volume rises or messages disappear after retries | Read [Dead Letter Queues](https://developers.cloudflare.com/queues/configuration/dead-letter-queues/index.md); inspect failures and plan recovery before increasing retries. | - Network accessline 13
| API errors, resource exhaustion, or CPU failures | Read [error codes](https://developers.cloudflare.com/queues/reference/error-codes/index.md), [limits](https://developers.cloudflare.com/queues/platform/limits/index.md), and [consumer con - Network accessline 14
| Retention, delay, throughput, or cost assumptions no longer hold | Retrieve current [limits](https://developers.cloudflare.com/queues/platform/limits/index.md) and [pricing](https://developers.cloudflare.com/queues/platform/pricing/index.
skills/cloudflare/references/queues/patterns.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Accept requests and enqueue asynchronous tasks; publish to multiple queues | [Publish to a Queue via Workers](https://developers.cloudflare.com/queues/examples/publish-to-a-queue-via-worke - Network accessline 6
|------|---------------| | Accept requests and enqueue asynchronous tasks; publish to multiple queues | [Publish to a Queue via Workers](https://developers.cloudflare.com/queues/examples/publish-to-a-queue-via-workers/index.md) | | Buffer w - Network accessline 7
| Accept requests and enqueue asynchronous tasks; publish to multiple queues | [Publish to a Queue via Workers](https://developers.cloudflare.com/queues/examples/publish-to-a-queue-via-workers/index.md) | - Network accessline 8
| Buffer writes to an external API or defer a job | [Batching, retries, and delays](https://developers.cloudflare.com/queues/configuration/batching-retries/index.md) | - Network accessline 9
| Handle upstream rate limits and backpressure | [Handle rate limits of external APIs](https://developers.cloudflare.com/queues/tutorials/handle-rate-limits/index.md) and [consumer concurrency](https://developers.cloudflare.com/queues/confi - Network accessline 10
| Isolate workloads with different latency or capacity needs | [Configure Queues](https://developers.cloudflare.com/queues/configuration/configure-queues/index.md) | - Network accessline 11
| Retain exhausted retries for inspection and recovery | [Dead Letter Queues](https://developers.cloudflare.com/queues/configuration/dead-letter-queues/index.md) | - Network accessline 12
| Process R2 object events | [R2 event notifications](https://developers.cloudflare.com/r2/buckets/event-notifications/index.md) | - Network accessline 13
| Batch output into R2 | [Use Queues to store data in R2](https://developers.cloudflare.com/queues/examples/send-errors-to-r2/index.md) | - Network accessline 14
| Batch writes into D1 | [D1 database API](https://developers.cloudflare.com/d1/worker-api/d1-database/index.md) | - Network accessline 15
| Start durable multi-step jobs | [Trigger Workflows](https://developers.cloudflare.com/workflows/build/trigger-workflows/index.md) | | Publish from a Durable Object | [Use Queues from Durable Objects](https://developers.cloudflare.com/queu - Network accessline 16
| Publish from a Durable Object | [Use Queues from Durable Objects](https://developers.cloudflare.com/queues/examples/use-queues-with-durable-objects/index.md) | - Network accessline 17
| Route consumer work to a Durable Object | [Invoke Durable Object methods](https://developers.cloudflare.com/durable-objects/best-practices/create-durable-object-stubs-and-send-requests/index.md) | - Network accessline 19
Design side effects for [at-least-once delivery](https://developers.cloudflare.com/queues/reference/delivery-guarantees/index.md). A separate check-then-write deduplication flag is not an atomic guarantee: concurrent delivery or a crash bet
skills/cloudflare/references/r2/README.md
- Network accessline 7
- Use a Workers binding for object access inside a Worker: [Workers API setup](https://developers.cloudflare.com/r2/get-started/workers-api/index.md). - Network accessline 8
- Use the S3-compatible API for existing S3 clients or direct client access through presigned URLs: [S3 setup](https://developers.cloudflare.com/r2/get-started/s3/index.md). Check supported operations rather than assuming full S3 parity. - Network accessline 20
For other topics, discover pages through the [R2 documentation index](https://developers.cloudflare.com/r2/llms.txt). Check [pricing](https://developers.cloudflare.com/r2/pricing/index.md) before estimating costs. - Network accessline 24
- [Workers](https://developers.cloudflare.com/workers/index.md) for request handling.
skills/cloudflare/references/r2/api.md
- Network accessline 5
| Task | Current documentation | |------|-----------------------| | Read, write, inspect, delete, or list objects; metadata, checksums, ranges, and return types | [Workers API reference](https://developers.cloudflare.com/r2/api/workers/work - Network accessline 6
|------|-----------------------| | Read, write, inspect, delete, or list objects; metadata, checksums, ranges, and return types | [Workers API reference](https://developers.cloudflare.com/r2/api/workers/workers-api-reference/index.md) | | I - Network accessline 7
| Read, write, inspect, delete, or list objects; metadata, checksums, ranges, and return types | [Workers API reference](https://developers.cloudflare.com/r2/api/workers/workers-api-reference/index.md) | - Network accessline 8
| Implement a Worker that serves or writes objects | [Use R2 from Workers](https://developers.cloudflare.com/r2/api/workers/workers-api-usage/index.md) | - Network accessline 9
| Create, resume, complete, or abort multipart uploads | [Multipart Worker and client example](https://developers.cloudflare.com/r2/api/workers/workers-multipart-usage/index.md) | - Network accessline 10
| Check supported S3 operations and headers | [S3 compatibility](https://developers.cloudflare.com/r2/api/s3/api/index.md) | | Configure an S3 JavaScript client | [AWS SDK for JavaScript v3](https://developers.cloudflare.com/r2/examples/aws - Network accessline 11
| Configure an S3 JavaScript client | [AWS SDK for JavaScript v3](https://developers.cloudflare.com/r2/examples/aws/aws-sdk-js-v3/index.md) | | Sign temporary upload or download access | [Presigned URLs](https://developers.cloudflare.com/r2 - Network accessline 12
| Sign temporary upload or download access | [Presigned URLs](https://developers.cloudflare.com/r2/api/s3/presigned-urls/index.md) | - Network accessline 13
| Encrypt with customer-provided keys | [SSE-C usage](https://developers.cloudflare.com/r2/examples/ssec/index.md) | - Network accessline 14
| Manage buckets and objects from the command line | [Wrangler R2 commands](https://developers.cloudflare.com/r2/reference/wrangler-commands/index.md) | - Network accessline 16
Use generated project types rather than maintaining local copies of R2 interfaces; see [Workers TypeScript guidance](https://developers.cloudflare.com/workers/languages/typescript/index.md). For pagination and conditional response handling,
skills/cloudflare/references/r2/configuration.md
- Network accessline 5
| Task | Current documentation | |------|-----------------------| | Create a bucket and bind it to a Worker | [Workers API setup](https://developers.cloudflare.com/r2/get-started/workers-api/index.md) | - Network accessline 6
|------|-----------------------| | Create a bucket and bind it to a Worker | [Workers API setup](https://developers.cloudflare.com/r2/get-started/workers-api/index.md) | | Choose local simulation or a remote bucket during development | [Sup - Network accessline 7
| Create a bucket and bind it to a Worker | [Workers API setup](https://developers.cloudflare.com/r2/get-started/workers-api/index.md) | - Network accessline 8
| Choose local simulation or a remote bucket during development | [Supported bindings per development mode](https://developers.cloudflare.com/workers/local-development/bindings-per-env/index.md) and [local development](https://developers.cl - Network accessline 9
| Create S3 credentials and scope permissions | [R2 authentication](https://developers.cloudflare.com/r2/api/tokens/index.md) | - Network accessline 10
| Set the S3 endpoint and SDK region | [AWS SDK for JavaScript v3](https://developers.cloudflare.com/r2/examples/aws/aws-sdk-js-v3/index.md) | - Network accessline 11
| Choose placement hints or a jurisdiction | [Data location](https://developers.cloudflare.com/r2/reference/data-location/index.md) | - Network accessline 12
| Configure browser origins, methods, and headers | [CORS](https://developers.cloudflare.com/r2/buckets/cors/index.md) | - Network accessline 13
| Set expiration, storage transitions, or incomplete-upload cleanup | [Object lifecycles](https://developers.cloudflare.com/r2/buckets/object-lifecycles/index.md) | - Network accessline 14
| Choose or change storage classes | [Storage classes](https://developers.cloudflare.com/r2/buckets/storage-classes/index.md) and [pricing](https://developers.cloudflare.com/r2/pricing/index.md) | - Network accessline 15
| Send object events to a queue | [Event notifications](https://developers.cloudflare.com/r2/buckets/event-notifications/index.md) | - Network accessline 16
| Configure public access or a custom domain | [Public buckets](https://developers.cloudflare.com/r2/buckets/public-buckets/index.md) | - Network accessline 17
| Manage bucket settings with Wrangler | [R2 commands](https://developers.cloudflare.com/r2/reference/wrangler-commands/index.md) |
skills/cloudflare/references/r2/gotchas.md
- Network accessline 5
| Symptom or decision | What to check | |---------------------|---------------| | Listing stops early or escapes the intended prefix | Follow `truncated` and the returned cursor, retaining the original prefix, delimiter, and metadata option - Network accessline 6
|---------------------|---------------| | Listing stops early or escapes the intended prefix | Follow `truncated` and the returned cursor, retaining the original prefix, delimiter, and metadata options on subsequent requests. See the listin - Network accessline 7
| Listing stops early or escapes the intended prefix | Follow `truncated` and the returned cursor, retaining the original prefix, delimiter, and metadata options on subsequent requests. See the listing section of the [Workers API reference] - Network accessline 8
| Conditional read has no body, or conditional write returns null | Distinguish a missing object from a failed condition; choose the HTTP response for the actual request condition. See conditional operations in the [Workers API reference](h - Network accessline 9
| ETag, metadata, checksum, or stream upload behaves unexpectedly | Check supported values and return types in the [Workers API reference](https://developers.cloudflare.com/r2/api/workers/workers-api-reference/index.md), the [Worker upload - Network accessline 10
| Multipart upload fails or cannot be resumed | Check part constraints and handle an upload that has already completed or aborted: [multipart guide](https://developers.cloudflare.com/r2/api/workers/workers-multipart-usage/index.md) and [API - Network accessline 11
| S3 authentication or signed URL fails | Verify credentials, endpoint, region, operation, signed headers, and expiry using [SDK setup](https://developers.cloudflare.com/r2/examples/aws/aws-sdk-js-v3/index.md), [authentication](https://deve - Network accessline 12
| Browser fails but an HTTP client succeeds | Check [CORS](https://developers.cloudflare.com/r2/buckets/cors/index.md) and [troubleshooting](https://developers.cloudflare.com/r2/platform/troubleshooting/index.md). | - Network accessline 13
| Local and deployed data or behavior differ | Check [local development](https://developers.cloudflare.com/workers/local-development/index.md), [supported bindings](https://developers.cloudflare.com/workers/local-development/bindings-per-en - Network accessline 14
| Reads serve old or missing content after an update | Check the [consistency model and cache interactions](https://developers.cloudflare.com/r2/reference/consistency/index.md). | - Network accessline 15
| Upload size, metadata size, storage cost, or lifecycle behavior is unexpected | Fetch [limits](https://developers.cloudflare.com/r2/platform/limits/index.md), [pricing](https://developers.cloudflare.com/r2/pricing/index.md), [storage clas - Network accessline 17
For other failures, start with [R2 troubleshooting](https://developers.cloudflare.com/r2/platform/troubleshooting/index.md) and [error codes](https://developers.cloudflare.com/r2/api/error-codes/index.md).
skills/cloudflare/references/r2/patterns.md
- Network accessline 5
| Task | Current documentation | |------|-----------------------| | Stream object downloads or accept uploads through a Worker | [Use R2 from Workers](https://developers.cloudflare.com/r2/api/workers/workers-api-usage/index.md) | - Network accessline 6
|------|-----------------------| | Stream object downloads or accept uploads through a Worker | [Use R2 from Workers](https://developers.cloudflare.com/r2/api/workers/workers-api-usage/index.md) | | Add conditional reads/writes, range handl - Network accessline 7
| Stream object downloads or accept uploads through a Worker | [Use R2 from Workers](https://developers.cloudflare.com/r2/api/workers/workers-api-usage/index.md) | - Network accessline 8
| Add conditional reads/writes, range handling, checksums, or batch deletion | [Workers API reference](https://developers.cloudflare.com/r2/api/workers/workers-api-reference/index.md) | | Upload large files with multipart state tracked by t - Network accessline 9
| Upload large files with multipart state tracked by the client | [Multipart Worker and client example](https://developers.cloudflare.com/r2/api/workers/workers-multipart-usage/index.md) | | Upload directly from a browser or share a tempora - Network accessline 10
| Upload directly from a browser or share a temporary download | [Presigned URLs](https://developers.cloudflare.com/r2/api/s3/presigned-urls/index.md) and [CORS](https://developers.cloudflare.com/r2/buckets/cors/index.md) | - Network accessline 11
| Cache responses served by a Worker | [Cache API example](https://developers.cloudflare.com/r2/examples/cache-api/index.md) | - Network accessline 12
| Deliver public objects through a custom domain or evaluate r2.dev | [Public buckets](https://developers.cloudflare.com/r2/buckets/public-buckets/index.md) | - Network accessline 13
| Process object changes asynchronously | [Event notifications](https://developers.cloudflare.com/r2/buckets/event-notifications/index.md) and [Queues](../queues/) | - Network accessline 14
| Expire objects or transition storage classes | [Object lifecycles](https://developers.cloudflare.com/r2/buckets/object-lifecycles/index.md) and [storage classes](https://developers.cloudflare.com/r2/buckets/storage-classes/index.md) | - Network accessline 18
Keep private responses out of shared public caches. Choose cache keys and invalidation around the application's access model, and check [R2 consistency and caching behavior](https://developers.cloudflare.com/r2/reference/consistency/index.m
skills/cloudflare/references/secrets-store/README.md
- Network accessline 3
Use Secrets Store for account-level credentials shared across Workers or supported integrations. Use [Worker secrets](https://developers.cloudflare.com/workers/configuration/secrets/index.md) when credentials belong to one Worker and do not - Network accessline 5
Fetch the relevant documentation before implementing. Current Cloudflare docs are the source of truth for binding APIs, management commands, permissions, availability, and quotas. Use the [Secrets Store documentation index](https://develope - Network accessline 9
- Share a secret only among services that should use the same credential and rotate together. - Separate development, staging, and production credentials; select the intended account and environment before managing or binding a secret. - Gr - Network accessline 11
- Grant only the management permissions and consuming-service scopes needed. Permission to view metadata does not imply permission to bind or retrieve a value; fetch [access control](https://developers.cloudflare.com/secrets-store/access-co - Network accessline 22
Fetch the [product overview](https://developers.cloudflare.com/secrets-store/index.md) for current availability and supported integrations. For AI Gateway provider credentials, use [Bring your own keys](https://developers.cloudflare.com/ai-
skills/cloudflare/references/secrets-store/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Read a bound account secret asynchronously in a Worker | [Workers integration: access the secret](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md#3-access-the - Network accessline 6
|------|---------------| | Read a bound account secret asynchronously in a Worker | [Workers integration: access the secret](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md#3-access-the-secret-on-the-env-object - Network accessline 7
| Read a bound account secret asynchronously in a Worker | [Workers integration: access the secret](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md#3-access-the-secret-on-the-env-object) | - Network accessline 8
| Generate binding and runtime types for the Worker configuration | [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 9
| Manage stores and secrets, inspect metadata, or query quota | [Secrets Store REST API](https://developers.cloudflare.com/api/resources/secrets_store/index.md) | - Network accessline 10
| Choose authorization and consuming-service scope | [Access control](https://developers.cloudflare.com/secrets-store/access-control/index.md) | - Network accessline 11
| Manage secrets through the CLI instead of REST | [Wrangler Secrets Store commands](https://developers.cloudflare.com/workers/wrangler/commands/secrets-store/index.md) | - Network accessline 15
Account-secret bindings require asynchronous retrieval; they are not the direct string values exposed by [Worker secrets](https://developers.cloudflare.com/workers/configuration/secrets/index.md). Account management APIs and metadata reads
skills/cloudflare/references/secrets-store/configuration.md
- Network accessline 7
| Task | Documentation | |------|---------------| | Create a store and secret, then bind it through Wrangler or the dashboard | [Workers integration](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md) | - Network accessline 8
|------|---------------| | Create a store and secret, then bind it through Wrangler or the dashboard | [Workers integration](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md) | | Create, edit, duplicate, or dele - Network accessline 9
| Create a store and secret, then bind it through Wrangler or the dashboard | [Workers integration](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md) | - Network accessline 10
| Create, edit, duplicate, or delete account secrets | [Manage secrets](https://developers.cloudflare.com/secrets-store/manage-secrets/how-to/index.md) | - Network accessline 11
| Look up current store/secret command syntax and local versus remote flags | [Wrangler Secrets Store commands](https://developers.cloudflare.com/workers/wrangler/commands/secrets-store/index.md) | - Network accessline 12
| Configure bindings for each deployment environment | [Wrangler environments](https://developers.cloudflare.com/workers/wrangler/environments/index.md) | - Network accessline 13
| Choose user roles, CI token permissions, and secret scopes | [Secrets Store access control](https://developers.cloudflare.com/secrets-store/access-control/index.md) | - Network accessline 19
Secrets Store management commands default to local state; production operations use the documented remote option. Local development needs separately provisioned local secrets. Follow the local-development notes in [Workers integration](http - Network accessline 21
Check the selected account, deployment environment, secret scope, and binding configuration before deploying. In CI, distinguish permission to read metadata from permission to attach a secret to a Worker; use the [CI/CD access-control guida
skills/cloudflare/references/secrets-store/gotchas.md
- Network accessline 5
| Symptom or decision | What to check | Documentation | |---------------------|---------------|---------------| | Deployment cannot attach a secret | Selected account, caller's binding permission, and the secret's consuming-service scope; m - Network accessline 6
|---------------------|---------------|---------------| | Deployment cannot attach a secret | Selected account, caller's binding permission, and the secret's consuming-service scope; metadata read permission alone is insufficient | [Access - Network accessline 7
| Deployment cannot attach a secret | Selected account, caller's binding permission, and the secret's consuming-service scope; metadata read permission alone is insufficient | [Access control](https://developers.cloudflare.com/secrets-store - Network accessline 8
| Secret is missing or the wrong value is used | Store, secret name, binding name, and selected deployment environment | [Workers integration](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md), [Wrangler environ - Network accessline 9
| Secret works in production but fails locally | Local secret provisioning and the management command's local/remote target | [Workers integration](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md), [Wrangler co - Network accessline 10
| CLI update, retrieval, or deletion fails | The operation's required identifier and flags; a secret name is not interchangeable with its ID | [Wrangler commands](https://developers.cloudflare.com/workers/wrangler/commands/secrets-store/ind - Network accessline 11
| Binding is treated as a string or has incorrect types | Asynchronous account-secret access and generated configuration types | [Runtime access](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md#3-access-the-sec - Network accessline 12
| Quota or value-size validation fails | Current account quota and the requested operation's schema | [Secrets Store REST API](https://developers.cloudflare.com/api/resources/secrets_store/index.md) | - Network accessline 13
| Regional or integration support is unclear | Current product availability and supported consumers | [Product overview](https://developers.cloudflare.com/secrets-store/index.md) | - Network accessline 17
Before deleting a secret to fix a binding conflict or quota problem, identify all consumers. Follow [secret management](https://developers.cloudflare.com/secrets-store/manage-secrets/how-to/index.md) and the rotation decisions in [patterns.
skills/cloudflare/references/secrets-store/patterns.md
- Network accessline 7
Fetch [edit, duplicate, and delete operations](https://developers.cloudflare.com/secrets-store/manage-secrets/how-to/index.md) and [Workers binding setup](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md) before - Network accessline 13
Read [Worker secrets](https://developers.cloudflare.com/workers/configuration/secrets/index.md) alongside [Secrets Store Workers integration](https://developers.cloudflare.com/secrets-store/integrations/workers/index.md). Migration changes - Network accessline 17
For cryptographic operations, fetch [Workers Web Crypto](https://developers.cloudflare.com/workers/runtime-apis/web-crypto/index.md) and the [request-signing example](https://developers.cloudflare.com/workers/examples/signing-requests/index - Network accessline 23
Fetch [Secrets Store audit logs](https://developers.cloudflare.com/secrets-store/audit-logs/index.md) for the recorded actions and how to inspect them. Keep application telemetry free of credential values; do not assume account audit events - Network accessline 25
For AI Gateway credentials, use [Bring your own keys](https://developers.cloudflare.com/ai-gateway/configuration/bring-your-own-keys/index.md). For an internal authentication service, consult [Worker service bindings](https://developers.clo
skills/cloudflare/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/cloudflare/references/static-assets/README.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Set up and deploy a static site or application | [Get started](https://developers.cloudflare.com/workers/static-assets/get-started/index.md) | - Network accessline 6
|------|---------------| | Set up and deploy a static site or application | [Get started](https://developers.cloudflare.com/workers/static-assets/get-started/index.md) | | Choose configuration and an optional asset binding | [Configuration - Network accessline 7
| Set up and deploy a static site or application | [Get started](https://developers.cloudflare.com/workers/static-assets/get-started/index.md) | - Network accessline 8
| Choose configuration and an optional asset binding | [Configuration and bindings](https://developers.cloudflare.com/workers/static-assets/binding/index.md) | - Network accessline 9
| Serve a client-rendered application | [SPA routing](https://developers.cloudflare.com/workers/static-assets/routing/single-page-application/index.md) | - Network accessline 10
| Serve generated HTML and custom error pages | [SSG routing](https://developers.cloudflare.com/workers/static-assets/routing/static-site-generation/index.md) | - Network accessline 11
| Use a full-stack framework | [Full-stack application guides](https://developers.cloudflare.com/workers/static-assets/routing/full-stack-application/index.md) | - Network accessline 12
| Evaluate moving an existing Pages project | [Pages migration guide](https://developers.cloudflare.com/workers/static-assets/migration-guides/migrate-from-pages/index.md) |
skills/cloudflare/references/static-assets/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Forward a request or fetch a specific asset | [Runtime API reference](https://developers.cloudflare.com/workers/static-assets/binding/index.md#runtime-api-reference) | - Network accessline 6
|------|---------------| | Forward a request or fetch a specific asset | [Runtime API reference](https://developers.cloudflare.com/workers/static-assets/binding/index.md#runtime-api-reference) | | Understand how binding requests apply HTML - Network accessline 7
| Forward a request or fetch a specific asset | [Runtime API reference](https://developers.cloudflare.com/workers/static-assets/binding/index.md#runtime-api-reference) | - Network accessline 8
| Understand how binding requests apply HTML and fallback settings | [Binding fetch behavior](https://developers.cloudflare.com/workers/static-assets/binding/index.md#runtime-api-reference) and [HTML handling](https://developers.cloudflare. - Network accessline 9
| Run authorization or transform content before serving | [Run your Worker script first](https://developers.cloudflare.com/workers/static-assets/routing/worker-script/index.md#run-your-worker-script-first) | - Network accessline 10
| Inspect default MIME, cache, and validation headers | [Default headers](https://developers.cloudflare.com/workers/static-assets/headers/index.md#default-headers) | | Add or override response headers | [Custom headers and Worker-response c - Network accessline 11
| Add or override response headers | [Custom headers and Worker-response caveat](https://developers.cloudflare.com/workers/static-assets/headers/index.md#custom-headers) | - Network accessline 12
| Fetch assets imported by Vite | [Vite asset features](https://developers.cloudflare.com/workers/vite-plugin/reference/static-assets/index.md#features) |
skills/cloudflare/references/static-assets/configuration.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Set the asset directory and exclude non-public files | [Directory](https://developers.cloudflare.com/workers/static-assets/binding/index.md#directory) and [ignoring assets](https://develop - Network accessline 6
|------|---------------| | Set the asset directory and exclude non-public files | [Directory](https://developers.cloudflare.com/workers/static-assets/binding/index.md#directory) and [ignoring assets](https://developers.cloudflare.com/worker - Network accessline 7
| Set the asset directory and exclude non-public files | [Directory](https://developers.cloudflare.com/workers/static-assets/binding/index.md#directory) and [ignoring assets](https://developers.cloudflare.com/workers/static-assets/binding/i - Network accessline 8
| Make assets available to Worker code | [Asset binding configuration](https://developers.cloudflare.com/workers/static-assets/binding/index.md#binding) | - Network accessline 9
| Select paths that must run Worker logic before asset serving | [Worker-first configuration](https://developers.cloudflare.com/workers/static-assets/binding/index.md#run_worker_first) | - Network accessline 10
| Configure SPA fallback and navigation behavior | [SPA configuration](https://developers.cloudflare.com/workers/static-assets/routing/single-page-application/index.md#configuration) | - Network accessline 11
| Configure generated HTML and missing-page responses | [SSG configuration](https://developers.cloudflare.com/workers/static-assets/routing/static-site-generation/index.md#configuration) | - Network accessline 12
| Choose canonical HTML URLs and trailing slash handling | [HTML handling modes](https://developers.cloudflare.com/workers/static-assets/routing/advanced/html-handling/index.md) | - Network accessline 13
| Configure assets produced by the Cloudflare Vite plugin | [Vite asset configuration](https://developers.cloudflare.com/workers/vite-plugin/reference/static-assets/index.md#configuration) | - Network accessline 14
| Configure static response headers or redirects | [Headers](https://developers.cloudflare.com/workers/static-assets/headers/index.md) and [redirects](https://developers.cloudflare.com/workers/static-assets/redirects/index.md) |
skills/cloudflare/references/static-assets/gotchas.md
- Network accessline 5
| Symptom or decision | Documentation | |---------------------|---------------| | Asset missing or unexpected files uploaded | [Asset directory](https://developers.cloudflare.com/workers/static-assets/binding/index.md#directory) and [ignore - Network accessline 6
|---------------------|---------------| | Asset missing or unexpected files uploaded | [Asset directory](https://developers.cloudflare.com/workers/static-assets/binding/index.md#directory) and [ignore rules](https://developers.cloudflare.co - Network accessline 7
| Asset missing or unexpected files uploaded | [Asset directory](https://developers.cloudflare.com/workers/static-assets/binding/index.md#directory) and [ignore rules](https://developers.cloudflare.com/workers/static-assets/binding/index.md - Network accessline 8
| Worker is bypassed for an asset or protected path | [Worker-first routing](https://developers.cloudflare.com/workers/static-assets/routing/worker-script/index.md#run-your-worker-script-first) | | Browser navigation returns HTML for an API - Network accessline 9
| Browser navigation returns HTML for an API path | [SPA navigation requests](https://developers.cloudflare.com/workers/static-assets/routing/single-page-application/index.md#navigation-requests) and [advanced routing](https://developers.cl - Network accessline 10
| Unexpected redirects or trailing slashes | [HTML handling](https://developers.cloudflare.com/workers/static-assets/routing/advanced/html-handling/index.md) | - Network accessline 11
| A missing route serves the wrong fallback | [SPA routing](https://developers.cloudflare.com/workers/static-assets/routing/single-page-application/index.md) or [SSG custom 404 pages](https://developers.cloudflare.com/workers/static-assets/ - Network accessline 12
| Cache behavior or custom headers differ from expectations | [Default and custom headers](https://developers.cloudflare.com/workers/static-assets/headers/index.md) | | Vite development and deployment behave differently | [Vite asset config - Network accessline 13
| Vite development and deployment behave differently | [Vite asset configuration and output](https://developers.cloudflare.com/workers/vite-plugin/reference/static-assets/index.md) | | Worker-first requests return 429 or affect cost | [Bill - Network accessline 14
| Worker-first requests return 429 or affect cost | [Billing and limitations](https://developers.cloudflare.com/workers/static-assets/billing-and-limitations/index.md) | - Network accessline 15
| Asset count or file size exceeds deployment limits | [Static asset platform limits](https://developers.cloudflare.com/workers/platform/limits/index.md#static-assets) | - Network accessline 16
| Placement adds latency to asset requests | [Worker routing and placement caveat](https://developers.cloudflare.com/workers/static-assets/routing/worker-script/index.md#run-your-worker-script-first) |
skills/cloudflare/references/static-assets/patterns.md
- Network accessline 5
| Routing need | Documentation | |--------------|---------------| | Serve public assets with minimal Worker involvement | [Default Worker routing](https://developers.cloudflare.com/workers/static-assets/routing/worker-script/index.md) | - Network accessline 6
|--------------|---------------| | Serve public assets with minimal Worker involvement | [Default Worker routing](https://developers.cloudflare.com/workers/static-assets/routing/worker-script/index.md) | | Combine a SPA with API routes | [A - Network accessline 7
| Serve public assets with minimal Worker involvement | [Default Worker routing](https://developers.cloudflare.com/workers/static-assets/routing/worker-script/index.md) | - Network accessline 8
| Combine a SPA with API routes | [Advanced SPA routing control](https://developers.cloudflare.com/workers/static-assets/routing/single-page-application/index.md#advanced-routing-control) | - Network accessline 9
| Require authentication or transform assets before serving | [Run Worker before each request](https://developers.cloudflare.com/workers/static-assets/routing/worker-script/index.md#run-worker-before-each-request) | - Network accessline 10
| Route an OAuth callback or selected dynamic paths to the Worker | [Run Worker first for selective paths](https://developers.cloudflare.com/workers/static-assets/routing/worker-script/index.md#run-worker-first-for-selective-paths) | - Network accessline 11
| Select assets for locale or experiment variants | [Asset binding API](https://developers.cloudflare.com/workers/static-assets/binding/index.md#runtime-api-reference) and [Worker-first routing](https://developers.cloudflare.com/workers/sta - Network accessline 12
| Serve generated HTML with a custom 404 | [Custom 404 pages](https://developers.cloudflare.com/workers/static-assets/routing/static-site-generation/index.md#custom-404-pages) | - Network accessline 13
| Apply static cache/security headers or redirects | [Custom headers](https://developers.cloudflare.com/workers/static-assets/headers/index.md#custom-headers) and [redirects](https://developers.cloudflare.com/workers/static-assets/redirects
skills/cloudflare/references/stream/README.md
- Network accessline 7
| Task | Read | |---|---| | Let users upload without exposing an API token | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | - Network accessline 8
|---|---| | Let users upload without exposing an API token | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | | Choose server upload, resumable upload, or import from a UR - Network accessline 9
| Let users upload without exposing an API token | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | - Network accessline 10
| Choose server upload, resumable upload, or import from a URL | [Upload methods and supported formats](https://developers.cloudflare.com/stream/uploading-videos/index.md) | - Network accessline 11
| Embed playback or integrate an existing player | [Stream Player](https://developers.cloudflare.com/stream/viewing-videos/using-the-stream-player/index.md) or [HLS/DASH players](https://developers.cloudflare.com/stream/viewing-videos/using - Network accessline 12
| Restrict viewing to authorized users or embedding origins | [Secure your Stream](https://developers.cloudflare.com/stream/viewing-videos/securing-your-stream/index.md) | - Network accessline 14
| Check usage, costs, or upload constraints | [Analytics](https://developers.cloudflare.com/stream/getting-analytics/index.md), [pricing](https://developers.cloudflare.com/stream/pricing/index.md), and [upload requirements](https://develope
skills/cloudflare/references/stream/api-live.md
- Network accessline 5
| Task | Read | |---|---| | Create an RTMPS/SRT input and connect an encoder | [Start a live stream](https://developers.cloudflare.com/stream/stream-live/start-stream-live/index.md) | - Network accessline 6
|---|---| | Create an RTMPS/SRT input and connect an encoder | [Start a live stream](https://developers.cloudflare.com/stream/stream-live/start-stream-live/index.md) | | Update inputs, recording, retention, or stream keys | [Manage live inp - Network accessline 7
| Create an RTMPS/SRT input and connect an encoder | [Start a live stream](https://developers.cloudflare.com/stream/stream-live/start-stream-live/index.md) | - Network accessline 8
| Update inputs, recording, retention, or stream keys | [Manage live inputs](https://developers.cloudflare.com/stream/stream-live/start-stream-live/index.md#manage-live-inputs) | - Network accessline 9
| Choose persistent-channel playback versus a particular video | [View by live input ID or video ID](https://developers.cloudflare.com/stream/stream-live/watch-live-stream/index.md#view-by-live-input-id-or-video-id) | - Network accessline 10
| Find and replay recorded broadcasts | [Replay recordings](https://developers.cloudflare.com/stream/stream-live/replay-recordings/index.md) | - Network accessline 11
| Forward broadcasts to external platforms | [Simulcasting configuration and limits](https://developers.cloudflare.com/stream/stream-live/simulcasting/index.md) | - Network accessline 12
| Receive connection and disconnection notifications | [Live webhooks](https://developers.cloudflare.com/stream/stream-live/webhooks/index.md) | - Network accessline 13
| Publish and play using WHIP/WHEP | [WebRTC requirements and endpoints](https://developers.cloudflare.com/stream/webrtc-beta/index.md) and [browser integration](https://developers.cloudflare.com/stream/examples/browser-based-webrtc/index.m - Network accessline 14
| Diagnose encoder, buffering, or latency problems | [Live troubleshooting](https://developers.cloudflare.com/stream/stream-live/troubleshooting/index.md) | - Network accessline 16
Keep publishing credentials separate from viewer playback data. Decide whether the application stores a reusable live input, individual recording IDs, or both. Route recording processing events through [video webhooks](https://developers.cl
skills/cloudflare/references/stream/api.md
- Network accessline 5
| Task | Read | |---|---| | Issue a one-time upload URL to an end user | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | - Network accessline 6
|---|---| | Issue a one-time upload URL to an end user | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | | Resume uploads or handle unreliable connections | [Resumable up - Network accessline 7
| Issue a one-time upload URL to an end user | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | - Network accessline 8
| Resume uploads or handle unreliable connections | [Resumable uploads and requirements](https://developers.cloudflare.com/stream/uploading-videos/resumable-uploads/index.md) | - Network accessline 9
| Import a video already hosted elsewhere | [Upload via link](https://developers.cloudflare.com/stream/uploading-videos/upload-via-link/index.md) | - Network accessline 10
| Embed an iframe or React player | [Use the Stream Player](https://developers.cloudflare.com/stream/viewing-videos/using-the-stream-player/index.md) | - Network accessline 11
| Use HLS/DASH with an existing player | [Use your own player](https://developers.cloudflare.com/stream/viewing-videos/using-own-player/index.md) | | Issue playback tokens | [Signed URLs and token-generation choices](https://developers.clou - Network accessline 12
| Issue playback tokens | [Signed URLs and token-generation choices](https://developers.cloudflare.com/stream/viewing-videos/securing-your-stream/index.md#three-ways-to-generate-signed-tokens) | | Generate previews or downloadable files | [ - Network accessline 13
| Generate previews or downloadable files | [Thumbnails](https://developers.cloudflare.com/stream/viewing-videos/displaying-thumbnails/index.md) and [downloads](https://developers.cloudflare.com/stream/viewing-videos/download-videos/index.m - Network accessline 14
| Upload captions or generate them with Stream | [Add captions](https://developers.cloudflare.com/stream/edit-videos/adding-captions/index.md) | - Network accessline 15
| Apply branding during upload | [Watermarks](https://developers.cloudflare.com/stream/edit-videos/applying-watermarks/index.md) | - Network accessline 16
| Trim an on-demand video | [Video clipping](https://developers.cloudflare.com/stream/edit-videos/video-clipping/index.md) | - Network accessline 17
| List and filter videos through the REST API | [List videos](https://developers.cloudflare.com/api/resources/stream/methods/list/index.md) | - Network accessline 18
| Manage videos from a Worker | [Stream binding methods](https://developers.cloudflare.com/stream/manage-video-library/bindings/index.md#methods) | - Network accessline 19
| React to encoding success or failure | [Video webhooks](https://developers.cloudflare.com/stream/manage-video-library/using-webhooks/index.md) |
skills/cloudflare/references/stream/configuration.md
- Network accessline 5
| Task | Read | |---|---| | Configure Stream in a Worker and use its binding | [Stream binding setup](https://developers.cloudflare.com/stream/manage-video-library/bindings/index.md#setup) | - Network accessline 6
|---|---| | Configure Stream in a Worker and use its binding | [Stream binding setup](https://developers.cloudflare.com/stream/manage-video-library/bindings/index.md#setup) | | Set creator upload constraints and metadata | [Direct creator u - Network accessline 7
| Configure Stream in a Worker and use its binding | [Stream binding setup](https://developers.cloudflare.com/stream/manage-video-library/bindings/index.md#setup) | - Network accessline 8
| Set creator upload constraints and metadata | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | - Network accessline 9
| Choose a token endpoint, Worker binding, or signing key | [Token-generation choices](https://developers.cloudflare.com/stream/viewing-videos/securing-your-stream/index.md#three-ways-to-generate-signed-tokens) | - Network accessline 10
| Require private playback or apply token restrictions | [Secure your Stream](https://developers.cloudflare.com/stream/viewing-videos/securing-your-stream/index.md) | - Network accessline 11
| Restrict embedding origins | [Allowed origins](https://developers.cloudflare.com/stream/viewing-videos/securing-your-stream/index.md#allowed-origins) | - Network accessline 12
| Configure processing notifications and their secret | [Video webhooks](https://developers.cloudflare.com/stream/manage-video-library/using-webhooks/index.md) | - Network accessline 13
| Configure live recording or external destinations | [Live inputs](https://developers.cloudflare.com/stream/stream-live/start-stream-live/index.md) and [simulcasting](https://developers.cloudflare.com/stream/stream-live/simulcasting/index. - Network accessline 14
| Choose player configuration or framework integration | [Stream Player](https://developers.cloudflare.com/stream/viewing-videos/using-the-stream-player/index.md) |
skills/cloudflare/references/stream/gotchas.md
- Network accessline 5
| Symptom or check | Read | |---|---| | Unsupported file or upload constraint failure | [Supported formats and upload requirements](https://developers.cloudflare.com/stream/uploading-videos/index.md) | - Network accessline 6
|---|---| | Unsupported file or upload constraint failure | [Supported formats and upload requirements](https://developers.cloudflare.com/stream/uploading-videos/index.md) | | Large upload fails or restarts after interruption | [Resumable u - Network accessline 7
| Unsupported file or upload constraint failure | [Supported formats and upload requirements](https://developers.cloudflare.com/stream/uploading-videos/index.md) | | Large upload fails or restarts after interruption | [Resumable upload requ - Network accessline 8
| Large upload fails or restarts after interruption | [Resumable upload requirements](https://developers.cloudflare.com/stream/uploading-videos/resumable-uploads/index.md#requirements) | | Stream cannot fetch an imported video | [Upload via - Network accessline 9
| Stream cannot fetch an imported video | [Upload via link requirements](https://developers.cloudflare.com/stream/uploading-videos/upload-via-link/index.md) | - Network accessline 10
| Upload finished but video is not playable | [Upload progress tracking](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md#track-upload-progress) and [processing error codes](https://developers.cloudf - Network accessline 11
| Private playback or embedding fails | [Signed tokens, restrictions, and allowed origins](https://developers.cloudflare.com/stream/viewing-videos/securing-your-stream/index.md) | - Network accessline 12
| Webhook signature verification fails | [Verify the raw body and signature](https://developers.cloudflare.com/stream/manage-video-library/using-webhooks/index.md#verify-webhook-authenticity) | - Network accessline 13
| A custom HLS/DASH player behaves incorrectly | [Own-player integration and manifest handling](https://developers.cloudflare.com/stream/viewing-videos/using-own-player/index.md) | - Network accessline 14
| Live stream will not connect or playback buffers | [Live troubleshooting](https://developers.cloudflare.com/stream/stream-live/troubleshooting/index.md) | - Network accessline 15
| Simulcast output does not behave as expected | [Output configuration and limits](https://developers.cloudflare.com/stream/stream-live/simulcasting/index.md) | - Network accessline 16
| Estimate storage or delivery costs | [Stream pricing](https://developers.cloudflare.com/stream/pricing/index.md) |
skills/cloudflare/references/stream/patterns.md
- Network accessline 5
| Workflow | Read | |---|---| | Browser uploads through a server-issued URL | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | - Network accessline 6
|---|---| | Browser uploads through a server-issued URL | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | | Large or interruption-prone uploads | [Resumable uploads](http - Network accessline 7
| Browser uploads through a server-issued URL | [Direct creator uploads](https://developers.cloudflare.com/stream/uploading-videos/direct-creator-uploads/index.md) | - Network accessline 8
| Large or interruption-prone uploads | [Resumable uploads](https://developers.cloudflare.com/stream/uploading-videos/resumable-uploads/index.md) | - Network accessline 9
| Update application state when processing completes | [Video webhooks](https://developers.cloudflare.com/stream/manage-video-library/using-webhooks/index.md) and [upload progress tracking](https://developers.cloudflare.com/stream/uploading - Network accessline 10
| Verify an incoming processing notification | [Webhook authenticity](https://developers.cloudflare.com/stream/manage-video-library/using-webhooks/index.md#verify-webhook-authenticity) | - Network accessline 11
| Embed playback in a React application | [Stream Player and framework integrations](https://developers.cloudflare.com/stream/viewing-videos/using-the-stream-player/index.md) | - Network accessline 12
| Serve private videos | [Signed playback and signing examples](https://developers.cloudflare.com/stream/viewing-videos/securing-your-stream/index.md) | - Network accessline 13
| Broadcast from a browser | [Browser-based WebRTC](https://developers.cloudflare.com/stream/examples/browser-based-webrtc/index.md) |
skills/cloudflare/references/tail-workers/README.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Decide whether custom processing is needed | [Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md) | - Network accessline 6
| --- | --- | | Decide whether custom processing is needed | [Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md) | | Export logs and traces to an observability destination | [OpenTelemetry expo - Network accessline 7
| Decide whether custom processing is needed | [Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md) | - Network accessline 8
| Export logs and traces to an observability destination | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) | - Network accessline 9
| Inspect a deployment interactively | [Real-time logs](https://developers.cloudflare.com/workers/observability/logs/real-time-logs/index.md) | - Network accessline 10
| Implement the consumer | [Tail handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md) |
skills/cloudflare/references/tail-workers/api.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Implement the handler and understand asynchronous processing | [Tail handler syntax](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md#syntax) | - Network accessline 6
| --- | --- | | Implement the handler and understand asynchronous processing | [Tail handler syntax](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md#syntax) | | Interpret execution outcomes, logs, exceptions, a - Network accessline 7
| Implement the handler and understand asynchronous processing | [Tail handler syntax](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md#syntax) | - Network accessline 8
| Interpret execution outcomes, logs, exceptions, and timestamps | [Tail handler event reference](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md) | - Network accessline 9
| Inspect request fields and redaction behavior | [TailRequest](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md#tailrequest) | - Network accessline 10
| Interpret events from dynamic dispatch and user Workers | [Handler parameters](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md#parameters) | - Network accessline 11
| Write aggregated metrics | [Analytics Engine from Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md#use-analytics-engine-for-aggregated-metrics) |
skills/cloudflare/references/tail-workers/configuration.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Connect a producer to a Tail Worker | [Configure Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md#configure-tail-workers) | - Network accessline 6
| --- | --- | | Connect a producer to a Tail Worker | [Configure Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md#configure-tail-workers) | | Configure environments and resource bindings | [Wr - Network accessline 7
| Connect a producer to a Tail Worker | [Configure Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md#configure-tail-workers) | - Network accessline 8
| Configure environments and resource bindings | [Wrangler configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md) | - Network accessline 9
| Configure destination credentials | [Secrets](https://developers.cloudflare.com/workers/configuration/secrets/index.md) | - Network accessline 10
| Use built-in telemetry destinations instead | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) | - Network accessline 11
| Check availability and billing model | [Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md) | - Network accessline 12
| Check runtime capacity | [Workers limits](https://developers.cloudflare.com/workers/platform/limits/index.md) | - Network accessline 13
| Check the handler required by the consumer | [Tail handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md) |
skills/cloudflare/references/tail-workers/gotchas.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Consumer receives no events or producer setup fails | [Configure Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md#configure-tail-workers) | - Network accessline 6
| --- | --- | | Consumer receives no events or producer setup fails | [Configure Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md#configure-tail-workers) | | Async processing or event interpre - Network accessline 7
| Consumer receives no events or producer setup fails | [Configure Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md#configure-tail-workers) | - Network accessline 8
| Async processing or event interpretation is incorrect | [Tail handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md) | - Network accessline 9
| Filters confuse HTTP responses with execution failures | [TailItems](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md#tailitems) | - Network accessline 10
| Request data is missing or unexpectedly retained | [TailRequest](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md#tailrequest) | - Network accessline 11
| Inspect producer and consumer execution | [Real-time logs](https://developers.cloudflare.com/workers/observability/logs/real-time-logs/index.md) | - Network accessline 12
| Reconsider a custom exporter at higher volume | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) |
skills/cloudflare/references/tail-workers/patterns.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Export supported telemetry without a custom consumer | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) | - Network accessline 6
| --- | --- | | Export supported telemetry without a custom consumer | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) | | Process and forward custom execution events | [Tail Workers](ht - Network accessline 7
| Export supported telemetry without a custom consumer | [OpenTelemetry export](https://developers.cloudflare.com/observability/export/opentelemetry/index.md) | - Network accessline 8
| Process and forward custom execution events | [Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md) | - Network accessline 9
| Aggregate metrics rather than retain individual events | [Analytics Engine from Tail Workers](https://developers.cloudflare.com/workers/observability/logs/tail-workers/index.md#use-analytics-engine-for-aggregated-metrics) | - Network accessline 10
| Choose filters based on execution and request fields | [Tail handler](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md) | - Network accessline 11
| Review sensitive request data handling | [TailRequest](https://developers.cloudflare.com/workers/runtime-apis/handlers/tail/index.md#tailrequest) |
skills/cloudflare/references/tunnel/README.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Create a remotely-managed tunnel or a temporary development tunnel | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | - Network accessline 6
| --- | --- | | Create a remotely-managed tunnel or a temporary development tunnel | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | | Maintain a tunnel managed through local files | [Create a locally-managed tunnel - Network accessline 7
| Create a remotely-managed tunnel or a temporary development tunnel | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | - Network accessline 8
| Maintain a tunnel managed through local files | [Create a locally-managed tunnel](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/create-local-tunnel/index.md) | - Network accessline 9
| Publish an application and check protocol requirements | [Routing](https://developers.cloudflare.com/tunnel/concepts/routing/index.md) | - Network accessline 10
| Choose private networking, Workers VPC, or Access integration | [Integrations](https://developers.cloudflare.com/tunnel/integrations/index.md) |
skills/cloudflare/references/tunnel/api.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Create a tunnel, configure ingress, and create application DNS through the API | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | - Network accessline 6
| --- | --- | | Create a tunnel, configure ingress, and create application DNS through the API | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | | List existing tunnels and inspect response fields | [List Cloudflare - Network accessline 7
| Create a tunnel, configure ingress, and create application DNS through the API | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | - Network accessline 8
| List existing tunnels and inspect response fields | [List Cloudflare Tunnels API](https://developers.cloudflare.com/api/resources/zero_trust/subresources/tunnels/subresources/cloudflared/methods/list/index.md) | - Network accessline 9
| Retrieve and rotate tunnel tokens | [Tunnel tokens](https://developers.cloudflare.com/tunnel/reference/tunnel-tokens/index.md) | - Network accessline 10
| Manage local tunnels using the CLI | [Useful commands](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/tunnel-useful-commands/index.md) | - Network accessline 11
| Configure public DNS and routing behavior | [Routing](https://developers.cloudflare.com/tunnel/concepts/routing/index.md) | - Network accessline 12
| Select private-network integration and its setup guide | [Integrations](https://developers.cloudflare.com/tunnel/integrations/index.md) |
skills/cloudflare/references/tunnel/configuration.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Configure remotely-managed tunnels | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | - Network accessline 6
| --- | --- | | Configure remotely-managed tunnels | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | | Edit local ingress rules, service mappings, and validate matching | [Configuration file](https://developers.clou - Network accessline 7
| Configure remotely-managed tunnels | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | - Network accessline 8
| Edit local ingress rules, service mappings, and validate matching | [Configuration file](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/configuration-file/index.md) | - Network accessline 9
| Configure origin TLS, HTTP, and connection behavior | [Origin parameters](https://developers.cloudflare.com/tunnel/reference/origin-parameters/index.md) | - Network accessline 10
| Configure runtime flags and service arguments | [Run parameters](https://developers.cloudflare.com/tunnel/reference/run-parameters/index.md) | - Network accessline 11
| Manage remote tunnel tokens and rotation | [Tunnel tokens](https://developers.cloudflare.com/tunnel/reference/tunnel-tokens/index.md) | - Network accessline 12
| Choose service protocols and DNS routing | [Routing](https://developers.cloudflare.com/tunnel/concepts/routing/index.md) |
skills/cloudflare/references/tunnel/gotchas.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Tunnel fails to connect or reports an error | [Troubleshooting](https://developers.cloudflare.com/tunnel/troubleshooting/index.md) | - Network accessline 6
| --- | --- | | Tunnel fails to connect or reports an error | [Troubleshooting](https://developers.cloudflare.com/tunnel/troubleshooting/index.md) | | Tunnel is healthy but an HTTPS application fails or redirects | [HTTPS origins](https://d - Network accessline 7
| Tunnel fails to connect or reports an error | [Troubleshooting](https://developers.cloudflare.com/tunnel/troubleshooting/index.md) | - Network accessline 8
| Tunnel is healthy but an HTTPS application fails or redirects | [HTTPS origins](https://developers.cloudflare.com/tunnel/troubleshooting/https-origins/index.md) | - Network accessline 9
| Inspect connection health and application diagnostics | [Monitoring](https://developers.cloudflare.com/tunnel/observability/index.md) | - Network accessline 10
| Check local configuration and rule matching | [Configuration file](https://developers.cloudflare.com/tunnel/features/locally-managed-tunnels/configuration-file/index.md) | - Network accessline 11
| Connections behave unexpectedly after token rotation | [Tunnel tokens](https://developers.cloudflare.com/tunnel/reference/tunnel-tokens/index.md) | - Network accessline 12
| Check replica capacity or firewall requirements | [Configuration](https://developers.cloudflare.com/tunnel/configuration/index.md) | - Network accessline 13
| Update an existing installation | [Update cloudflared](https://developers.cloudflare.com/tunnel/guides/update-cloudflared/index.md) |
skills/cloudflare/references/tunnel/networking.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Determine required egress ports and destinations | [Firewall rules](https://developers.cloudflare.com/tunnel/configuration/index.md#firewall-rules) | - Network accessline 6
| --- | --- | | Determine required egress ports and destinations | [Firewall rules](https://developers.cloudflare.com/tunnel/configuration/index.md#firewall-rules) | | Diagnose DNS, QUIC, or TCP connectivity | [Connection errors](https://de - Network accessline 7
| Determine required egress ports and destinations | [Firewall rules](https://developers.cloudflare.com/tunnel/configuration/index.md#firewall-rules) | - Network accessline 8
| Diagnose DNS, QUIC, or TCP connectivity | [Connection errors](https://developers.cloudflare.com/tunnel/troubleshooting/index.md#connection-errors) | - Network accessline 9
| Configure transport and runtime options | [Run parameters](https://developers.cloudflare.com/tunnel/reference/run-parameters/index.md) | - Network accessline 10
| Check service protocols and client requirements | [Routing](https://developers.cloudflare.com/tunnel/concepts/routing/index.md) | - Network accessline 11
| Set up private-network access with Cloudflare One | [Connect private networks with cloudflared](https://developers.cloudflare.com/cloudflare-one/networks/connectors/cloudflare-tunnel/private-net/cloudflared/index.md) | - Network accessline 12
| Inspect tunnel health, logs, and metrics | [Monitoring](https://developers.cloudflare.com/tunnel/observability/index.md) |
skills/cloudflare/references/tunnel/patterns.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Install a remotely-managed tunnel on a host or in Docker | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | - Network accessline 6
| --- | --- | | Install a remotely-managed tunnel on a host or in Docker | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | | Deploy cloudflared inside a cluster | [Kubernetes](https://developers.cloudflare.com/tunne - Network accessline 7
| Install a remotely-managed tunnel on a host or in Docker | [Setup](https://developers.cloudflare.com/tunnel/get-started/index.md) | - Network accessline 8
| Deploy cloudflared inside a cluster | [Kubernetes](https://developers.cloudflare.com/tunnel/guides/kubernetes/index.md) | - Network accessline 9
| Manage tunnel infrastructure declaratively | [Terraform](https://developers.cloudflare.com/tunnel/guides/terraform/index.md) | - Network accessline 10
| Deploy replicas and check current capacity | [Replicas and high availability](https://developers.cloudflare.com/tunnel/configuration/index.md#replicas-and-high-availability) | - Network accessline 11
| Choose redundancy or explicit traffic steering | [Routing](https://developers.cloudflare.com/tunnel/concepts/routing/index.md) | - Network accessline 12
| Plan upgrades for the existing installation method | [Update cloudflared](https://developers.cloudflare.com/tunnel/guides/update-cloudflared/index.md) | - Network accessline 13
| Add authentication or private connectivity | [Integrations](https://developers.cloudflare.com/tunnel/integrations/index.md) |
skills/cloudflare/references/vectorize/README.md
- Network accessline 5
Fetch current documentation before implementing. Start with the [Vectorize documentation index](https://developers.cloudflare.com/vectorize/llms.txt) to discover pages; load only those relevant to the task. Treat the docs as the source of t - Network accessline 9
| Task | Read | |------|------| | Create an index and connect a Worker | [Configuration](configuration.md) and [Introduction to Vectorize](https://developers.cloudflare.com/vectorize/get-started/intro/index.md) | - Network accessline 10
|------|------| | Create an index and connect a Worker | [Configuration](configuration.md) and [Introduction to Vectorize](https://developers.cloudflare.com/vectorize/get-started/intro/index.md) | | Insert, update, query, retrieve, or delet - Network accessline 11
| Create an index and connect a Worker | [Configuration](configuration.md) and [Introduction to Vectorize](https://developers.cloudflare.com/vectorize/get-started/intro/index.md) | - Network accessline 18
- Use a consistent embedding model and preprocessing for stored vectors and queries. Matching dimensions alone does not make different models' embeddings compatible. - Choose dimensions from the embedding output and a distance metric approp - Network accessline 19
- Choose dimensions from the embedding output and a distance metric appropriate to that model. Changing either requires a new index; check [index configuration and scoring semantics](https://developers.cloudflare.com/vectorize/best-practice - Network accessline 20
- Plan filterable metadata before ingestion. Adding an index later requires re-upserting existing vectors to index that metadata; see [metadata filtering](https://developers.cloudflare.com/vectorize/reference/metadata-filtering/index.md). - Network accessline 22
- Design for asynchronous mutation visibility rather than assuming a completed write is already searchable. See [mutation semantics](https://developers.cloudflare.com/vectorize/reference/client-api/index.md).
skills/cloudflare/references/vectorize/api.md
- Network accessline 3
Fetch the relevant section of the [Workers binding API](https://developers.cloudflare.com/vectorize/reference/client-api/index.md) before writing calls or types. - Network accessline 5
| Task | Current documentation | |------|-----------------------| | Vector shape, binding, and generated TypeScript types | [Vectorize API](https://developers.cloudflare.com/vectorize/reference/client-api/index.md) | - Network accessline 6
|------|-----------------------| | Vector shape, binding, and generated TypeScript types | [Vectorize API](https://developers.cloudflare.com/vectorize/reference/client-api/index.md) | | Insert, upsert, retrieve by ID, delete, or inspect an - Network accessline 7
| Vector shape, binding, and generated TypeScript types | [Vectorize API](https://developers.cloudflare.com/vectorize/reference/client-api/index.md) | - Network accessline 8
| Insert, upsert, retrieve by ID, delete, or inspect an index | [Operations](https://developers.cloudflare.com/vectorize/reference/client-api/index.md#operations) | - Network accessline 9
| Query by vector or ID; choose returned metadata, values, and scoring precision | [Query vectors](https://developers.cloudflare.com/vectorize/best-practices/query-vectors/index.md) and [query options](https://developers.cloudflare.com/vect - Network accessline 10
| Filter by metadata, combine conditions, or use nested properties | [Metadata filtering](https://developers.cloudflare.com/vectorize/reference/metadata-filtering/index.md) | - Network accessline 11
| Batch ingestion and select vector formats | [Insert vectors](https://developers.cloudflare.com/vectorize/best-practices/insert-vectors/index.md) and [current limits](https://developers.cloudflare.com/vectorize/platform/limits/index.md) | - Network accessline 12
| Manage indexes or vectors outside a Worker | [Wrangler commands](https://developers.cloudflare.com/vectorize/reference/wrangler-commands/index.md) and [REST API](https://developers.cloudflare.com/api/resources/vectorize/subresources/index
skills/cloudflare/references/vectorize/configuration.md
- Network accessline 3
| Task | Current documentation | |------|-----------------------| | Create an index, choose dimensions and metric | [Create indexes](https://developers.cloudflare.com/vectorize/best-practices/create-indexes/index.md) | - Network accessline 4
|------|-----------------------| | Create an index, choose dimensions and metric | [Create indexes](https://developers.cloudflare.com/vectorize/best-practices/create-indexes/index.md) | | Bind an index to a Worker, develop, deploy, and veri - Network accessline 5
| Create an index, choose dimensions and metric | [Create indexes](https://developers.cloudflare.com/vectorize/best-practices/create-indexes/index.md) | - Network accessline 6
| Bind an index to a Worker, develop, deploy, and verify queries | [Introduction to Vectorize](https://developers.cloudflare.com/vectorize/get-started/intro/index.md) | - Network accessline 7
| Configure bindings and generate types | [Binding and TypeScript guidance](https://developers.cloudflare.com/vectorize/reference/client-api/index.md#binding-to-a-worker) | - Network accessline 8
| Create, list, or delete metadata indexes | [Metadata filtering](https://developers.cloudflare.com/vectorize/reference/metadata-filtering/index.md) and [Wrangler commands](https://developers.cloudflare.com/vectorize/reference/wrangler-comm - Network accessline 9
| Manage indexes and vectors through the CLI | [Wrangler commands](https://developers.cloudflare.com/vectorize/reference/wrangler-commands/index.md) | - Network accessline 10
| Upload NDJSON and batch ingestion | [Insert vectors](https://developers.cloudflare.com/vectorize/best-practices/insert-vectors/index.md) | - Network accessline 11
| Check capacity, payload, namespace, or batch constraints | [Limits](https://developers.cloudflare.com/vectorize/platform/limits/index.md) | - Network accessline 19
Choose metadata granularity around actual queries. For range filters over high-cardinality fields, consider buckets that preserve the application's required precision; do not bucket identifiers used for exact matches. Fetch the [cardinality
skills/cloudflare/references/vectorize/gotchas.md
- Network accessline 5
| Symptom or decision | What to check | Current documentation | |---------------------|---------------|-----------------------| | A write succeeded but search has not changed | Mutations are asynchronous; acceptance does not guarantee query - Network accessline 6
|---------------------|---------------|-----------------------| | A write succeeded but search has not changed | Mutations are asynchronous; acceptance does not guarantee query visibility | [Insert, upsert, and delete semantics](https://dev - Network accessline 7
| A write succeeded but search has not changed | Mutations are asynchronous; acceptance does not guarantee query visibility | [Insert, upsert, and delete semantics](https://developers.cloudflare.com/vectorize/reference/client-api/index.md#o - Network accessline 8
| Ingestion is slow or a batch is rejected | Batch size depends on the interface; inspect throughput and payload constraints | [Write throughput](https://developers.cloudflare.com/vectorize/best-practices/insert-vectors/index.md#improve-wri - Network accessline 9
| Query count is rejected or metadata is incomplete | Returned values and metadata affect query limits; indexed metadata can be truncated | [Query options](https://developers.cloudflare.com/vectorize/reference/client-api/index.md#query-vect - Network accessline 10
| Metadata filters return no matches | Confirm field type, operators, nesting, and index creation; re-upsert data written before the metadata index existed | [Metadata filtering](https://developers.cloudflare.com/vectorize/reference/metadat - Network accessline 11
| Query has no matches or poor relevance | Check embedding model and dimensions, metric, namespace, filters, and mutation visibility | [Query vectors](https://developers.cloudflare.com/vectorize/best-practices/query-vectors/index.md) and [i - Network accessline 12
| Existing IDs or metadata behave unexpectedly on update | Insert preserves existing IDs; upsert replaces the full vector and metadata | [Mutation semantics](https://developers.cloudflare.com/vectorize/reference/client-api/index.md#operatio - Network accessline 13
| Capacity or model output no longer fits | Check current limits and model output dimensions; changing dimensions or metric requires another index | [Limits](https://developers.cloudflare.com/vectorize/platform/limits/index.md) and [create
skills/cloudflare/references/vectorize/patterns.md
- Network accessline 3
| Task | Current documentation | |------|-----------------------| | Generate and query Workers AI embeddings | [Vectorize and Workers AI](https://developers.cloudflare.com/vectorize/get-started/embeddings/index.md) | - Network accessline 4
|------|-----------------------| | Generate and query Workers AI embeddings | [Vectorize and Workers AI](https://developers.cloudflare.com/vectorize/get-started/embeddings/index.md) | | Query with embeddings from OpenAI | [OpenAI integratio - Network accessline 5
| Generate and query Workers AI embeddings | [Vectorize and Workers AI](https://developers.cloudflare.com/vectorize/get-started/embeddings/index.md) | - Network accessline 6
| Query with embeddings from OpenAI | [OpenAI integration](https://developers.cloudflare.com/vectorize/best-practices/query-vectors/index.md#openai) | - Network accessline 7
| Choose embedding dimensions and distance metric | [Create indexes](https://developers.cloudflare.com/vectorize/best-practices/create-indexes/index.md) | - Network accessline 8
| Build a retrieval-augmented generation application | [Workers AI RAG tutorial](https://developers.cloudflare.com/workers-ai/guides/tutorials/build-a-retrieval-augmented-generation-ai/index.md) | - Network accessline 9
| Link search results to source documents | [Vector metadata](https://developers.cloudflare.com/vectorize/best-practices/insert-vectors/index.md#metadata) | - Network accessline 10
| Partition vectors by tenant | [Namespaces](https://developers.cloudflare.com/vectorize/best-practices/insert-vectors/index.md#namespaces) and [namespace versus metadata filtering](https://developers.cloudflare.com/vectorize/reference/meta - Network accessline 11
| Combine similarity search with categorical or range filters | [Metadata filtering](https://developers.cloudflare.com/vectorize/reference/metadata-filtering/index.md) | - Network accessline 12
| Ingest or update vectors in batches | [Insert vectors](https://developers.cloudflare.com/vectorize/best-practices/insert-vectors/index.md) and [limits](https://developers.cloudflare.com/vectorize/platform/limits/index.md) |
skills/cloudflare/references/waf/README.md
- Network accessline 5
| Task | Start here | |------|------------| | Choose and enable WAF protections | [Get started](https://developers.cloudflare.com/waf/get-started/index.md) | - Network accessline 6
|------|------------| | Choose and enable WAF protections | [Get started](https://developers.cloudflare.com/waf/get-started/index.md) | | Deploy managed protection | [Managed rules deployment](https://developers.cloudflare.com/waf/managed-r - Network accessline 7
| Choose and enable WAF protections | [Get started](https://developers.cloudflare.com/waf/get-started/index.md) | | Deploy managed protection | [Managed rules deployment](https://developers.cloudflare.com/waf/managed-rules/deploy-api/index. - Network accessline 8
| Deploy managed protection | [Managed rules deployment](https://developers.cloudflare.com/waf/managed-rules/deploy-api/index.md) | | Match application-specific requests | [Custom rules](https://developers.cloudflare.com/waf/custom-rules/cr - Network accessline 9
| Match application-specific requests | [Custom rules](https://developers.cloudflare.com/waf/custom-rules/create-api/index.md) | - Network accessline 10
| Limit request volume | [Rate limiting](https://developers.cloudflare.com/waf/rate-limiting-rules/create-api/index.md) | | Understand score-based detection | [Attack score](https://developers.cloudflare.com/waf/detections/attack-score/inde - Network accessline 11
| Understand score-based detection | [Attack score](https://developers.cloudflare.com/waf/detections/attack-score/index.md) | - Network accessline 12
| Diagnose blocked or unmitigated requests | [Managed rules troubleshooting](https://developers.cloudflare.com/waf/managed-rules/troubleshooting/index.md) |
skills/cloudflare/references/waf/api.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Inspect the entry point and add custom rules | [Create a custom rule via API](https://developers.cloudflare.com/waf/custom-rules/create-api/index.md) | - Network accessline 6
|------|---------------| | Inspect the entry point and add custom rules | [Create a custom rule via API](https://developers.cloudflare.com/waf/custom-rules/create-api/index.md) | | Discover managed rulesets and deploy them | [Deploy managed - Network accessline 7
| Inspect the entry point and add custom rules | [Create a custom rule via API](https://developers.cloudflare.com/waf/custom-rules/create-api/index.md) | - Network accessline 8
| Discover managed rulesets and deploy them | [Deploy managed rules via API](https://developers.cloudflare.com/waf/managed-rules/deploy-api/index.md) | - Network accessline 9
| Create rate limits with the current request schema | [Create a rate limiting rule via API](https://developers.cloudflare.com/waf/rate-limiting-rules/create-api/index.md) | - Network accessline 10
| Select counting characteristics, expressions, periods, and mitigation behavior | [Rate limiting parameters](https://developers.cloudflare.com/waf/rate-limiting-rules/parameters/index.md) | - Network accessline 11
| Replace a ruleset deliberately or choose an additive operation | [Update or deploy a ruleset](https://developers.cloudflare.com/ruleset-engine/rulesets-api/update/index.md) | - Network accessline 12
| Construct expressions using supported fields, operators, and functions | [Rules language](https://developers.cloudflare.com/ruleset-engine/rules-language/index.md) | - Network accessline 13
| Choose actions and understand terminating behavior | [Actions reference](https://developers.cloudflare.com/ruleset-engine/rules-language/actions/index.md) | - Network accessline 14
| Override managed rules, tags, or a ruleset | [Managed ruleset overrides](https://developers.cloudflare.com/ruleset-engine/managed-rulesets/override-managed-ruleset/index.md) | - Network accessline 15
| Choose exactly what a skip rule bypasses | [Skip options](https://developers.cloudflare.com/waf/custom-rules/skip/options/index.md) |
skills/cloudflare/references/waf/configuration.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Enable protections and configure them in the dashboard | [WAF get started](https://developers.cloudflare.com/waf/get-started/index.md) | - Network accessline 6
|------|---------------| | Enable protections and configure them in the dashboard | [WAF get started](https://developers.cloudflare.com/waf/get-started/index.md) | | Configure custom rules through the API or SDK | [Custom rules API workflow - Network accessline 7
| Enable protections and configure them in the dashboard | [WAF get started](https://developers.cloudflare.com/waf/get-started/index.md) | - Network accessline 8
| Configure custom rules through the API or SDK | [Custom rules API workflow](https://developers.cloudflare.com/waf/custom-rules/create-api/index.md) | - Network accessline 9
| Configure managed rules through the API or SDK | [Managed rules API workflow](https://developers.cloudflare.com/waf/managed-rules/deploy-api/index.md) | - Network accessline 10
| Configure rate limiting through the API or SDK | [Rate limiting API workflow](https://developers.cloudflare.com/waf/rate-limiting-rules/create-api/index.md) | - Network accessline 11
| Manage custom rules with Terraform | [Custom rules Terraform guide](https://developers.cloudflare.com/terraform/additional-configurations/waf-custom-rules/index.md) | - Network accessline 12
| Manage managed rulesets with Terraform | [Managed rules Terraform guide](https://developers.cloudflare.com/terraform/additional-configurations/waf-managed-rulesets/index.md) | - Network accessline 13
| Manage rate limits with Terraform | [Rate limiting Terraform guide](https://developers.cloudflare.com/terraform/additional-configurations/rate-limiting-rules/index.md) | - Network accessline 14
| Decide account versus zone placement and phase | [WAF phases](https://developers.cloudflare.com/waf/reference/phases/index.md) |
skills/cloudflare/references/waf/gotchas.md
- Network accessline 5
| Symptom or decision | Documentation to read | |---------------------|-----------------------| | A rule executes earlier or later than expected | [WAF phases and account/zone order](https://developers.cloudflare.com/waf/reference/phases/in - Network accessline 6
|---------------------|-----------------------| | A rule executes earlier or later than expected | [WAF phases and account/zone order](https://developers.cloudflare.com/waf/reference/phases/index.md) and [terminating actions](https://develo - Network accessline 7
| A rule executes earlier or later than expected | [WAF phases and account/zone order](https://developers.cloudflare.com/waf/reference/phases/index.md) and [terminating actions](https://developers.cloudflare.com/ruleset-engine/rules-languag - Network accessline 8
| A skip rule leaves a protection active | [Skip scope, phases, products, and logging](https://developers.cloudflare.com/waf/custom-rules/skip/options/index.md) | - Network accessline 9
| Updating a ruleset removes unrelated rules | [Ruleset replacement semantics](https://developers.cloudflare.com/ruleset-engine/rulesets-api/update/index.md) | - Network accessline 10
| An expression fails to parse | [Rules language elements](https://developers.cloudflare.com/ruleset-engine/rules-language/index.md) | - Network accessline 11
| Score-based rules match unexpected traffic | [Attack score meaning, special values, and plan availability](https://developers.cloudflare.com/waf/detections/attack-score/index.md) | - Network accessline 12
| Managed overrides conflict | [Override precedence and scope](https://developers.cloudflare.com/ruleset-engine/managed-rulesets/override-managed-ruleset/index.md) | | Legitimate traffic is blocked, or attacks reach the origin | [False-posi - Network accessline 13
| Legitimate traffic is blocked, or attacks reach the origin | [False-positive and false-negative investigation](https://developers.cloudflare.com/waf/managed-rules/troubleshooting/index.md) | | Rate limits affect shared-IP users or count u - Network accessline 14
| Rate limits affect shared-IP users or count unexpected requests | [Characteristics, NAT support, and counting expressions](https://developers.cloudflare.com/waf/rate-limiting-rules/parameters/index.md) | - Network accessline 15
| API creation fails or the request body is unclear | [Custom rule creation](https://developers.cloudflare.com/waf/custom-rules/create-api/index.md), [managed deployment](https://developers.cloudflare.com/waf/managed-rules/deploy-api/index.
skills/cloudflare/references/waf/patterns.md
- Network accessline 5
| Outcome | Documentation | |---------|---------------| | Apply managed protection to a zone | [Deploy managed rules](https://developers.cloudflare.com/waf/managed-rules/deploy-api/index.md) | - Network accessline 6
|---------|---------------| | Apply managed protection to a zone | [Deploy managed rules](https://developers.cloudflare.com/waf/managed-rules/deploy-api/index.md) | | Change a managed rule's behavior or evaluate it with logging | [Override - Network accessline 7
| Apply managed protection to a zone | [Deploy managed rules](https://developers.cloudflare.com/waf/managed-rules/deploy-api/index.md) | - Network accessline 8
| Change a managed rule's behavior or evaluate it with logging | [Override a managed ruleset](https://developers.cloudflare.com/ruleset-engine/managed-rulesets/override-managed-ruleset/index.md) | - Network accessline 9
| Enforce an application-specific request policy | [Create a custom rule](https://developers.cloudflare.com/waf/custom-rules/create-api/index.md) | | Use attack detection in a request policy | [Attack score semantics and availability](https - Network accessline 10
| Use attack detection in a request policy | [Attack score semantics and availability](https://developers.cloudflare.com/waf/detections/attack-score/index.md) | | Protect a login or API endpoint from excessive requests | [Rate limiting API - Network accessline 11
| Protect a login or API endpoint from excessive requests | [Rate limiting API examples](https://developers.cloudflare.com/waf/rate-limiting-rules/create-api/index.md) and [counting parameters](https://developers.cloudflare.com/waf/rate-lim - Network accessline 12
| Exempt narrowly identified traffic from selected protections | [Available skip options](https://developers.cloudflare.com/waf/custom-rules/skip/options/index.md) | - Network accessline 13
| Adjust protection after a false positive | [Managed rules troubleshooting](https://developers.cloudflare.com/waf/managed-rules/troubleshooting/index.md) | - Network accessline 15
For a false positive, identify the matching rule and request scope before choosing an exception or override. Keep the adjustment as narrow as the evidence supports. For combined protections, check [WAF phases](https://developers.cloudflare.
skills/cloudflare/references/workers-ai/README.md
- Network accessline 7
Start with the [model catalog](https://developers.cloudflare.com/workers-ai/models/index.md) and open the selected model's page for its exact identifier, input/output schema, context window, and supported features. Compare candidates on the - Network accessline 18
If a topic is missing, use the [Workers AI documentation index](https://developers.cloudflare.com/workers-ai/llms.txt) to find its current page. - Network accessline 22
- [Vectorize](../vectorize/): vector storage and retrieval. - [AI Gateway](../ai-gateway/): inference analytics, caching, and request controls. - [Workers](https://developers.cloudflare.com/workers/index.md): runtime and application hosting - Network accessline 24
- [Workers](https://developers.cloudflare.com/workers/index.md): runtime and application hosting.
skills/cloudflare/references/workers-ai/api.md
- Network accessline 3
Fetch the selected model's page from the [model catalog](https://developers.cloudflare.com/workers-ai/models/index.md) for request fields, output format, dimensions, and examples. Text, embeddings, images, audio, and translation do not shar - Network accessline 5
| Task | Documentation | |------|---------------| | Invoke inference through a Worker binding | [Workers bindings](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md) | - Network accessline 6
|------|---------------| | Invoke inference through a Worker binding | [Workers bindings](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md) | | Invoke inference over HTTP | [REST API reference](https://developers - Network accessline 7
| Invoke inference through a Worker binding | [Workers bindings](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md) | - Network accessline 8
| Invoke inference over HTTP | [REST API reference](https://developers.cloudflare.com/api/resources/ai/methods/run/index.md) | - Network accessline 9
| Stream text or use SDK abstractions | [Vercel AI SDK](https://developers.cloudflare.com/workers-ai/configuration/ai-sdk/index.md), or the selected model's streaming example | - Network accessline 10
| Define tools and handle tool results | [Function calling](https://developers.cloudflare.com/workers-ai/features/function-calling/index.md) | - Network accessline 11
| Request structured output | [JSON mode](https://developers.cloudflare.com/workers-ai/features/json-mode/index.md) |
skills/cloudflare/references/workers-ai/configuration.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Create and develop a Worker with Workers AI | [Workers and Wrangler setup](https://developers.cloudflare.com/workers-ai/get-started/workers-wrangler/index.md) | - Network accessline 6
|------|---------------| | Create and develop a Worker with Workers AI | [Workers and Wrangler setup](https://developers.cloudflare.com/workers-ai/get-started/workers-wrangler/index.md) | | Add an AI binding to an existing Worker | [Workers - Network accessline 7
| Create and develop a Worker with Workers AI | [Workers and Wrangler setup](https://developers.cloudflare.com/workers-ai/get-started/workers-wrangler/index.md) | - Network accessline 8
| Add an AI binding to an existing Worker | [Workers bindings](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md) | - Network accessline 9
| Generate environment and runtime types | [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 10
| Call inference from outside Workers | [REST API setup and authentication](https://developers.cloudflare.com/workers-ai/get-started/rest-api/index.md) | - Network accessline 11
| Use the Vercel AI SDK | [AI SDK integration](https://developers.cloudflare.com/workers-ai/configuration/ai-sdk/index.md) | - Network accessline 12
| Adapt an existing OpenAI SDK client | [OpenAI compatible endpoints](https://developers.cloudflare.com/workers-ai/configuration/open-ai-compatibility/index.md) |
skills/cloudflare/references/workers-ai/gotchas.md
- Network accessline 5
| Symptom or decision | Documentation and checks | |---------------------|--------------------------| | Missing binding or types | [Binding configuration](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md) and [Wo - Network accessline 6
|---------------------|--------------------------| | Missing binding or types | [Binding configuration](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md) and [Workers TypeScript](https://developers.cloudflare.com - Network accessline 7
| Missing binding or types | [Binding configuration](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md) and [Workers TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md); check the - Network accessline 8
| Development inference fails | [Workers and Wrangler setup](https://developers.cloudflare.com/workers-ai/get-started/workers-wrangler/index.md); check account access and binding setup | - Network accessline 9
| Unknown model, invalid input, or unexpected response | Open the exact model in the [catalog](https://developers.cloudflare.com/workers-ai/models/index.md); check its schema, context window, and feature support | - Network accessline 10
| Inference error or retry decision | [Error codes and HTTP statuses](https://developers.cloudflare.com/workers-ai/platform/errors/index.md) | - Network accessline 11
| Throttling or concurrency planning | [Current limits](https://developers.cloudflare.com/workers-ai/platform/limits/index.md) | - Network accessline 12
| Usage or cost estimate | [Current pricing](https://developers.cloudflare.com/workers-ai/platform/pricing/index.md); use the selected model's billing units and expected workload | - Network accessline 13
| Old SDK examples fail | [Native binding](https://developers.cloudflare.com/workers-ai/configuration/bindings/index.md), [AI SDK](https://developers.cloudflare.com/workers-ai/configuration/ai-sdk/index.md), or [OpenAI compatibility](https:
skills/cloudflare/references/workers-ai/patterns.md
- Network accessline 5
| Task | Documentation | |------|---------------| | Build retrieval with Workers AI, Vectorize, and document storage | [RAG tutorial](https://developers.cloudflare.com/workers-ai/guides/tutorials/build-a-retrieval-augmented-generation-ai/in - Network accessline 6
|------|---------------| | Build retrieval with Workers AI, Vectorize, and document storage | [RAG tutorial](https://developers.cloudflare.com/workers-ai/guides/tutorials/build-a-retrieval-augmented-generation-ai/index.md) | | Stream respon - Network accessline 7
| Build retrieval with Workers AI, Vectorize, and document storage | [RAG tutorial](https://developers.cloudflare.com/workers-ai/guides/tutorials/build-a-retrieval-augmented-generation-ai/index.md) | - Network accessline 8
| Stream responses or integrate tool calling in an SDK application | [AI SDK integration](https://developers.cloudflare.com/workers-ai/configuration/ai-sdk/index.md) | - Network accessline 9
| Constrain generated JSON | [JSON mode](https://developers.cloudflare.com/workers-ai/features/json-mode/index.md) | - Network accessline 10
| Add caching, retries, or model fallbacks | [Caching](https://developers.cloudflare.com/ai-gateway/features/caching/index.md), [request handling](https://developers.cloudflare.com/ai-gateway/configuration/request-handling/index.md), and [d
skills/cloudflare/references/workflows/README.md
- Network accessline 7
- **Start a project:** [Build your first Workflow](https://developers.cloudflare.com/workflows/get-started/guide/index.md) covers scaffolding, configuration, deployment, and a first instance. - Network accessline 8
- **Design durable execution:** [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md) covers step boundaries, replay, state, and idempotency. - **Implement or manage an instance:** [Workers API] - Network accessline 9
- **Implement or manage an instance:** [Workers API](https://developers.cloudflare.com/workflows/build/workers-api/index.md) covers steps, instance operations, parameters, and return types. - Network accessline 10
- **Check capacity and cost:** fetch [limits](https://developers.cloudflare.com/workflows/reference/limits/index.md) and [pricing](https://developers.cloudflare.com/workflows/reference/pricing/index.md) for the target plan. - Network accessline 21
- [Durable Objects](https://developers.cloudflare.com/durable-objects/index.md) — stateful coordination - Network accessline 23
- [Workers](https://developers.cloudflare.com/workers/index.md) — application entry points that trigger instances
skills/cloudflare/references/workflows/api.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Implement steps; create, batch, inspect, pause, resume, restart, or terminate instances; check parameter and return types | [Workers API](https://developers.cloudflare.com/workflows/build/workers-api - Network accessline 6
| --- | --- | | Implement steps; create, batch, inspect, pause, resume, restart, or terminate instances; check parameter and return types | [Workers API](https://developers.cloudflare.com/workflows/build/workers-api/index.md) | | Access a s - Network accessline 7
| Implement steps; create, batch, inspect, pause, resume, restart, or terminate instances; check parameter and return types | [Workers API](https://developers.cloudflare.com/workflows/build/workers-api/index.md) | - Network accessline 8
| Access a step's name, occurrence, retry attempt, and resolved configuration | [Step context](https://developers.cloudflare.com/workflows/build/step-context/index.md) | - Network accessline 9
| Configure retries, backoff, timeouts, non-retryable failures, or relative/absolute sleeps | [Sleeping and retrying](https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/index.md) | - Network accessline 10
| Pass initial parameters, wait for an external event, or send an event to an instance | [Events and parameters](https://developers.cloudflare.com/workflows/build/events-and-parameters/index.md) | - Network accessline 11
| Start instances from a Worker or another Workflow, or schedule execution | [Trigger Workflows](https://developers.cloudflare.com/workflows/build/trigger-workflows/index.md) | - Network accessline 12
| Trigger and manage instances from the command line | [Wrangler commands](https://developers.cloudflare.com/workflows/reference/wrangler-commands/index.md) | - Network accessline 13
| Manage Workflows over HTTP, including authentication and request bodies | [Workflows REST API](https://developers.cloudflare.com/api/resources/workflows/methods/list/index.md) |
skills/cloudflare/references/workflows/configuration.md
- Network accessline 5
| Task | Documentation | | --- | --- | | Scaffold and deploy a Workflow class with its binding | [Build your first Workflow](https://developers.cloudflare.com/workflows/get-started/guide/index.md) | - Network accessline 6
| --- | --- | | Scaffold and deploy a Workflow class with its binding | [Build your first Workflow](https://developers.cloudflare.com/workflows/get-started/guide/index.md) | | Configure one or more Workflows, including a binding to a Workfl - Network accessline 7
| Scaffold and deploy a Workflow class with its binding | [Build your first Workflow](https://developers.cloudflare.com/workflows/get-started/guide/index.md) | - Network accessline 8
| Configure one or more Workflows, including a binding to a Workflow in another Worker | [Wrangler Workflows configuration](https://developers.cloudflare.com/workers/wrangler/configuration/index.md#workflows) | - Network accessline 9
| Configure storage, AI, and other resources used by steps | [Workers bindings](https://developers.cloudflare.com/workers/runtime-apis/bindings/index.md) | - Network accessline 10
| Choose step retry, backoff, timeout, and sleep behavior | [Sleeping and retrying](https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/index.md) | - Network accessline 11
| Schedule instances or trigger them from another Worker | [Trigger Workflows](https://developers.cloudflare.com/workflows/build/trigger-workflows/index.md) | - Network accessline 12
| Trigger a Workflow from Pages Functions | [Call Workflows from Pages](https://developers.cloudflare.com/workflows/build/call-workflows-from-pages/index.md) | - Network accessline 13
| Develop and inspect instances locally | [Local development](https://developers.cloudflare.com/workflows/build/local-development/index.md) | - Network accessline 14
| Set resource budgets and inspect execution | [Limits](https://developers.cloudflare.com/workflows/reference/limits/index.md) and [metrics and analytics](https://developers.cloudflare.com/workflows/observability/metrics-analytics/index.md)
skills/cloudflare/references/workflows/gotchas.md
- Network accessline 5
| Symptom or question | What to check | | --- | --- | | Step timeout or repeated failure | [Sleeping and retrying](https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/index.md) for per-attempt timeout, retry policy, and - Network accessline 6
| --- | --- | | Step timeout or repeated failure | [Sleeping and retrying](https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/index.md) for per-attempt timeout, retry policy, and non-retryable failures | | CPU exhaustio - Network accessline 7
| Step timeout or repeated failure | [Sleeping and retrying](https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/index.md) for per-attempt timeout, retry policy, and non-retryable failures | - Network accessline 8
| CPU exhaustion despite a short run | [Limits](https://developers.cloudflare.com/workflows/reference/limits/index.md) for active CPU budgets; increasing an elapsed-time timeout does not increase CPU capacity | - Network accessline 9
| Missing event or event timeout | [Events and parameters](https://developers.cloudflare.com/workflows/build/events-and-parameters/index.md) for instance targeting, event type/payload requirements, and timeout handling | - Network accessline 10
| State disappears or branches change after resuming | [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md) for persisted step returns, deterministic names and conditionals, and awaited operati - Network accessline 11
| Duplicate charge, write, or notification | Review the destination's idempotency guarantees and [step design](./patterns.md#design-decisions); retries can repeat an external operation even when its previous attempt committed | | Instance I - Network accessline 12
| Instance ID collision or unexpected batch result | [Workers API](https://developers.cloudflare.com/workflows/build/workers-api/index.md) for creation semantics, plus [limits](https://developers.cloudflare.com/workflows/reference/limits/in - Network accessline 13
| Oversized results, queued instances, or missing historical data | [Limits](https://developers.cloudflare.com/workflows/reference/limits/index.md) for return/event sizes, concurrency, creation rates, and retention; export required long-ter - Network accessline 14
| Local-only failure or failing introspection test | [Local development](https://developers.cloudflare.com/workflows/build/local-development/index.md) and [Workflow test APIs](https://developers.cloudflare.com/workers/testing/vitest-integra - Network accessline 15
| Inspect execution and cost | [Metrics and analytics](https://developers.cloudflare.com/workflows/observability/metrics-analytics/index.md), [Wrangler commands](https://developers.cloudflare.com/workflows/reference/wrangler-commands/index.
skills/cloudflare/references/workflows/patterns.md
- Network accessline 5
Read [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md) before choosing step boundaries or concurrency patterns. - Network accessline 15
| Task | Documentation | | --- | --- | | Process images with human approval; handle approval events and timeouts | [Human-in-the-loop image tagging](https://developers.cloudflare.com/workflows/examples/wait-for-event/index.md) | - Network accessline 16
| --- | --- | | Process images with human approval; handle approval events and timeouts | [Human-in-the-loop image tagging](https://developers.cloudflare.com/workflows/examples/wait-for-event/index.md) | | Implement a payment and notificati - Network accessline 17
| Process images with human approval; handle approval events and timeouts | [Human-in-the-loop image tagging](https://developers.cloudflare.com/workflows/examples/wait-for-event/index.md) | - Network accessline 18
| Implement a payment and notification sequence | [Pay cart and send invoice](https://developers.cloudflare.com/workflows/examples/send-invoices/index.md) | - Network accessline 19
| Export data to object storage | [Export and save D1 database](https://developers.cloudflare.com/workflows/examples/backup-d1/index.md) | - Network accessline 20
| Delay lifecycle follow-ups or retry transient failures | [Sleeping and retrying](https://developers.cloudflare.com/workflows/build/sleeping-and-retrying/index.md) | - Network accessline 21
| Schedule jobs or start child Workflows | [Trigger Workflows](https://developers.cloudflare.com/workflows/build/trigger-workflows/index.md) | - Network accessline 22
| Design parallel work, races, conditional steps, and batch creation | [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md) | - Network accessline 26
Fetch [Vitest setup](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index.md) for current dependencies and configuration, then use the [Workflow test APIs](https://developers.cloudflare.com/worker
skills/durable-objects/SKILL.md
- Network accessline 14
| Resource | URL | |----------|-----| | Docs | https://developers.cloudflare.com/durable-objects/index.md | - Network accessline 15
|----------|-----| | Docs | https://developers.cloudflare.com/durable-objects/index.md | | API Reference | https://developers.cloudflare.com/durable-objects/api/index.md | - Network accessline 16
| Docs | https://developers.cloudflare.com/durable-objects/index.md | - Network accessline 17
| API Reference | https://developers.cloudflare.com/durable-objects/api/index.md | - Network accessline 18
| Best Practices | https://developers.cloudflare.com/durable-objects/best-practices/index.md | - Network accessline 19
| Examples | https://developers.cloudflare.com/durable-objects/examples/index.md | - Network accessline 20
| Roles and permissions | https://developers.cloudflare.com/workers/authorization/durable-objects/index.md | - Access to secretsline 82
[Credential-related source omitted] - Network accessline 104
export default { async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 105
async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 117
3. **Use SQLite storage** - Configure `new_sqlite_classes` in migrations 4. **Initialize in constructor** - Use `blockConcurrencyWhile()` for schema setup only 5. **Use RPC methods** - Not fetch() handler (compatibility date >= 2024-04-03) - Network accessline 118
4. **Initialize in constructor** - Use `blockConcurrencyWhile()` for schema setup only 5. **Use RPC methods** - Not fetch() handler (compatibility date >= 2024-04-03) 6. **Persist first, cache second** - Always write to storage before updat - Network accessline 119
5. **Use RPC methods** - Not fetch() handler (compatibility date >= 2024-04-03) - Network accessline 125
Durable Objects do not have separate roles or permissions; access follows the Worker that implements them. Retrieve the current [Durable Objects authorization guidance](https://developers.cloudflare.com/workers/authorization/durable-objects - Network accessline 131
- Storing critical state only in memory (lost on eviction/crash) - Using `await` between related storage writes (breaks atomicity) - Holding `blockConcurrencyWhile()` across `fetch()` or external I/O - Network accessline 133
- Holding `blockConcurrencyWhile()` across `fetch()` or external I/O
skills/durable-objects/references/rules.md
- Network accessline 7
| Task | Documentation | |------|---------------| | Choose object boundaries, deterministic routing, parent-child relationships, or initialization | [Rules of Durable Objects](https://developers.cloudflare.com/durable-objects/best-practices - Network accessline 8
|------|---------------| | Choose object boundaries, deterministic routing, parent-child relationships, or initialization | [Rules of Durable Objects](https://developers.cloudflare.com/durable-objects/best-practices/rules-of-durable-objects - Network accessline 9
| Choose object boundaries, deterministic routing, parent-child relationships, or initialization | [Rules of Durable Objects](https://developers.cloudflare.com/durable-objects/best-practices/rules-of-durable-objects/index.md) | - Network accessline 10
| Choose SQLite or maintain an existing KV-backed class | [SQLite storage API](https://developers.cloudflare.com/durable-objects/api/sqlite-storage-api/index.md); [Legacy KV storage API](https://developers.cloudflare.com/durable-objects/api - Network accessline 11
| Review storage gates, external I/O races, transactions, or schema initialization | [Rules of Durable Objects](https://developers.cloudflare.com/durable-objects/best-practices/rules-of-durable-objects/index.md); [SQLite storage API](https: - Network accessline 12
| Configure class lifecycle changes | [Class exports](https://developers.cloudflare.com/durable-objects/reference/durable-objects-migrations/index.md); [Legacy class migrations](https://developers.cloudflare.com/durable-objects/reference/du - Network accessline 13
| Set placement hints or jurisdiction constraints | [Data location](https://developers.cloudflare.com/durable-objects/reference/data-location/index.md) | | Create stubs, invoke RPC, or use HTTP handlers | [Invoke methods](https://developers - Network accessline 14
| Create stubs, invoke RPC, or use HTTP handlers | [Invoke methods](https://developers.cloudflare.com/durable-objects/best-practices/create-durable-object-stubs-and-send-requests/index.md); [Namespace API](https://developers.cloudflare.com/ - Network accessline 15
| Schedule per-object work and handle retries | [Alarms](https://developers.cloudflare.com/durable-objects/api/alarms/index.md) | - Network accessline 16
| Restore WebSocket connection state after hibernation | [Use WebSockets](https://developers.cloudflare.com/durable-objects/best-practices/websockets/index.md) | - Network accessline 17
| Handle exceptions, restarts, and shutdowns | [Error handling](https://developers.cloudflare.com/durable-objects/best-practices/error-handling/index.md); [Object lifecycle](https://developers.cloudflare.com/durable-objects/concepts/durable
skills/durable-objects/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/durable-objects/references/testing.md
- Network accessline 7
| Task | Documentation | |------|---------------| | Install compatible packages, configure Vitest and Wrangler, generate test types, run tests | [Write your first test](https://developers.cloudflare.com/workers/testing/vitest-integration/wr - Network accessline 8
|------|---------------| | Install compatible packages, configure Vitest and Wrangler, generate test types, run tests | [Write your first test](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index - Network accessline 9
| Install compatible packages, configure Vitest and Wrangler, generate test types, run tests | [Write your first test](https://developers.cloudflare.com/workers/testing/vitest-integration/write-your-first-test/index.md) | - Network accessline 10
| Migrate an existing pool-based suite | [Migrate to Vitest plugin](https://developers.cloudflare.com/workers/testing/vitest-integration/migration-guides/migrate-to-vitest-plugin/index.md) | - Network accessline 11
| Configure bindings, runtime options, or multiple Workers | [Vitest configuration](https://developers.cloudflare.com/workers/testing/vitest-integration/configuration/index.md) | - Network accessline 12
| Test RPC, Worker HTTP routes, instance separation, SQLite storage, and alarms | [Testing Durable Objects](https://developers.cloudflare.com/durable-objects/examples/testing-with-durable-objects/index.md) | - Network accessline 13
| Inspect internals, enumerate instances, or trigger scheduled alarms with test helpers | [Test APIs](https://developers.cloudflare.com/workers/testing/vitest-integration/test-apis/index.md) | - Network accessline 14
| Choose state cleanup and concurrency behavior | [Isolation and concurrency](https://developers.cloudflare.com/workers/testing/vitest-integration/isolation-and-concurrency/index.md) |
skills/durable-objects/references/workers.md
- Access to secretsline 95
[Credential-related source omitted] - Network accessline 106
export default { async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 107
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 116
export default { async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 117
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 187
Use [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) for structured application logs and pass objects to `console.log()` so their fields can be queried. - Network accessline 191
Use [Workers Traces](https://developers.cloudflare.com/workers/observability/traces/index.md) for automatic instrumentation of handlers, binding operations, and RPC calls. Enable `observability.traces.enabled` and choose `observability.trac - Network accessline 195
Start the project's dev server with `cf dev` where supported, or its Wrangler or Vite command. [Local Explorer](https://developers.cloudflare.com/workers/local-development/local-explorer/index.md) captures local traces and logs. See its doc - Network accessline 204
In production, `Date.now()` and `performance.now()` only advance after I/O, so they cannot time synchronous SQL or CPU work. Local timers advance during execution. See [performance and timers](https://developers.cloudflare.com/workers/runti - Network accessline 206
Non-I/O spans can report `0 ms` even when the operation takes longer. See [trace limitations](https://developers.cloudflare.com/workers/observability/traces/known-limitations/index.md) before using span durations. - Network accessline 256
export default { async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 257
async fetch(request: Request, env: Env): Promise<Response> { - Access to secretsline 281
[Credential-related source omitted] - Network accessline 287
export default { async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 288
async fetch(request: Request, env: Env): Promise<Response> { - Access to secretsline 289
[Credential-related source omitted]
skills/gateway-workers/SKILL.md
- Network accessline 8
Read the current [Forward guide](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md) before implementing a Worker. It defines how Gateway invokes Workers on permitted HTTP traffic. R - Network accessline 8
Read the current [Forward guide](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md) before implementing a Worker. It defines how Gateway invokes Workers on permitted HTTP traffic. R - Network accessline 8
Read the current [Forward guide](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md) before implementing a Worker. It defines how Gateway invokes Workers on permitted HTTP traffic. R - Network accessline 12
1. Inspect the existing Worker and choose a [Worker template](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/worker-templates/index.md) for the required transformation, synthetic response, or background - Network accessline 12
1. Inspect the existing Worker and choose a [Worker template](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/worker-templates/index.md) for the required transformation, synthetic response, or background - Network accessline 12
1. Inspect the existing Worker and choose a [Worker template](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/worker-templates/index.md) for the required transformation, synthetic response, or background - Network accessline 13
2. Export a named `GatewayMiddleware` class extending `WorkerEntrypoint` from `cloudflare:workers`. Implement `handle(request, context, next)` and return a `Response`. Gateway calls this method through RPC. A default `fetch()` handler alone - Network accessline 13
2. Export a named `GatewayMiddleware` class extending `WorkerEntrypoint` from `cloudflare:workers`. Implement `handle(request, context, next)` and return a `Response`. Gateway calls this method through RPC. A default `fetch()` handler alone - Network accessline 13
2. Export a named `GatewayMiddleware` class extending `WorkerEntrypoint` from `cloudflare:workers`. Implement `handle(request, context, next)` and return a `Response`. Gateway calls this method through RPC. A default `fetch()` handler alone - Network accessline 14
3. For TypeScript, follow the chosen template's current package installation and type-import instructions. 4. Use the second argument for [Gateway context](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/ - Network accessline 14
3. For TypeScript, follow the chosen template's current package installation and type-import instructions. 4. Use the second argument for [Gateway context](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/ - Network accessline 14
3. For TypeScript, follow the chosen template's current package installation and type-import instructions. 4. Use the second argument for [Gateway context](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/ - Network accessline 15
4. Use the second argument for [Gateway context](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/available-context/index.md). It describes the original request and stays unchanged when the Worker modifies - Network accessline 15
4. Use the second argument for [Gateway context](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/available-context/index.md). It describes the original request and stays unchanged when the Worker modifies - Network accessline 15
4. Use the second argument for [Gateway context](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/available-context/index.md). It describes the original request and stays unchanged when the Worker modifies - Network accessline 16
5. Continue the user's request with `next(request)` at most once, or return a synthetic response without calling it. `next()` always targets the original destination. Changes to the destination URL or host are ignored, and it cannot redirec - Network accessline 16
5. Continue the user's request with `next(request)` at most once, or return a synthetic response without calling it. `next()` always targets the original destination. Changes to the destination URL or host are ignored, and it cannot redirec - Network accessline 16
5. Continue the user's request with `next(request)` at most once, or return a synthetic response without calling it. `next()` always targets the original destination. Changes to the destination URL or host are ignored, and it cannot redirec - Network accessline 24
- Only the first matching Forward policy invokes a Worker. Worker invocation does not confirm successful body inspection. Follow the Forward guide's [inspection order](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integr - Network accessline 24
- Only the first matching Forward policy invokes a Worker. Worker invocation does not confirm successful body inspection. Follow the Forward guide's [inspection order](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integr - Network accessline 24
- Only the first matching Forward policy invokes a Worker. Worker invocation does not confirm successful body inspection. Follow the Forward guide's [inspection order](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integr - Network accessline 26
- Review the Forward guide's [limitations](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md#known-limitations) before choosing traffic: HTTPS requires decryption, WebSockets bypass - Network accessline 26
- Review the Forward guide's [limitations](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md#known-limitations) before choosing traffic: HTTPS requires decryption, WebSockets bypass - Network accessline 26
- Review the Forward guide's [limitations](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md#known-limitations) before choosing traffic: HTTPS requires decryption, WebSockets bypass - Network accessline 30
Type-check against the installed Gateway types and test the named RPC entrypoint, including zero or one continuation call and the context values the Worker uses. Then test a permitted request through a scoped Gateway Forward policy. A direc - Network accessline 30
Type-check against the installed Gateway types and test the named RPC entrypoint, including zero or one continuation call and the context values the Worker uses. Then test a permitted request through a scoped Gateway Forward policy. A direc - Network accessline 30
Type-check against the installed Gateway types and test the named RPC entrypoint, including zero or one continuation call and the context values the Worker uses. Then test a permitted request through a scoped Gateway Forward policy. A direc - Network accessline 32
Check the [response and streaming rules](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md#known-limitations): return a final status from `200` to `599`, return no body for HEAD req - Network accessline 32
Check the [response and streaming rules](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md#known-limitations): return a final status from `200` to `599`, return no body for HEAD req - Network accessline 32
Check the [response and streaming rules](https://developers.cloudflare.com/cloudflare-one/traffic-controls/integrate-workers/forward-traffic/index.md#known-limitations): return a final status from `200` to `599`, return no body for HEAD req
skills/gateway-workers/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/k2/SKILL.md
- Network accessline 8
K2 is a durable log for decoupling event producers and consumers. Start with the [K2 overview](https://developers.cloudflare.com/k2/index.md), then retrieve the relevant current documentation before giving setup instructions, code, limits, - Network accessline 12
| Task | Docs | Check for | |------|------|-----------| | Create a stream and try K2 | [Get started](https://developers.cloudflare.com/k2/get-started/index.md) | Prerequisites, setup sequence, current API examples | - Network accessline 13
|------|------|-----------| | Create a stream and try K2 | [Get started](https://developers.cloudflare.com/k2/get-started/index.md) | Prerequisites, setup sequence, current API examples | | Understand streams and subscriptions | [Concepts]( - Network accessline 14
| Create a stream and try K2 | [Get started](https://developers.cloudflare.com/k2/get-started/index.md) | Prerequisites, setup sequence, current API examples | - Network accessline 15
| Understand streams and subscriptions | [Concepts](https://developers.cloudflare.com/k2/concepts/index.md) | Record model and delivery behavior | - Network accessline 16
| Configure a stream | [Configuration](https://developers.cloudflare.com/k2/configuration/index.md) | Inputs, authentication, CORS, retention | - Network accessline 17
| Produce from HTTP or a Worker | [Produce records](https://developers.cloudflare.com/k2/features/produce/index.md) | Request and binding syntax, encoding, errors, retries | - Network accessline 18
| Consume through subscriptions | [Consume records](https://developers.cloudflare.com/k2/features/consume/index.md) | Leases, acknowledgements, retries, errors | - Network accessline 19
| Size a stream or consumer | [Limits](https://developers.cloudflare.com/k2/platform/limits/index.md) | Current quotas and size limits | - Network accessline 23
For SQL transformation and delivery to R2 Iceberg tables, use the `basin` skill. For task processing, consult [Queues](https://developers.cloudflare.com/queues/index.md).
skills/k2/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/nextjs-on-cloudflare/SKILL.md
- Network accessline 8
**Use vinext rather than OpenNext for new Next.js projects on Cloudflare Workers.** This is the default in the [Cloudflare Next.js guide](https://developers.cloudflare.com/workers/framework-guides/web-apps/nextjs/index.md). Preserve existin - Network accessline 8
**Use vinext rather than OpenNext for new Next.js projects on Cloudflare Workers.** This is the default in the [Cloudflare Next.js guide](https://developers.cloudflare.com/workers/framework-guides/web-apps/nextjs/index.md). Preserve existin - Network accessline 12
[vinext](https://github.com/cloudflare/vinext) reimplements the Next.js API surface on Vite: - Network accessline 12
[vinext](https://github.com/cloudflare/vinext) reimplements the Next.js API surface on Vite: - Network accessline 21
Before setup, migration, or deployment, check whether the [skills maintained in vinext](https://github.com/cloudflare/vinext/tree/main/.agents/skills) are available. If missing, install them: - Network accessline 21
Before setup, migration, or deployment, check whether the [skills maintained in vinext](https://github.com/cloudflare/vinext/tree/main/.agents/skills) are available. If missing, install them: - Network accessline 27
Then read and follow the applicable upstream `SKILL.md` and its relevant references. Use the current [vinext docs](https://github.com/cloudflare/vinext#quick-start) for workflows the skills do not cover: - Network accessline 27
Then read and follow the applicable upstream `SKILL.md` and its relevant references. Use the current [vinext docs](https://github.com/cloudflare/vinext#quick-start) for workflows the skills do not cover: - Network accessline 29
- **New project:** follow vinext's [new-project setup](https://github.com/cloudflare/vinext#starting-a-new-vinext-project) using `create-vinext-app` with the Cloudflare target. The upstream migration skill requires an existing Next.js proje - Network accessline 29
- **New project:** follow vinext's [new-project setup](https://github.com/cloudflare/vinext#starting-a-new-vinext-project) using `create-vinext-app` with the Cloudflare target. The upstream migration skill requires an existing Next.js proje - Network accessline 30
- **Existing Next.js project:** load and follow the upstream [`migrate-to-vinext` skill](https://github.com/cloudflare/vinext/blob/main/.agents/skills/migrate-to-vinext/SKILL.md), including its compatibility check and relevant references. S - Network accessline 30
- **Existing Next.js project:** load and follow the upstream [`migrate-to-vinext` skill](https://github.com/cloudflare/vinext/blob/main/.agents/skills/migrate-to-vinext/SKILL.md), including its compatibility check and relevant references. S - Network accessline 31
- **Development and deployment:** follow the current [Workers integration docs](https://github.com/cloudflare/vinext#cloudflare-workers). - Network accessline 31
- **Development and deployment:** follow the current [Workers integration docs](https://github.com/cloudflare/vinext#cloudflare-workers).
skills/nextjs-on-cloudflare/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/sandbox-migrate-to-next/SKILL.md
- Network accessline 10
Human guide: [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · [1.0 preview](https://developers.cloudflare.com/sandbox/index.md) - Network accessline 12
**New projects** should start on `@next` (**`sandbox-next`**), not this skill. **Day-to-day stable work** → **`sandbox-stable`**. Deprecated-API cleanup **without** moving to `@next` → [2026 deprecation guide](https://developers.cloudflare. - Network accessline 55
Depth: [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · after port, day-to-day → **`sandbox-next`** - Dangerous shell operationline 63
Also: string `exec(`, `cd` then a later `exec`, bare `createCodeContext` / `runCode` on `Sandbox`. - Network accessline 91
| Area | Doc | | ---- | --- | | Commands / handles / waits | [Processes](https://developers.cloudflare.com/sandbox/index.md) · [Processes API](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 92
| ---- | --- | | Commands / handles / waits | [Processes](https://developers.cloudflare.com/sandbox/index.md) · [Processes API](https://developers.cloudflare.com/sandbox/index.md) | | `cwd` / `env` / secrets | [Environment](https://develope - Network accessline 93
| Commands / handles / waits | [Processes](https://developers.cloudflare.com/sandbox/index.md) · [Processes API](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 94
| `cwd` / `env` / secrets | [Environment](https://developers.cloudflare.com/sandbox/index.md) · [Outbound traffic](https://developers.cloudflare.com/sandbox/sdk/guides/outbound-traffic/index.md) | - Network accessline 95
| Drop sessions | [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · [Lifecycle](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 96
| Terminals | [Terminals](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 97
| Interpreter | [Interpreter](https://developers.cloudflare.com/sandbox/index.md) | | Errors | [Errors](https://developers.cloudflare.com/sandbox/index.md) | | Durable job across requests | [Process execution — lifetime / durability](https: - Network accessline 98
| Errors | [Errors](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 99
| Durable job across requests | [Process execution — lifetime / durability](https://developers.cloudflare.com/sandbox/index.md) | - Access to secretsline 135
[Credential-related source omitted] - Network accessline 160
Leave `rollout_active_grace_period` at default `0` (or set `0` if raised). After cutover, pre-deploy process/terminal IDs are invalid. Details: [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) · [Container rollouts]
skills/sandbox-migrate-to-next/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/sandbox-next/SKILL.md
- Network accessline 8
Isolated Linux environments on [Cloudflare Containers](https://developers.cloudflare.com/containers/index.md), driven from Workers. - Network accessline 25
| Default `@cloudflare/sandbox` (no `@next`) | **Stop.** Load **`sandbox-stable`**. Do not apply this skill’s APIs. | | User wants to port stable → `@next` | **Stop.** Load **`sandbox-migrate-to-next`**. | | Self-deployed **bridge** only | - Network accessline 27
| Self-deployed **bridge** only | Bridge is **not** on the 1.0 preview line yet. Keep bridge on stable package + image. [Bridge (stable)](https://developers.cloudflare.com/sandbox/sdk/bridge/index.md) | - Network accessline 31
Skills install: [Agent setup](https://developers.cloudflare.com/agent-setup/index.md) · [cloudflare/skills](https://github.com/cloudflare/skills) - Network accessline 68
| You need to… | Open | | ------------ | ---- | | Orient / choose preview | [1.0 preview overview](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 69
| ------------ | ---- | | Orient / choose preview | [1.0 preview overview](https://developers.cloudflare.com/sandbox/index.md) | | First Worker, wrangler, Dockerfile | [Get started](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 70
| Orient / choose preview | [1.0 preview overview](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 71
| First Worker, wrangler, Dockerfile | [Get started](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 72
| `exec`, handles, readiness, durability | [Process execution](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 73
| Process API signatures | [Processes API](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 74
| Sandbox ID vs container vs sleep/destroy | [Lifecycle](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 75
| `cwd` / `env` / `setEnvVars` | [Environment](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 76
| Interactive PTY / browser terminal | [Terminals](https://developers.cloudflare.com/sandbox/index.md) · [Terminals API](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 77
| Python/JS code interpreter | [Interpreter](https://developers.cloudflare.com/sandbox/index.md) · [Interpreter API](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 78
| Extensions model | [Extensions](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 79
| Error classes and recovery | [Errors](https://developers.cloudflare.com/sandbox/index.md) · [Errors API](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 80
| Common failures | [Troubleshooting](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 81
| API hub | [API reference](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 82
| Files, mounts, backups, ports, tunnels, `proxyToSandbox` | Main docs for shared surfaces (ignore stable-only session/transport/`sandbox.terminal`): [Files](https://developers.cloudflare.com/sandbox/sdk/api/files/index.md) · [Storage / mou - Network accessline 83
| Example apps | [examples on `next`](https://github.com/cloudflare/sandbox-sdk/tree/next/examples) | - Network accessline 84
| Still on stable package | **`sandbox-stable`** · [Main Sandbox docs](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 85
| Porting an existing stable app | **`sandbox-migrate-to-next`** · [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) |
skills/sandbox-next/references/api-quick-ref.md
- Network accessline 7
| Task | Documentation | | --- | --- | | Launch commands, collect output, stream logs, wait for readiness, inspect or stop processes | [Processes API](https://developers.cloudflare.com/sandbox/index.md) and [Process execution](https://devel - Network accessline 8
| --- | --- | | Launch commands, collect output, stream logs, wait for readiness, inspect or stop processes | [Processes API](https://developers.cloudflare.com/sandbox/index.md) and [Process execution](https://developers.cloudflare.com/sand - Network accessline 9
| Launch commands, collect output, stream logs, wait for readiness, inspect or stop processes | [Processes API](https://developers.cloudflare.com/sandbox/index.md) and [Process execution](https://developers.cloudflare.com/sandbox/index.md) - Network accessline 10
| Understand sandbox IDs, container lifetime, sleep, destruction, and durable state | [Sandbox lifecycle](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 11
| Configure sleep, keep-alive, and ID normalization | [Sandbox options](https://developers.cloudflare.com/sandbox/sdk/configuration/sandbox-options/index.md); omit removed session and transport fields on `@next`. | - Network accessline 12
| Create, connect, write to, resize, or stop interactive terminals | [Terminals API](https://developers.cloudflare.com/sandbox/index.md) and [Terminals](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 13
| Attach the interpreter, manage contexts, run code, or consume streamed results | [Interpreter](https://developers.cloudflare.com/sandbox/index.md) and [Interpreter API](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 14
| Set sandbox or per-launch environment | [Environment variables](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 15
| Keep external API credentials in the Worker | [Outbound traffic](https://developers.cloudflare.com/sandbox/sdk/guides/outbound-traffic/index.md) | - Network accessline 16
| Handle startup failures, interrupted work, stale handles, or local wait cancellation | [Errors and recovery](https://developers.cloudflare.com/sandbox/index.md) and [Errors API](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 17
| Find other preview APIs | [Preview API reference](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 19
For files, mounts, backups, ports, and tunnels, follow the shared-surface links in the [preview overview](https://developers.cloudflare.com/sandbox/index.md). Use main-docs signatures only where that overview says they still apply; ignore s
skills/sandbox-next/references/examples.md
- Network accessline 5
https://github.com/cloudflare/sandbox-sdk/tree/next/examples
skills/sandbox-next/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/sandbox-stable/SKILL.md
- Network accessline 8
Isolated Linux environments on [Cloudflare Containers](https://developers.cloudflare.com/containers/index.md), driven from Workers. - Network accessline 12
This line is the **current stable** default npm package. The main [Sandbox documentation](https://developers.cloudflare.com/sandbox/index.md) describes it. Existing apps can stay here and keep shipping. - Network accessline 27
| `@cloudflare/sandbox@next` or a `next` image | **Stop.** Load **`sandbox-next`**. | | User wants to port to 1.0 / `@next` | **Stop.** Load **`sandbox-migrate-to-next`**. Do not half-apply preview APIs on a stable package. | | Only cleanin - Network accessline 29
| Only cleaning deprecated stable APIs | Stay here; use the [2026 deprecation guide](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md). That is **not** a move to `@next`. | - Network accessline 33
Skills install: [Agent setup](https://developers.cloudflare.com/agent-setup/index.md) · [cloudflare/skills](https://github.com/cloudflare/skills) - Network accessline 44
- Production preview hostnames need wildcard DNS on a custom domain when using those URL patterns. - Do **not** apply `@next` argv/`process.output()` APIs while the dependency is still stable. - Self-deployed **bridge** stays on the stable - Network accessline 46
- Self-deployed **bridge** stays on the stable package and image. [Bridge](https://developers.cloudflare.com/sandbox/sdk/bridge/index.md) - Network accessline 64
| You need to… | Open | | ------------ | ---- | | Orient | [Sandbox overview](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 65
| ------------ | ---- | | Orient | [Sandbox overview](https://developers.cloudflare.com/sandbox/index.md) | | First Worker, template, Docker | [Get started](https://developers.cloudflare.com/sandbox/get-started/index.md) | - Network accessline 66
| Orient | [Sandbox overview](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 67
| First Worker, template, Docker | [Get started](https://developers.cloudflare.com/sandbox/get-started/index.md) | - Network accessline 68
| `exec`, streaming, background processes | [Commands API](https://developers.cloudflare.com/sandbox/sdk/api/commands/index.md) · [Execute commands](https://developers.cloudflare.com/sandbox/sdk/guides/execute-commands/index.md) · [Backgrou - Network accessline 69
| Sessions / shell state across commands | [Sessions concept](https://developers.cloudflare.com/sandbox/sdk/concepts/sessions/index.md) · [Sessions API](https://developers.cloudflare.com/sandbox/sdk/api/sessions/index.md) | - Network accessline 70
| `getSandbox` options, sleep, destroy | [Lifecycle API](https://developers.cloudflare.com/sandbox/sdk/api/lifecycle/index.md) · [Sandbox options](https://developers.cloudflare.com/sandbox/sdk/configuration/sandbox-options/index.md) | - Network accessline 71
| Env vars | [Environment variables](https://developers.cloudflare.com/sandbox/sdk/configuration/environment-variables/index.md) | - Network accessline 72
| Files | [Files API](https://developers.cloudflare.com/sandbox/sdk/api/files/index.md) · [Manage files](https://developers.cloudflare.com/sandbox/sdk/guides/manage-files/index.md) · [File watching](https://developers.cloudflare.com/sandbox - Network accessline 73
| Buckets / mounts | [Storage API](https://developers.cloudflare.com/sandbox/sdk/api/storage/index.md) · [Mount buckets](https://developers.cloudflare.com/sandbox/sdk/guides/mount-buckets/index.md) | - Network accessline 74
| Backups | [Backups API](https://developers.cloudflare.com/sandbox/sdk/api/backups/index.md) · [Backup and restore](https://developers.cloudflare.com/sandbox/sdk/guides/backup-restore/index.md) | - Network accessline 75
| Ports, preview URLs, expose | [Ports API](https://developers.cloudflare.com/sandbox/sdk/api/ports/index.md) · [Expose services](https://developers.cloudflare.com/sandbox/sdk/guides/expose-services/index.md) | | Tunnels | [Tunnels API](htt - Network accessline 76
| Tunnels | [Tunnels API](https://developers.cloudflare.com/sandbox/sdk/api/tunnels/index.md) | | Proxy / Workers connections | [Proxy requests](https://developers.cloudflare.com/sandbox/sdk/guides/proxy-requests/index.md) · [Workers connec - Network accessline 77
| Proxy / Workers connections | [Proxy requests](https://developers.cloudflare.com/sandbox/sdk/guides/proxy-requests/index.md) · [Workers connections](https://developers.cloudflare.com/sandbox/sdk/guides/workers-connections/index.md) | - Network accessline 78
| Browser / PTY terminal | [Terminal API](https://developers.cloudflare.com/sandbox/sdk/api/terminal/index.md) · [Terminal concept](https://developers.cloudflare.com/sandbox/sdk/concepts/terminal/index.md) · [Browser terminals](https://deve - Network accessline 79
| Code interpreter | [Interpreter API](https://developers.cloudflare.com/sandbox/sdk/api/interpreter/index.md) · [Code execution](https://developers.cloudflare.com/sandbox/sdk/guides/code-execution/index.md) | - Network accessline 80
| Git in the sandbox | [Git workflows](https://developers.cloudflare.com/sandbox/sdk/guides/git-workflows/index.md) | - Network accessline 81
| Secrets / egress | [Outbound traffic](https://developers.cloudflare.com/sandbox/sdk/guides/outbound-traffic/index.md) | - Network accessline 82
| WebSockets | [WebSocket connections](https://developers.cloudflare.com/sandbox/sdk/guides/websocket-connections/index.md) | - Network accessline 83
| Docker-in-Docker | [Docker in Docker](https://developers.cloudflare.com/sandbox/sdk/guides/docker-in-docker/index.md) | - Network accessline 84
| Production deploy | [Production deployment](https://developers.cloudflare.com/sandbox/sdk/guides/preview-urls-custom-domain/index.md) | - Network accessline 85
| Containers concept | [Containers](https://developers.cloudflare.com/sandbox/sdk/concepts/containers/index.md) | - Network accessline 86
| How-to index | [Guides](https://developers.cloudflare.com/sandbox/sdk/guides/index.md) | - Network accessline 87
| API index | [API reference](https://developers.cloudflare.com/sandbox/sdk/api/index.md) | - Network accessline 88
| Deprecated APIs **while staying on stable** | [2026 deprecation guide](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) | - Network accessline 89
| Self-deployed bridge | [Bridge](https://developers.cloudflare.com/sandbox/sdk/bridge/index.md) · [Bridge HTTP API](https://developers.cloudflare.com/sandbox/sdk/bridge/http-api/index.md) | - Network accessline 90
| Examples (stable/`main`) | [examples on GitHub](https://github.com/cloudflare/sandbox-sdk/tree/main/examples) | - Network accessline 91
| New work on 1.0 preview | **`sandbox-next`** · [1.0 preview](https://developers.cloudflare.com/sandbox/index.md) | - Network accessline 92
| Port existing app to `@next` | **`sandbox-migrate-to-next`** · [Migrate](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) | - Network accessline 107
- Typecheck against installed stable types - No live secrets in sandbox env - If using deprecated transports/helpers, finish or track [2026 deprecation](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) cleanup - Network accessline 108
- No live secrets in sandbox env - If using deprecated transports/helpers, finish or track [2026 deprecation](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) cleanup - When the team is ready for 1.0, use **`sandbox-migra - Network accessline 109
- If using deprecated transports/helpers, finish or track [2026 deprecation](https://developers.cloudflare.com/sandbox/sdk/migrate/index.md) cleanup
skills/sandbox-stable/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/turnstile-spin/README.md
- Network accessline 5
`SKILL.md` is the canonical machine-readable behavior. The hosted prompt at [`developers.cloudflare.com/turnstile/spin/prompt.md`](https://developers.cloudflare.com/turnstile/spin/prompt.md) packages the same behavior for agents that do not - Network accessline 30
git clone https://github.com/cloudflare/skills ~/.config/cloudflare-skills - Network accessline 37
mkdir -p .claude/skills/turnstile-spin && \ curl -sSL https://developers.cloudflare.com/turnstile/spin/prompt.md \ - Network accessline 38
curl -sSL https://developers.cloudflare.com/turnstile/spin/prompt.md \ - Network accessline 50
- [Canonical docs page](https://developers.cloudflare.com/turnstile/spin/index.md) - Network accessline 51
- [`cloudflare/skills`](https://github.com/cloudflare/skills) — root index for all Cloudflare agent skills - Network accessline 52
- [Turnstile server-side validation](https://developers.cloudflare.com/turnstile/get-started/server-side-validation/index.md) — canonical siteverify reference
skills/turnstile-spin/SKILL.md
- Network accessline 12
This file is the canonical machine-readable behavior. Product requirements come from the [Turnstile documentation](https://developers.cloudflare.com/turnstile/index.md), and the hosted prompt must mirror this behavior. - Network accessline 50
3. **Auth + scope probe (FIRST irreversible action).** Run `scripts/auth-probe.sh`. If account enumeration needs Wrangler, set `PROJECT_ROOT`, approved canonical `WRANGLER_BIN`, and exact `WRANGLER_VERSION` first. Branch on `status`: - ` - Network accessline 51
- `ok`: continue to Step 4. The script already picked the account (single-account token, or one matching `$CLOUDFLARE_ACCOUNT_ID`). - `missing_token` or `missing_scope`: ask the user to create a token at https://dash.cloudflare.com/profi - Network accessline 52
- `missing_token` or `missing_scope`: ask the user to create a token at https://dash.cloudflare.com/profile/api-tokens → Custom token → permission `Account.Turnstile:Edit` → include the target account in Account Resources. **Do NOT direct t - Access to secretsline 53
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Network accessline 99
let result; try { const r = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', { - Network accessline 100
try { const r = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', { method: 'POST', - Network accessline 101
const r = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', { - Access to secretsline 106
[Credential-related source omitted] - Access to secretsline 127
[Credential-related source omitted] - Access to secretsline 129
[Credential-related source omitted] - Network accessline 257
[Credential-related source omitted] - Network accessline 258
[Credential-related source omitted] - Network accessline 259
curl --disable -sS "https://challenges.cloudflare.com/turnstile/v0/siteverify" \ - Network accessline 293
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async defer></script> - Network accessline 310
Detection signals: - reCAPTCHA: `https://www.google.com/recaptcha/api.js`, `class="g-recaptcha"`, `data-sitekey="6L..."`, backend POST to `/recaptcha/api/siteverify` - Network accessline 311
- reCAPTCHA: `https://www.google.com/recaptcha/api.js`, `class="g-recaptcha"`, `data-sitekey="6L..."`, backend POST to `/recaptcha/api/siteverify` - Network accessline 312
- hCaptcha: `https://js.hcaptcha.com/1/api.js`, `class="h-captcha"`, backend POST to `https://hcaptcha.com/siteverify` - Network accessline 314
Substitution: - Replace script tags with `https://challenges.cloudflare.com/turnstile/v0/api.js` (`async defer`). - Network accessline 315
- Replace script tags with `https://challenges.cloudflare.com/turnstile/v0/api.js` (`async defer`). - Network accessline 316
- Replace `class="g-recaptcha"` / `class="h-captcha"` divs with `class="cf-turnstile"`, update `data-sitekey` to the new Turnstile sitekey, and set a meaningful `data-action` for the protected surface. - Token field changes from `g-recaptch - Network accessline 318
[Credential-related source omitted] - Access to secretsline 318
[Credential-related source omitted] - Network accessline 320
Edge cases to surface to the user: - **reCAPTCHA v3 score thresholds.** Turnstile has no score. Tell the user explicitly that migrated code will reject on `success === false`. - **reCAPTCHA Enterprise.** Don't auto-migrate. Point at [develo - Network accessline 321
- **reCAPTCHA v3 score thresholds.** Turnstile has no score. Tell the user explicitly that migrated code will reject on `success === false`. - **reCAPTCHA Enterprise.** Don't auto-migrate. Point at [developers.cloudflare.com/turnstile/migra - Network accessline 322
- **reCAPTCHA Enterprise.** Don't auto-migrate. Point at [developers.cloudflare.com/turnstile/migration/recaptcha/](https://developers.cloudflare.com/turnstile/migration/recaptcha/index.md). - Network accessline 329
| Account enumeration is unavailable | Ask the user for the account ID and export `CLOUDFLARE_ACCOUNT_ID`, or obtain approval for canonical absolute `WRANGLER_BIN` and exact `WRANGLER_VERSION`. Do not install or run a project-lo - Network accessline 330
| Multiple Cloudflare accounts | `scripts/auth-probe.sh` returns all accounts; ask the user to choose, export `CLOUDFLARE_ACCOUNT_ID` - Network accessline 331
| Cloudflare Pages project | Wire siteverify inside a Pages Function (or the equivalent for your framework). The Pages Plugin at [developers.cloudflare.com/pages/functions/plugins/turnstile](https://developers.cloudfla - Network accessline 332
| Cloudflare Workers backend | Use the canonical fetch idiom from Step 9 inside the Worker's request handler. `fetch` to `challenges.cloudflare.com` works the same way it does in Node. - Network accessline 333
| `EXPECTED_HOSTNAME` mismatch | Update widget domains via PUT, not PATCH (PATCH returns `10405 Method not allowed`): `curl -X PUT .../widgets/$SITEKEY -d '{"name":"...","mode":"managed","domains":[...]}'`
skills/turnstile-spin/references/astro.md
- Network accessline 11
<head> <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" - Network accessline 12
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async - Network accessline 13
src="https://challenges.cloudflare.com/turnstile/v0/api.js" - Network accessline 60
const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Access to secretsline 64
[Credential-related source omitted] - Network accessline 106
handler: async (input, ctx) => { if (expectedHostnames.size === 0) throw new Error("Verification failed"); const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Network accessline 107
if (expectedHostnames.size === 0) throw new Error("Verification failed"); const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { method: "POST", - Network accessline 108
const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Access to secretsline 112
[Credential-related source omitted] - Network accessline 169
const script = document.createElement("script"); script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit"; - Network accessline 170
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit"; script.async = true; - Network accessline 171
"https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit";
skills/turnstile-spin/references/hugo.md
- Network accessline 6
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" - Network accessline 7
src="https://challenges.cloudflare.com/turnstile/v0/api.js" - Network accessline 58
const r = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Access to secretsline 62
[Credential-related source omitted] - Access to secretsline 84
[Credential-related source omitted]
skills/turnstile-spin/references/nextjs-app.md
- Network accessline 44
e.preventDefault(); try { const res = await fetch("/api/signup", { - Network accessline 45
try { const res = await fetch("/api/signup", { method: "POST", - Network accessline 46
const res = await fetch("/api/signup", { - Network accessline 65
<> <Script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" - Network accessline 66
<Script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" strategy="afterInteractive" - Network accessline 67
src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" - Network accessline 103
const r = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Access to secretsline 107
[Credential-related source omitted] - Network accessline 155
const r = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Access to secretsline 159
[Credential-related source omitted] - Network accessline 235
<> <Script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" - Network accessline 236
<Script src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit" strategy="afterInteractive" - Network accessline 237
src="https://challenges.cloudflare.com/turnstile/v0/api.js?render=explicit"
skills/turnstile-spin/references/nextjs-pages.md
- Network accessline 9
return ( <> <Script src="https://challenges.cloudflare.com/turnstile/v0/api.js" /> - Network accessline 10
<> <Script src="https://challenges.cloudflare.com/turnstile/v0/api.js" /> <form action="/api/signup" method="POST"> - Network accessline 11
<Script src="https://challenges.cloudflare.com/turnstile/v0/api.js" /> - Network accessline 52
const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Access to secretsline 56
[Credential-related source omitted]
skills/turnstile-spin/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/turnstile-spin/references/sveltekit.md
- Network accessline 28
const script = document.createElement("script"); script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onSignupTurnstileLoad&render=explicit"; - Network accessline 29
script.src = "https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onSignupTurnstileLoad&render=explicit"; script.async = true; - Network accessline 30
"https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onSignupTurnstileLoad&render=explicit"; - Network accessline 82
const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Network accessline 135
return new Response("forbidden", { status: 403 }); } const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Network accessline 136
} const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { method: "POST", - Network accessline 137
const verify = await fetch("https://challenges.cloudflare.com/turnstile/v0/siteverify", { - Network accessline 166
[Credential-related source omitted] - Network accessline 167
[Credential-related source omitted] - Network accessline 168
const res = await fetch("/api/signup", {
skills/turnstile-spin/references/vanilla-html.md
- Network accessline 8
<head> <script src="https://challenges.cloudflare.com/turnstile/v0/api.js" - Network accessline 9
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js" async - Network accessline 10
src="https://challenges.cloudflare.com/turnstile/v0/api.js" - Network accessline 45
[Credential-related source omitted] - Network accessline 46
const r = await fetch('https://challenges.cloudflare.com/turnstile/v0/siteverify', { - Access to secretsline 50
[Credential-related source omitted] - Network accessline 72
expected_hostnames = (ENV['TURNSTILE_HOSTNAMES'] || '').split(',').map(&:strip).reject(&:empty?).to_set halt 403 if expected_hostnames.empty? res = Net::HTTP.post_form(URI('https://challenges.cloudflare.com/turnstile/v0/siteverify'), - Network accessline 73
[Credential-related source omitted] - Network accessline 74
res = Net::HTTP.post_form(URI('https://challenges.cloudflare.com/turnstile/v0/siteverify'), - Access to secretsline 75
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Network accessline 83
if not expected_hostnames: return '', 403 r = requests.post('https://challenges.cloudflare.com/turnstile/v0/siteverify', - Network accessline 84
[Credential-related source omitted] - Network accessline 85
r = requests.post('https://challenges.cloudflare.com/turnstile/v0/siteverify', - Access to secretsline 86
[Credential-related source omitted] - Network accessline 118
event.preventDefault(); try { const res = await fetch("/api/subscribe", { - Network accessline 119
try { const res = await fetch("/api/subscribe", { method: "POST", - Network accessline 120
const res = await fetch("/api/subscribe", { - Network accessline 135
</script> <script src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onSubscribeTurnstileLoad&render=explicit" - Network accessline 136
<script src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onSubscribeTurnstileLoad&render=explicit" async - Network accessline 137
src="https://challenges.cloudflare.com/turnstile/v0/api.js?onload=onSubscribeTurnstileLoad&render=explicit"
skills/turnstile-spin/scripts/auth-probe.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 5
[Credential-related source omitted] - Access to secretsline 38
[Credential-related source omitted] - Access to secretsline 43
[Credential-related source omitted] - Network accessline 177
[Credential-related source omitted] - Network accessline 178
[Credential-related source omitted] - Network accessline 179
curl --disable --config - --silent --show-error --write-out $'\n%{http_code}' -X POST \ - Network accessline 180
"https://api.cloudflare.com/client/v4/accounts/$account_enc/challenges/widgets" \ - Network accessline 238
[Credential-related source omitted] - Network accessline 239
[Credential-related source omitted] - Network accessline 240
curl --disable --config - --silent --show-error --output /dev/null --write-out "%{http_code}" -X DELETE \ - Network accessline 241
"https://api.cloudflare.com/client/v4/accounts/$account_enc/challenges/widgets/$sk_enc" || echo "000"
skills/turnstile-spin/scripts/persist-skill.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 7
[Credential-related source omitted] - Dangerous shell operationline 60
trap 'rm -rf "$TEMP_DIR"' EXIT - Network accessline 62
if ! git -c core.hooksPath=/dev/null clone --quiet --depth 1 --filter=blob:none --sparse "https://github.com/cloudflare/skills.git" - Network accessline 65
--filter=blob:none \ --sparse \ "https://github.com/cloudflare/skills.git" \ - Network accessline 66
--sparse \ "https://github.com/cloudflare/skills.git" \ "$TEMP_DIR/repo"; then - Network accessline 67
"https://github.com/cloudflare/skills.git" \
skills/turnstile-spin/scripts/validate.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 9
[Credential-related source omitted] - Access to secretsline 45
[Credential-related source omitted] - Access to secretsline 46
[Credential-related source omitted] - Access to secretsline 48
[Credential-related source omitted] - Network accessline 53
for command_name in curl jq python3; do - Access to secretsline 73
[Credential-related source omitted] - Network accessline 81
[Credential-related source omitted] - Network accessline 82
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Network accessline 83
curl --disable --config - --fail --silent --show-error \ - Network accessline 84
"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ENCODED/challenges/widgets/$SITEKEY_ENCODED" - Access to secretsline 107
[Credential-related source omitted] - Network accessline 115
[Credential-related source omitted] - Access to secretsline 115
[Credential-related source omitted] - Network accessline 116
[Credential-related source omitted] - Network accessline 117
curl --disable --fail --silent --show-error \ - Network accessline 118
"https://challenges.cloudflare.com/turnstile/v0/siteverify" \
skills/turnstile-spin/scripts/widget-create.sh
- Executable scriptline 1
#!/usr/bin/env bash - Access to secretsline 29
[Credential-related source omitted] - Access to secretsline 30
[Credential-related source omitted] - Access to secretsline 35
[Credential-related source omitted] - Network accessline 44
for command_name in curl python3; do - Network accessline 64
[Credential-related source omitted] - Network accessline 65
[Credential-related source omitted] - Access to secretsline 65
[Credential-related source omitted] - Network accessline 66
curl --disable --config - --silent --show-error --write-out $'\n%{http_code}' -X POST \ - Network accessline 67
"https://api.cloudflare.com/client/v4/accounts/$ACCOUNT_ENCODED/challenges/widgets" \
skills/turnstile-spin/tests/test_persist_skill.py
skills/turnstile-spin/tests/validation.md
- Network accessline 20
[Credential-related source omitted] - Access to secretsline 20
[Credential-related source omitted] - Network accessline 21
[Credential-related source omitted] - Network accessline 22
curl --disable --fail --silent --show-error \ - Network accessline 23
"https://challenges.cloudflare.com/turnstile/v0/siteverify" \ - Access to secretsline 34
[Credential-related source omitted]
skills/web-perf/SKILL.md
- Network accessline 12
| Source | How to retrieve | Use for | |--------|----------------|---------| | web.dev | `https://web.dev/articles/vitals` | Core Web Vitals thresholds, definitions | - Network accessline 13
|--------|----------------|---------| | web.dev | `https://web.dev/articles/vitals` | Core Web Vitals thresholds, definitions | | Chrome DevTools docs | `https://developer.chrome.com/docs/devtools/performance` | Tooling APIs, trace analysis - Network accessline 14
| web.dev | `https://web.dev/articles/vitals` | Core Web Vitals thresholds, definitions | - Network accessline 15
| Chrome DevTools docs | `https://developer.chrome.com/docs/devtools/performance` | Tooling APIs, trace analysis | - Network accessline 16
| Lighthouse scoring | `https://developer.chrome.com/docs/lighthouse/performance/performance-scoring` | Score weights, metric thresholds | - Network accessline 22
If the user wants Chrome DevTools MCP setup, consult its [installation guide](https://github.com/ChromeDevTools/chrome-devtools-mcp#quick-start) and use the latest package version. Only change MCP configuration when setup is within the user
skills/web-perf/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/workers-best-practices/SKILL.md
- Network accessline 20
For missing evidence, consult [Workers best practices](https://developers.cloudflare.com/workers/best-practices/workers-best-practices/index.md) or find the affected product in the [Cloudflare docs directory](https://developers.cloudflare.c - Network accessline 20
For missing evidence, consult [Workers best practices](https://developers.cloudflare.com/workers/best-practices/workers-best-practices/index.md) or find the affected product in the [Cloudflare docs directory](https://developers.cloudflare.c - Network accessline 28
Enable [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) and [Traces](https://developers.cloudflare.com/workers/observability/traces/index.md) when creating or preparing a Worker for producti - Network accessline 28
Enable [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) and [Traces](https://developers.cloudflare.com/workers/observability/traces/index.md) when creating or preparing a Worker for producti - Network accessline 62
- **Durable Objects**: load the `durable-objects` skill - **Workflows**: see [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md) - Network accessline 62
- **Durable Objects**: load the `durable-objects` skill - **Workflows**: see [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md) - Network accessline 63
- **Workflows**: see [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md) - Network accessline 63
- **Workflows**: see [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md)
skills/workers-best-practices/references/configuration.md
- Network accessline 3
Use the project's Wrangler configuration and installed `node_modules/wrangler/config-schema.json` to check fields and binding declarations. Consult current product docs when a field or compatibility requirement needs verification. Doc paths - Access to secretsline 43
[Credential-related source omitted] - Network accessline 46
// Generated by wrangler types — always matches actual config export default { async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 47
export default { async fetch(request: Request, env: Env): Promise<Response> { const value = await env.MY_KV.get("key"); - Network accessline 48
async fetch(request: Request, env: Env): Promise<Response> { - Access to secretsline 52
[Credential-related source omitted] - Network accessline 70
[Credential-related source omitted] - Network accessline 71
[Credential-related source omitted] - Network accessline 72
[Credential-related source omitted] - Access to secretsline 74
[Credential-related source omitted] - Access to secretsline 82
[Credential-related source omitted] - Network accessline 111
Retrieve [Workers placement](https://developers.cloudflare.com/workers/configuration/placement/index.md) for supported options and handler limitations. Use [CF's configuration mapping](https://developers.cloudflare.com/cf/wrangler/reference - Network accessline 145
**Retrieve**: [Workers Logs](https://developers.cloudflare.com/workers/observability/logs/workers-logs/index.md) and [Traces](https://developers.cloudflare.com/workers/observability/traces/index.md) for current config options.
skills/workers-best-practices/references/platform-apis.md
- Network accessline 21
[Credential-related source omitted] - Access to secretsline 21
[Credential-related source omitted] - Network accessline 23
- `fetch()` handlers must return `Promise<Response>` - Network accessline 45
| Boundary | What to check | |----------|---------------| | [Queue messages](https://developers.cloudflare.com/queues/configuration/javascript-apis/index.md#queuescontenttype) | Match the body to `contentType`: `json` requires JSON-compatib - Network accessline 46
|----------|---------------| | [Queue messages](https://developers.cloudflare.com/queues/configuration/javascript-apis/index.md#queuescontenttype) | Match the body to `contentType`: `json` requires JSON-compatible data, `text` a string, `by - Network accessline 47
| [Queue messages](https://developers.cloudflare.com/queues/configuration/javascript-apis/index.md#queuescontenttype) | Match the body to `contentType`: `json` requires JSON-compatible data, `text` a string, `bytes` an `ArrayBuffer`, and `v - Network accessline 48
| [Workflow step results](https://developers.cloudflare.com/workflows/build/workers-api/index.md) | Verify the step result against the documented serialization contract and the project's Workflow types before flagging a value. | - Network accessline 49
| [Durable Object KV storage](https://developers.cloudflare.com/durable-objects/api/sqlite-storage-api/index.md#do-kv-async-put) | `storage.put()` supports structured-clone values; do not apply a blanket ban on `Map` or `Set`. | - Network accessline 50
| [Durable Object SQL](https://developers.cloudflare.com/durable-objects/api/sqlite-storage-api/index.md#exec) | Check bound parameters against the SQL API's supported types. Encode objects explicitly for the intended column representation. - Network accessline 51
| [WebSocket messages](https://developers.cloudflare.com/workers/runtime-apis/websockets/index.md#send) | Use `send()` with a string, `ArrayBuffer`, or `ArrayBufferView`; encode objects, for example with `JSON.stringify()`. |
skills/workers-best-practices/references/runtime-patterns.md
- Network accessline 3
Consult the sections relevant to the affected behavior. Examples show preferred patterns and common mistakes; **Retrieve** links identify documentation to check when an API, behavior, or limit is uncertain. Doc paths are relative to `https: - Network accessline 21
async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 22
const response = await fetch("https://api.example.com/large-dataset"); - Network accessline 29
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 30
const urls = ["https://api.example.com/part-1", "https://api.example.com/part-2"]; - Network accessline 34
ctx.waitUntil((async () => { for (const url of urls) { const response = await fetch(url); - Network accessline 35
for (const url of urls) { const response = await fetch(url); if (response.body) { - Network accessline 36
const response = await fetch(url); - Network accessline 52
// Buffers entire body — crashes on large payloads const response = await fetch("https://api.example.com/large-dataset"); - Network accessline 53
const response = await fetch("https://api.example.com/large-dataset"); - Network accessline 62
**Check**: Workers using Zod for runtime validation depend on [Zod 4.5.0 or later](https://github.com/colinhacks/zod/releases/tag/v4.5.0); older versions retain substantially more heap per schema, so check the installed version when investi - Network accessline 71
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 96
**Check**: no `fetch("https://api.cloudflare.com/client/v4/...")` calls for services available as bindings. - Network accessline 105
// REST API from inside a Worker — unnecessary overhead const response = await fetch( - Network accessline 106
const response = await fetch( - Network accessline 107
"https://api.cloudflare.com/client/v4/accounts/.../r2/buckets/.../objects/my-file", - Access to secretsline 108
[Credential-related source omitted] - Network accessline 123
async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 136
**Retrieve**: `/queues/` and `/workflows/` for current APIs. For Workflow-specific rules, see [Rules of Workflows](https://developers.cloudflare.com/workflows/build/rules-of-workflows/index.md). - Network accessline 142
**Check**: Worker-to-Worker calls use `env.SERVICE_NAME.method()` (RPC) or `env.SERVICE_NAME.fetch()`, not `fetch("https://my-other-worker.example.com/...")`. - Network accessline 174
async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 197
export default { async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Network accessline 198
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> { - Access to secretsline 203
[Credential-related source omitted] - Network accessline 211
export default { async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 212
async fetch(request: Request, env: Env): Promise<Response> { - Network accessline 223
**Check**: async calls in the affected execution path are awaited, returned, or attached to the appropriate lifetime. Use the project's existing floating-promise lint check, such as Oxlint's [typescript/no-floating-promises](https://oxc.rs/ - Network accessline 226
// Correct: await when you need the result const response = await fetch("https://api.example.com/process", { method: "POST", body: JSON.stringify(data) }); - Network accessline 227
const response = await fetch("https://api.example.com/process", { method: "POST", body: JSON.stringify(data) }); - Network accessline 229
// Correct: waitUntil when you don't need the result before responding ctx.waitUntil(fetch("https://api.example.com/webhook", { method: "POST", body: JSON.stringify(data) })); - Network accessline 230
ctx.waitUntil(fetch("https://api.example.com/webhook", { method: "POST", body: JSON.stringify(data) })); - Network accessline 235
// Floating promise — result dropped, error swallowed fetch("https://api.example.com/webhook", { method: "POST", body: JSON.stringify(data) }); - Network accessline 236
fetch("https://api.example.com/webhook", { method: "POST", body: JSON.stringify(data) }); - Network accessline 299
async fetch(request: Request, env: Env, ctx: ExecutionContext): Promise<Response> {
skills/workers-best-practices/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/workers-profiling/SKILL.md
- Network accessline 12
Start with the [production profiling guide](https://developers.cloudflare.com/workers/observability/profiling-in-production/index.md) to understand how - Network accessline 12
Start with the [production profiling guide](https://developers.cloudflare.com/workers/observability/profiling-in-production/index.md) to understand how - Network accessline 22
Where possible, use the [`cf` CLI](https://developers.cloudflare.com/cf/index.md) to capture profiles. If the user requests `cf`, inspect the installed version's command help and schema where available. - Network accessline 22
Where possible, use the [`cf` CLI](https://developers.cloudflare.com/cf/index.md) to capture profiles. If the user requests `cf`, inspect the installed version's command help and schema where available.
skills/workers-profiling/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
skills/wrangler/SKILL.md
- Network accessline 8
Use this skill only when the project has `wrangler.jsonc`, `wrangler.json`, or `wrangler.toml` and no `cloudflare.config.ts`, or when the user asks for Wrangler. For a new project, a project with `cloudflare.config.ts`, or a project with no - Network accessline 14
- Find the package manager, installed Wrangler version, package scripts, framework, and Wrangler config. Run commands through the project's scripts or package manager so they use its local version. Install dependencies using the existing lo - Network accessline 20
Use the Cloudflare MCP `docs` tool if available, or fetch the relevant linked page directly. Follow links to the specific command or product involved; avoid loading the entire reference. If a page moves, rediscover it through the [Wrangler - Network accessline 22
| Task | Source | | --- | --- | | Discover commands and flags, including resource management, deployments, rollback, and diagnostics | Project-local `wrangler --help` and `wrangler <command> --help`; [command reference](https://developers.c - Network accessline 23
| --- | --- | | Discover commands and flags, including resource management, deployments, rollback, and diagnostics | Project-local `wrangler --help` and `wrangler <command> --help`; [command reference](https://developers.cloudflare.com/work - Network accessline 24
| Discover commands and flags, including resource management, deployments, rollback, and diagnostics | Project-local `wrangler --help` and `wrangler <command> --help`; [command reference](https://developers.cloudflare.com/workers/wrangler/c - Network accessline 25
| Edit config or add a binding | Installed `wrangler/config-schema.json` (usually under `node_modules`); [configuration reference](https://developers.cloudflare.com/workers/wrangler/configuration/index.md) | - Network accessline 26
| Deploy a framework application | [Framework guides](https://developers.cloudflare.com/workers/framework-guides/index.md); follow the guide for the project's existing framework and adapter | - Network accessline 27
| Migrate an application to Workers when requested | [Pages to Workers](https://developers.cloudflare.com/workers/static-assets/migration-guides/migrate-from-pages/index.md); [Vercel to Workers](https://developers.cloudflare.com/workers/sta - Network accessline 28
| Configure staging or production | [Environments](https://developers.cloudflare.com/workers/wrangler/environments/index.md) | - Network accessline 29
| Set secrets locally, in CI, or on a deployed Worker | [Secrets](https://developers.cloudflare.com/workers/configuration/secrets/index.md) | - Network accessline 30
| Generate binding and runtime types | [TypeScript](https://developers.cloudflare.com/workers/languages/typescript/index.md) | - Network accessline 31
| Run locally or choose a testing approach | [Local development](https://developers.cloudflare.com/workers/local-development/index.md); [testing](https://developers.cloudflare.com/workers/testing/index.md) | - Network accessline 32
| Choose roles, scopes, or API token permissions for Wrangler | [Roles and permissions](https://developers.cloudflare.com/workers/authorization/index.md); [Workers roles and permissions](https://developers.cloudflare.com/workers/authorizati - Network accessline 33
| Create or manage a branch or pull request environment | [Previews overview](https://developers.cloudflare.com/workers/previews/index.md); [get started](https://developers.cloudflare.com/workers/previews/get-started/index.md); [configurati - Network accessline 34
| Decide whether Preview resources are isolated or shared | [Resources and isolation](https://developers.cloudflare.com/workers/previews/resources/index.md), including its current limitations | - Network accessline 35
| Configure Preview URLs, access, debugging, or CI | [Custom domains](https://developers.cloudflare.com/workers/previews/custom-domains/index.md); [test and debug](https://developers.cloudflare.com/workers/previews/test-and-debug/index.md); - Network accessline 36
| Choose between Previews, Version URLs, and Wrangler environments | [Compare workflows](https://developers.cloudflare.com/workers/previews/compare-workflows/index.md) | - Network accessline 37
| Diagnose authentication or select an account | [General commands](https://developers.cloudflare.com/workers/wrangler/commands/general/index.md), including `whoami`; [authentication profiles](https://developers.cloudflare.com/workers/wrang - Network accessline 38
| Deploy an unauthenticated prototype | [Claim deployments](https://developers.cloudflare.com/workers/platform/claim-deployments/index.md) for eligibility, expiry, and claim URL handling; use a permanent account for production or CI | - Network accessline 44
- Prefer `wrangler.jsonc` for new config. Set a new project's [compatibility date](https://developers.cloudflare.com/workers/configuration/compatibility-dates/index.md) to today; review runtime changes and test when advancing an existing pr - Network accessline 45
- Check environment inheritance before adding bindings or variables. Some fields must be specified separately for each environment; a working default config does not establish that staging is configured. - With the Cloudflare Vite plugin, s - Network accessline 46
- With the Cloudflare Vite plugin, select the environment via `CLOUDFLARE_ENV` at dev or build time. Deploy the resulting build; setting an environment at deploy time does not retarget its flattened config. See [Vite environments](https://d - Network accessline 47
- Reconcile dashboard changes with the config before deploying: Wrangler can overwrite dashboard variables and routes. When binding existing resources, verify their identifiers; omitted identifiers can trigger [automatic provisioning](https - Network accessline 50
- Keep secret values out of command arguments, source code, and logs. Use the documented interactive input or protected file/stdin mechanism for the command. Local secret files must be ignored by version control and are not automatically up - Network accessline 52
- Before a rollback, check [rollback limitations](https://developers.cloudflare.com/workers/versions-and-deployments/rollbacks/index.md): connected resources and their data are not rolled back with Worker code. - Network accessline 56
- Workers Previews requires project-local Wrangler 4.135.0 or later; project commands do not use a newer global installation. Check the project's pinned version and make any required dependency upgrade explicit. - Use Previews for branch an - Network accessline 57
- Use Previews for branch and pull request environments under the same Worker. Use Version URLs to inspect a specific uploaded version with production resources, and Wrangler environments for persistent, separately deployed Workers. Follow - Network accessline 58
- First inspect how the user manages production configuration and deployments. Configure Preview domains through the same configuration system as production, such as Wrangler, the dashboard, or Terraform. Run Preview deployments through the - Network accessline 59
- Before deploying, follow the current [configuration placement table](https://developers.cloudflare.com/workers/previews/configuration/index.md#what-goes-in-the-previews-block) and [resource matrix and limitations](https://developers.cloud - Network accessline 60
- Tell the user that Preview URLs are public unless access controls are configured, then let them decide whether to protect the URLs. Follow the [custom domain and access guidance](https://developers.cloudflare.com/workers/previews/custom-d
skills/wrangler/references/skill-feedback.md
- Network accessline 27
5. **Share the result** – Share the issue URL with the user after submission. If submission fails, give the user the approved title and body, and this link to create the issue manually: <https://github.com/cloudflare/skills/issues/new>
How the signals fit together
Facts from a static read of the files at the pinned commit. They describe what the code does, not why.
Some files could not be read; the facts below still hold.
Signal confidence: 500 facts
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:12Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:14Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:15Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:16Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:17Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:18Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:19Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:20Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:21Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:22Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:23Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:24Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:25Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:26Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:27Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:28Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:29Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:30Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:31Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:32Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:33Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:34Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:35Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:36Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:37Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:38Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:39Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:40Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:41Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:42Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:43Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:44Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:45Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:46Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:47Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:48Low confidence
- Network access in prose of the SKILL.mdagents-sdk/SKILL.md:148Low confidence
- Network access in prose of documentationagents-sdk/references/browse-the-web.md:3Low confidence
- Access to secrets in code of documentation: a variable, placeholder or call, not a stored valueagents-sdk/references/browse-the-web.md:23Low confidence
- Network access in prose of documentationagents-sdk/references/browse-the-web.md:52Low confidence
- Network access in prose of documentationagents-sdk/references/browse-the-web.md:53Low confidence
- Network access in code of documentationagents-sdk/references/browse-the-web.md:60Low confidence
- Network access in code of documentationagents-sdk/references/browse-the-web.md:62Low confidence
- Network access in prose of documentationagents-sdk/references/callable.md:3Low confidence
- Network access in prose of documentationagents-sdk/references/client-sdk.md:5Low confidence
- Network access in prose of documentationagents-sdk/references/client-sdk.md:6Low confidence
- Network access in prose of documentationagents-sdk/references/client-sdk.md:7Low confidence
- Network access in prose of documentationagents-sdk/references/client-sdk.md:8Low confidence
- Network access in prose of documentationagents-sdk/references/client-sdk.md:9Low confidence
- Network access in prose of documentationagents-sdk/references/codemode.md:3Low confidence
and 450 more
Only the first 500 facts are listed.
Works with
| Agent | Status | Evidence | Install to |
|---|---|---|---|
| Claude Code | Native | Manifest .claude-plugin/marketplace.json | .claude/skills/<skill-name>/ |
| Codex | Compatible | Standard SKILL.md skills/agents-sdk/SKILL.md | .agents/skills/<skill-name>/ |
| Cursor | Compatible | Standard SKILL.md skills/agents-sdk/SKILL.md | .cursor/skills/<skill-name>/ |
| Gemini CLI | Compatible | Standard SKILL.md skills/agents-sdk/SKILL.md | .gemini/skills/<skill-name>/ |
| GitHub Copilot | Compatible | Standard SKILL.md skills/agents-sdk/SKILL.md | .github/skills/<skill-name>/ |
| OpenCode | Compatible | Standard SKILL.md skills/agents-sdk/SKILL.md | .opencode/skills/<skill-name>/ |
- Native The repository ships a manifest, folder or frontmatter field for this agent.
- Compatible A standard SKILL.md that this agent can read.
- Unknown No evidence either way.
Derived automatically from paths, manifests and frontmatter. Not tested on each agent.
Explore alternatives and comparisons
Add this badge to your README
It updates every night and links to this page.
[](https://hotskills.dev/skill/cloudflare-skills/)