Cloudflare has released a CI SDK that lets developers define continuous integration (CI) pipelines in TypeScript rather than YAML, running each step as a durable Cloudflare Workflow.
The package, @cloudflare/ci, targets the Cloudflare Workers runtime rather than Node.js, and publishes TypeScript source for Workers-aware bundlers such as Wrangler.
The initial integration reads repositories from Cloudflare Artifacts, which remains in private beta, and the repository itself is new, published under Apache 2.0 in early August 2026. A working pipeline also binds Workflows, Sandboxes, Containers and Durable Objects, plus R2 when caching is enabled, so this is a platform commitment rather than a drop-in CI replacement. Commands run inside isolated Sandbox containers, which supply the filesystem snapshots that caching depends on.
"In essence, a CI/CD pipeline is just a Workflow," the announcement says. Each stage maps to a Workflow step, so it inherits checkpointed execution: a failed step retries with state preserved, and a run can restart from that step rather than repeating the whole pipeline. Steps start independently and therefore run concurrently unless the pipeline says otherwise. Developers wrap the independent checks in a Promise.all() so that lint, test, typecheck and build all finish before the deploy step starts.
Two mechanisms address familiar CI pain points. Dependency caching stores the result of an install step as a Sandbox filesystem snapshot in an R2 bucket, so later steps reuse it instead of reinstalling. A new events field in the Wrangler configuration then triggers a Workflow directly on a cf.artifacts.repo.pushed event, replacing the earlier subscription, queue and consumer wiring. Cloudflare says it plans to add triggers from any version control system, deployment and preview primitives, and monorepo support.
The repository sets out two constraints that matter in production. Runner commands execute inside retryable Workflow steps, so any command with external side effects must be idempotent or a retry will duplicate it. The SDK also returns raw command output in CiRunnerResult.logs without secret redaction.
Cloudflare published self-healing as a separate example rather than a package feature. It wraps the pipeline in a try/catch and calls an application-owned agent on a runner failure. The agent runs a Think harness over Workers AI, using Moonshot's Kimi coding model to propose a patch, commit it to a branch and leave the original run failed until an engineer merges it. That agent and its AI dependencies sit outside @cloudflare/ci.
Cloudflare is not the first to move pipelines into a general-purpose language. Dagger offers SDKs for eight languages and runs pipelines in containers on any OCI-compatible system, caching operations by content address so the same pipeline runs on a laptop or a CI server. Cloudflare makes the opposite trade, binding execution to Workflows and Sandboxes in return for resumable state.
The architectural shift is from resumable execution to syntax: Workflows checkpoint each step and replay from the last good one, so a pipeline survives failure rather than rerunning from scratch. Declarative configuration remains easier to inspect, diff and govern with policy, while a general-purpose language buys expressiveness at the cost of that legibility. For teams already on Cloudflare's stack, the SDK removes glue code and gives step-level observability. For everyone else, the transferable ideas are durable retries per step and a repair agent that stops short of merging.