workflow-devkit

Build durable, resumable TypeScript workflows with Vercel Workflow DevKit. Use when creating long-running processes, AI agents, background jobs, multi-step pipelines, webhooks, or event-driven systems. Triggers on "workflow", "durable", "resumable", "use workflow", "use step".

Safety Notice

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

Copy this and send it to your AI assistant to learn

Install skill "workflow-devkit" with this command: npx skills add johnlindquist/claude/johnlindquist-claude-workflow-devkit

Workflow DevKit

Build reliable, long-running processes with automatic retries, state persistence, and observability.

Quick Reference

PatternUse CaseKey API
WorkflowsOrchestrate durable operations"use workflow" directive
StepsAtomic, retriable units"use step" directive
WebhooksHuman-in-the-loop, callbackscreateWebhook()
ActorsEvent-driven state machinesdefineHook() + for await
StreamingReal-time frontend updatesgetWritable() / run.readable
AI AgentsDurable LLM workflowsDurableAgent + globalThis.fetch = fetch
AI GatewayMulti-provider model switching"provider/model" strings, @ai-sdk/gateway

Prerequisites

pnpm add workflow @workflow/ai ai @ai-sdk/gateway zod

Core Concepts

Workflows ("use workflow")

import { sleep } from "workflow";

export async function myWorkflow(input: string) {
  "use workflow";
  const result = await step1(input);
  await sleep("5s");
  return result;
}

Steps ("use step") - MUST be in SAME FILE as workflow

async function step1(input: string) {
  "use step";
  return await fetch(`/api/data?q=${input}`).then(r => r.json());
}

Error Types

import { FatalError, RetryableError } from "workflow";

// Auto-retried
throw new Error("Transient failure");

// No retry - stops workflow
throw new FatalError("Invalid credentials");

// Custom retry timing
throw new RetryableError("Rate limited", { retryAfter: "60s" });

Detailed Documentation

Imports Cheat Sheet

// Core workflow
import {
  sleep, fetch, FatalError, RetryableError,
  createWebhook, createHook, defineHook,
  getWritable, getWorkflowMetadata, getStepMetadata,
} from "workflow";

// API routes
import { start, getRun } from "workflow/api";

// AI integration
import { DurableAgent } from "@workflow/ai/agent";
import { generateText, generateObject } from "ai";
import { createUIMessageStreamResponse } from "ai";

Examples Directory

Reference implementations: ~/dev/workflow-examples/

ExamplePattern
nextjs/Basic user signup workflow
kitchen-sink/All patterns reference
actors/Event-driven actor pattern
ai-sdk-workflow-patterns/AI agent patterns
flight-booking-app/DurableAgent with tools
rag-agent/RAG with PostgreSQL + embeddings
birthday-card-generator/Webhooks + scheduling

Source Transparency

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

Related Skills

Related by shared tags or category signals.

Coding

github

No summary provided by upstream source.

Repository SourceNeeds Review
General

gemini-image

No summary provided by upstream source.

Repository SourceNeeds Review
General

deepwiki

No summary provided by upstream source.

Repository SourceNeeds Review
General

brainstorm

No summary provided by upstream source.

Repository SourceNeeds Review