Agent skill

Cloudflare Workflows

by secondsky in secondsky/claude-skills

Cloudflare Workflows for durable long-running execution. An agent skill from secondsky/claude-skills.

MITAuto-check passedAgent Workflows

Install Cloudflare Workflows

skills CLI
$ npx skills add secondsky/claude-skills --skill cloudflare-workflows -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install secondsky/claude-skills cloudflare-workflows --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/secondsky/claude-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/cloudflare-workflows/skills/cloudflare-workflows .claude/skills/cloudflare-workflows && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
cloudflare-workflows
GitHub stars
227
Token cost
~4.2k tokens
SKILL.md length
1,032 words
Files
17 (incl. references)
Skills in repo
169
Repo updated
First seen
Licence
MIT

At a glance

Cloudflare Workflows for durable long-running execution. An agent skill from secondsky/claude-skills.

  • Works in 4 steps: Create a Workflow → Basic Workflow Structure → Configure wrangler.jsonc → …
  • Multi-step workflows
  • SKILL.md covers Quick Start (10 Minutes), Commands, Agents and Scripts, plus 8 more sections
  • Runs TypeScript scripts from its folder; calls wrangler and npm

What it does

Cloudflare Workflows is an agent skill from secondsky/claude-skills. Cloudflare Workflows for durable long-running execution. Use for multi-step workflows, retries, state persistence, or encountering NonRetryableError, execution failed errors.

Its SKILL.md is about 4.2k tokens, which your agent loads only when the skill is triggered. The skill folder holds 18 other files, including reference files (for example `references/2025-features.md`, `references/common-issues.md` and `references/limits-quotas.md`).

It sits in Agent Workflows, covering Agent memory. It works with Cloudflare and Cloudflare Workers. The repository describes itself as: Production-ready skills for Claude Code CLI - Cloudflare, React, Tailwind v4, and AI integrations. The licence is MIT.

When your agent uses it

  • Multi-step workflows
  • State persistence
  • Encountering NonRetryableError
  • Execution failed errors

Example prompts

  • “/cloudflare-workflows”

Requirements

  • Node.js

Workflow steps

4 steps, taken from the step headings in SKILL.md.

  1. Create a Workflow
  2. Basic Workflow Structure
  3. Configure wrangler.jsonc
  4. Deploy

What it can do on your machine

Read from SKILL.md and the folder at commit 8837836. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • wrangler
    • npm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • developers.cloudflare.com
    • blog.cloudflare.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Cloudflare Workflows loads about 4.2k tokens when it runs, and up to ~26k if it reads all its reference files. Until then it costs about 49 tokens; SKILL.md has 1,032 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~49
When it runs · the whole SKILL.md, loaded when a task matches
~4.2k
With references · SKILL.md plus every file in references/, read only if the agent opens them
~26k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from secondsky/claude-skills at commit 8837836, republished under its MIT licence (© secondsky). 1,032 words, ~4,203 tokens.

Download SKILL.mdSave it as .claude/skills/cloudflare-workflows/SKILL.md (or your agent's skills folder). This skill also uses 16 other files; get the full folder from GitHub.
name
cloudflare-workflows
description
Cloudflare Workflows for durable long-running execution. Use for multi-step workflows, retries, state persistence, or encountering NonRetryableError, execution failed errors.
license
MIT
metadata.version
3.0.0
metadata.wrangler_version
4.81.0
metadata.workers_types_version
4.20260408.0
metadata.last_verified
2025-12-27
metadata.errors_prevented
5
metadata.templates_included
8
metadata.references_included
8
metadata.agents_included
3
metadata.commands_included
4

Cloudflare Workflows

Status: Production Ready ✅ | Last Verified: 2025-12-27 | Version: 3.0.0

Dependencies: cloudflare-worker-base (for Worker setup)

Contents: Quick Start • Commands • Agents • Core Concepts • Critical Rules • Top Errors • Common Patterns • When to Load References • Limits


Quick Start (10 Minutes)

1. Create a Workflow

Use the Cloudflare Workflows starter template:

bash
npm create cloudflare@latest my-workflow -- --template cloudflare/workflows-starter --git --deploy false
cd my-workflow

What you get:

  • WorkflowEntrypoint class template
  • Worker to trigger workflows
  • Complete wrangler.jsonc configuration
2. Basic Workflow Structure

src/index.ts:

typescript
import { WorkflowEntrypoint, WorkflowStep, WorkflowEvent } from 'cloudflare:workers';

type Env = {
  MY_WORKFLOW: Workflow;
};

type Params = {
  userId: string;
  email: string;
};

export class MyWorkflow extends WorkflowEntrypoint<Env, Params> {
  async run(event: WorkflowEvent<Params>, step: WorkflowStep) {
    const { userId, email } = event.payload;

    // Step 1: Do work with automatic retries
    const result = await step.do('process user', async () => {
      return { processed: true, userId };
    });

    // Step 2: Wait before next step
    await step.sleep('wait 1 hour', '1 hour');

    // Step 3: Continue workflow
    await step.do('send email', async () => {
      return { sent: true, email };
    });

    return { completed: true, userId };
  }
}

// Worker to trigger workflow
export default {
  async fetch(req: Request, env: Env): Promise<Response> {
    const instance = await env.MY_WORKFLOW.create({
      params: { userId: '123', email: 'user@example.com' }
    });

    return Response.json({
      id: instance.id,
      status: await instance.status()
    });
  }
};

Template: See templates/basic-workflow.ts for complete example

3. Configure wrangler.jsonc
jsonc
{
  "name": "my-workflow",
  "main": "src/index.ts",
  "compatibility_date": "2025-10-22",
  "workflows": [
    {
      "binding": "MY_WORKFLOW",
      "name": "my-workflow",
      "class_name": "MyWorkflow"
    }
  ]
}

Template: See templates/wrangler-workflows-config.jsonc

4. Deploy
bash
npm run deploy

Commands

Interactive slash commands for workflow development:

CommandDescriptionUse When
/workflow-setupComplete wizard for new workflow projectsStarting new project, need full setup
/workflow-createQuick scaffolding for workflow classesAdding workflow to existing project
/workflow-debugInteractive debugging with error patternsTroubleshooting workflow issues
/workflow-testTest workflows locally and remotelyValidating workflow behavior

Example Usage:

/workflow-setup   # Full guided setup wizard
/workflow-create  # Quick workflow scaffolding
/workflow-debug   # Debug workflow issues
/workflow-test    # Test workflow execution

Agents

Autonomous agents for complex workflow tasks:

AgentDescriptionTriggers
workflow-debuggerAuto-detects and fixes configuration/runtime errors"debug workflow", "fix workflow errors"
workflow-optimizerAnalyzes performance, cost, and reliability"optimize workflow", "improve performance"
workflow-setup-assistantAutonomous project scaffolding"setup workflow", "create first workflow"

Key Capabilities:

  • Debugger: 6-phase analysis, auto-fix for I/O context, serialization, export issues
  • Optimizer: Cost analysis, reliability scoring, actionable recommendations
  • Setup Assistant: Project detection, automatic scaffolding, validation

Scripts

Automation scripts in scripts/ directory:

ScriptPurpose
validate-workflow-config.shValidate wrangler.jsonc configuration
test-workflow.shCreate and test workflow instances
benchmark-workflow.shMeasure performance and cost
generate-workflow.shScaffold new workflows from templates
check-workflow-limits.shValidate against Cloudflare limits

Usage:

bash
./scripts/validate-workflow-config.sh           # Check config
./scripts/test-workflow.sh my-workflow          # Test workflow
./scripts/benchmark-workflow.sh my-workflow 10  # Benchmark 10 runs
./scripts/generate-workflow.sh MyWorkflow       # Generate scaffold
./scripts/check-workflow-limits.sh src/workflows/my-workflow.ts

Core Concepts

WorkflowEntrypoint

Every workflow must extend WorkflowEntrypoint:

typescript
export class MyWorkflow extends WorkflowEntrypoint<Env, Params> {
  async run(event: WorkflowEvent<Params>, step: WorkflowStep) {
    // Workflow logic here
  }
}

Key Points:

  • Env: Environment bindings (KV, D1, etc.)
  • Params: Typed payload passed when creating workflow instance
  • event: Contains id, payload, timestamp
  • step: Methods for durable execution
Step Methods

All workflow work MUST be done in steps for durability:

typescript
// step.do - Execute work with automatic retries
await step.do('step name', async () => {
  return { result: 'data' };
});

// step.sleep - Wait for duration
await step.sleep('wait', '1 hour');

// step.sleepUntil - Wait until timestamp
await step.sleepUntil('wait until', Date.now() + 3600000);

// step.waitForEvent - Wait for external event
const event = await step.waitForEvent('payment received', 'payment.completed', {
  timeout: '30 minutes'
});

CRITICAL: All I/O (fetch, KV, D1, R2) must happen inside step.do() callbacks!

Reference: See references/workflow-patterns.md for all patterns


Critical Rules

Always Do ✅

✅ Perform all I/O inside step.do() - Required for durability ✅ Use named steps - Makes debugging easier ✅ Return JSON-serializable data from steps - Required for state persistence ✅ Use step.sleep() for delays - Don't use setTimeout() ✅ Handle errors explicitly - Use try/catch in step callbacks ✅ Use NonRetryableError for permanent failures - Stops retries

Workflow Patterns: See references/workflow-patterns.md for:

  • Sequential workflows
  • Parallel execution
  • Event-driven workflows
  • Scheduled workflows
  • Human-in-the-loop workflows
Never Do ❌

❌ Never do I/O outside step.do() - Will fail with "I/O context" error ❌ Never use setTimeout() or setInterval() - Use step.sleep() instead ❌ Never return non-serializable data - Functions, Promises, etc. will fail ❌ Never hardcode timeouts - Use workflow config ❌ Never ignore NonRetryableError - Indicates permanent failure


Top 5 Critical Errors

Error #1: I/O Context Error ⚠️

Error:

Cannot perform I/O on behalf of a different request

Cause: Performing I/O outside step.do() callback

Solution:

typescript
// ❌ WRONG
const data = await fetch('https://api.example.com');
await step.do('use data', async () => {
  return data; // Error!
});

// ✅ CORRECT
const data = await step.do('fetch data', async () => {
  const response = await fetch('https://api.example.com');
  return await response.json();
});
Error #2: Serialization Error

Error:

Cannot serialize workflow state

Cause: Returning non-JSON-serializable data from step

Solution:

typescript
// ❌ WRONG
await step.do('process', async () => {
  return { fn: () => {} }; // Functions not serializable
});

// ✅ CORRECT
await step.do('process', async () => {
  return { result: 'data' }; // JSON-serializable
});
Error #3: NonRetryableError Not Thrown

Error: Workflow retries forever on permanent failures

Solution:

typescript
import { NonRetryableError } from 'cloudflare:workers';

await step.do('validate', async () => {
  if (!isValid) {
    throw new NonRetryableError('Invalid input'); // Stop retries
  }
  return { valid: true };
});
Error #4: WorkflowEvent Not Found

Error:

WorkflowEvent 'payment.completed' not found

Cause: Event name mismatch between waitForEvent and trigger

Solution:

typescript
// Workflow waits for event
const event = await step.waitForEvent('wait payment', 'payment.completed', {
  timeout: '30 minutes'
});

// Trigger event with EXACT same name
await instance.trigger('payment.completed', { amount: 100 });
Error #5: Workflow Execution Failed

Error:

Workflow execution failed: Step timeout exceeded

Cause: Step exceeds maximum CPU time (30 seconds)

Solution:

typescript
// ❌ WRONG
await step.do('long task', async () => {
  for (let i = 0; i < 1000000; i++) {
    // Long computation
  }
});

// ✅ CORRECT - Break into smaller steps
for (let i = 0; i < 100; i++) {
  await step.do(`batch ${i}`, async () => {
    // Process batch
  });
}

All Issues: See references/common-issues.md for complete documentation


Common Patterns

Sequential Workflow

Basic workflow with steps executing in order. Each step completes before the next begins.

Use cases: Order processing, user onboarding, data pipelines

Load templates/basic-workflow.ts for complete example

Scheduled Workflow

Workflow with time delays between steps using step.sleep() or step.sleepUntil().

Use cases: Reminder sequences, scheduled tasks, delayed notifications

Load templates/scheduled-workflow.ts for complete example

Event-Driven Workflow

Wait for external events with step.waitForEvent(). Always set timeout and handle with NonRetryableError:

typescript
const payment = await step.waitForEvent('wait payment', 'payment.completed', {
  timeout: '30 minutes'
});
if (!payment) throw new NonRetryableError('Payment timeout');

Load templates/workflow-with-events.ts for complete example

Workflow with Retries

Use NonRetryableError for permanent failures (404), regular Error for transient failures (5xx):

typescript
const data = await step.do('fetch', async () => {
  const response = await fetch(url);
  if (!response.ok) {
    if (response.status === 404) throw new NonRetryableError('Not found');
    throw new Error('Temporary failure'); // Will retry
  }
  return await response.json();
});

Load templates/workflow-with-retries.ts for complete example with retry configuration


Triggering Workflows

From Worker: Create instances via env.MY_WORKFLOW.create(), get status with instance.status(), trigger events with instance.trigger().

From Cron: Use scheduled() handler to create workflow instances on schedule.

Load templates/worker-trigger.ts for complete Worker trigger example Load templates/scheduled-workflow.ts for complete Cron trigger example


Show full SKILL.md (408 more words)Show less

When to Load References

references/common-issues.md: Encountering I/O context, serialization, NonRetryableError, event naming, or timeout errors; troubleshooting workflow failures.

references/workflow-patterns.md: Building complex orchestration, approval workflows, idempotency patterns, or circuit breaker patterns.

references/wrangler-commands.md: Need CLI commands for managing workflow instances, debugging stuck workflows, or monitoring production.

references/production-checklist.md: Preparing for deployment, need pre-deployment verification, setting up monitoring/error handling.

references/limits-quotas.md: Hitting instance/step/payload limits, optimizing for cost, designing high-volume workflows.

references/2025-features.md: Using events system, enhanced retries, instance lifecycle control, or latest Workflows features.

references/metrics-analytics.md: Setting up monitoring, custom metrics, external logging integration, or workflow dashboards.

references/troubleshooting.md: Complex debugging scenarios, stuck instances, systematic diagnosis, performance issues.

templates/: basic-workflow.ts (sequential), scheduled-workflow.ts (delays/sleep), workflow-with-events.ts (waitForEvent), workflow-with-retries.ts (custom retry), worker-trigger.ts (Worker triggers), wrangler-workflows-config.jsonc (Wrangler config), parallel-execution-workflow.ts (batched parallel processing), circuit-breaker-workflow.ts (resilient external calls)


Wrangler Commands

Key Commands: wrangler workflows create, wrangler workflows instances list/describe/terminate, wrangler deploy

Load references/wrangler-commands.md for complete CLI reference with all workflow management commands, monitoring workflows, and debugging stuck instances.


State Persistence

Workflows automatically persist state between steps. No manual state management needed:

typescript
export class StatefulWorkflow extends WorkflowEntrypoint {
  async run(event, step) {
    // Step 1 result is automatically persisted
    const result1 = await step.do('step 1', async () => {
      return { data: 'value' };
    });

    // Even if workflow crashes here, step 1 won't re-run
    await step.sleep('wait', '1 hour');

    // Step 2 can use step 1's result (still available after sleep)
    await step.do('step 2', async () => {
      console.log(result1.data); // 'value' - persisted!
    });
  }
}

Key Points:

  • Step results automatically persisted
  • Completed steps never re-run (even after crash/restart)
  • State available throughout workflow lifetime

Limits

ResourceLimit
Step CPU Time30 seconds
Workflow Duration30 days
Step Payload Size128 KB
Workflow Payload Size128 KB
Steps per Workflow1,000
Concurrent Instances1,000 per workflow
Event Payload Size128 KB

Workarounds:

  • Large data: Store in KV/R2, pass key in step
  • Long CPU: Break into smaller steps
  • Many steps: Consider sub-workflows

Pricing

  • Duration: $0.02 per million GB-s (same as Workers)
  • Requests: $0.15 per million (workflow creation + step execution)
  • State Storage: Included (no additional cost)
  • Sleep: Free (no CPU usage during sleep)

Example Cost (1M workflow runs):

  • 5 steps each = 5M requests = $0.75
  • 10ms per step = 50GB-s = $0.001
  • Total: ~$0.75 per million workflows

Troubleshooting

"I/O context" error

Solution: Move all I/O into step.do() callbacks → See references/common-issues.md #1

"Serialization error"

Solution: Return only JSON-serializable data from steps → See references/common-issues.md #2

Workflow retries forever

Solution: Throw NonRetryableError for permanent failures → See references/common-issues.md #3

"WorkflowEvent not found"

Solution: Ensure event names match exactly → See references/common-issues.md #4

"Step timeout exceeded"

Solution: Break long computations into smaller steps → See references/common-issues.md #5


Production Checklist

10-Point Pre-Deployment Checklist: I/O context isolation, JSON serialization, NonRetryableError usage, event name consistency, step duration limits, error handling, retry configuration, timeouts, workflow naming, and monitoring.

Load references/production-checklist.md for complete checklist with detailed explanations, code examples, verification steps, and deployment workflow.


Official Documentation

Workflows: https://developers.cloudflare.com/workflows/ • API Reference: https://developers.cloudflare.com/workflows/reference/ • Examples: https://developers.cloudflare.com/workflows/examples/ • Blog: https://blog.cloudflare.com/cloudflare-workflows/

© secondsky, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 16 other files (references) in plugins/cloudflare-workflows/skills/cloudflare-workflows of secondsky/claude-skills.

  • SKILL.md
  • references/2025-features.md
  • references/common-issues.md
  • references/limits-quotas.md
  • references/metrics-analytics.md
  • references/production-checklist.md
  • references/troubleshooting.md
  • references/workflow-patterns.md
  • references/wrangler-commands.md
  • templates/basic-workflow.ts
  • templates/circuit-breaker-workflow.ts
  • templates/parallel-execution-workflow.ts
  • templates/scheduled-workflow.ts
  • templates/worker-trigger.ts
  • templates/workflow-with-events.ts
  • templates/workflow-with-retries.ts
  • templates/wrangler-workflows-config.jsonc

Open the folder on GitHubat commit 8837836

Compare with similar skills

Cloudflare Workflows next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Cloudflare Workflows compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Cloudflare Workflows this skillsecondsky/claude-skills227—~4.2kAutomated safety check: PassMIT
Durable Objectscloudflare/skills3k2 repos~1.5kAutomated safety check: PassApache-2.0
Agents SDKcloudflare/skills3k2 repos~3kAutomated safety check: PassApache-2.0
Memoraagentic-box/memora731—~813Automated safety check: PassMIT
Building MCP Server On CloudflareCommandCodeAI/agent-skills132—~1.5kAutomated safety check: PassMIT
Cloudflarepopmechanic/VibesOS135—~1.2kAutomated safety check: NotesMIT

Similar skills

  • Durable Objects

    cloudflare/skills

    Official

    Build, debug, or review Cloudflare Durable Objects code for persistent state and coordination.

    3k GitHub starsUsed in 2 repos~1.5k tokens
    Backend & APIsAuto-check passed
  • Agents SDK

    cloudflare/skills

    Official

    Build, debug, or review Cloudflare Agents SDK applications using the agents package.

    3k GitHub starsUsed in 2 repos~3k tokens
    Agent WorkflowsAuto-check passed
  • Memora

    agentic-box/memora

    A skill your agent uses when working with persistent memory across sessions, storing/retrieving knowledge, managing TODOs/issues, or when context from previous sessions would be helpful.

    731 GitHub stars~813 tokensUpdated 9 days ago
    Agent WorkflowsAuto-check passed
  • Building MCP Server On Cloudflare

    CommandCodeAI/agent-skills

    Builds remote MCP (Model Context Protocol) servers on Cloudflare Workers with tools, OAuth authentication, and production deployment.

    132 GitHub stars~1.5k tokensUpdated 7 mo ago
    Agent WorkflowsAuto-check passed
  • Cloudflare

    popmechanic/VibesOS

    Self-contained deploy automation — invoke directly, do not decompose.

    135 GitHub stars~1.2k tokensUpdated 2 mo ago
    Agent WorkflowsAuto-check: notes
  • Blueprint Cloudflare Scaffold

    receptron/mulmoterminal

    Lay out a Worker with D1 and static Vue assets, with tests that run inside the Workers runtime.

    236 GitHub stars~782 tokensUpdated today
    Backend & APIsAuto-check passed

More from secondsky/claude-skills

All 169 skills in this repo
  • Tanstack AI

    secondsky/claude-skills

    TanStack AI (alpha) provider-agnostic type-safe chat with streaming for OpenAI, Anthropic, Gemini, Ollama.

    227 GitHub starsUsed in 1 repo~3.6k tokens
    Auto-check: notes
  • Auto Animate

    secondsky/claude-skills

    AutoAnimate (@formkit/auto-animate) zero-config animations for React.

    227 GitHub stars~2.9k tokensUpdated 9 days ago
    Auto-check passed
  • Base UI React

    secondsky/claude-skills

    MUI Base UI unstyled React components with Floating UI. An agent skill from secondsky/claude-skills.

    227 GitHub stars~1.9k tokensUpdated 9 days ago
    Auto-check passed
  • Cloudflare Images

    secondsky/claude-skills

    This skill should be used when the user asks to "upload images to Cloudflare", "implement direct creator upload", "configure image transformations", "optimize WebP/AVIF", "create image variants"…

    227 GitHub stars~3.6k tokensUpdated 9 days ago
    Auto-check: notes
  • Cloudflare Nextjs

    secondsky/claude-skills

    Deploy Next.js to Cloudflare Workers via the OpenNext adapter (@opennextjs/cloudflare).

    227 GitHub stars~5.3k tokensUpdated 9 days ago
    Auto-check: notes
  • Cloudflare Sandbox

    secondsky/claude-skills

    Cloudflare Sandboxes SDK for secure code execution in Linux containers at edge.

    227 GitHub stars~4.5k tokensUpdated 9 days ago
    Auto-check passed

Questions about Cloudflare Workflows

What does Cloudflare Workflows do?

Cloudflare Workflows for durable long-running execution. An agent skill from secondsky/claude-skills. Cloudflare Workflows is an agent skill from secondsky/claude-skills. Cloudflare Workflows for durable long-running execution.

When should I use Cloudflare Workflows?

Cloudflare Workflows fits situations like: multi-step workflows; state persistence; encountering NonRetryableError; execution failed errors.

How do I install Cloudflare Workflows in Claude Code?

Run `npx skills add secondsky/claude-skills --skill cloudflare-workflows -a claude-code`. Or copy the skill folder (plugins/cloudflare-workflows/skills/cloudflare-workflows in secondsky/claude-skills) into .claude/skills/cloudflare-workflows in your project. Claude Code loads it when a task matches its description.

How do I install Cloudflare Workflows in Codex?

Run `npx skills add secondsky/claude-skills --skill cloudflare-workflows -a codex`. Or copy the skill folder (plugins/cloudflare-workflows/skills/cloudflare-workflows in secondsky/claude-skills) into .agents/skills/cloudflare-workflows in your project. Codex loads it when a task matches its description.

Can I use Cloudflare Workflows in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add secondsky/claude-skills --skill cloudflare-workflows -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/cloudflare-workflows, .gemini/skills/cloudflare-workflows, .github/skills/cloudflare-workflows and .opencode/skills/cloudflare-workflows in your project.

What does Cloudflare Workflows need to run?

Going by SKILL.md and its folder, Cloudflare Workflows needs TypeScript for the scripts in its folder and the command-line tools its instructions call (wrangler and npm). Our summary lists: Node.js.

Does Cloudflare Workflows access the network?

SKILL.md names 2 domains. As links in the text: developers.cloudflare.com and blog.cloudflare.com. This is read from the text; nothing was executed.

Is Cloudflare Workflows safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Cloudflare Workflows use?

Cloudflare Workflows is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Cloudflare Workflows use?

About 4.2k tokens (SKILL.md is roughly 17k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 22k tokens, read only when the agent opens those files.

What are the alternatives to Cloudflare Workflows?

Skills that share tags, products or a category with Cloudflare Workflows: Durable Objects (cloudflare/skills, 3k stars), Agents SDK (cloudflare/skills, 3k stars), Memora (agentic-box/memora, 731 stars) and Building MCP Server On Cloudflare (CommandCodeAI/agent-skills, 132 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Cloudflare Workflows?

secondsky (a GitHub user) maintains it in secondsky/claude-skills, which has 227 GitHub stars. The repository holds 169 skills in this directory. The repository was last updated on September 28, 2026.

Source: secondsky/claude-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.