NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
npm · #1829 most downloaded on npm
Fun, full-featured, fully-local simulator for Cloudflare Workers
Last release 2 days ago
21 Sep 2026
Ships on a steady schedule
a new release about every 1 weeks
Nearly every release is documented
notes for 60 of the last 60 stable releases
50 versions withdrawn
withdrawn after publishing
5 years old
1663 releases · first in 2021
One column per quarter.
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Experimental cloudflare.config.ts files now define settings and resources together in a default-exported defineConfig() call. Add a Worker under worke
#15713 3c75cad Thanks @jamesopstad! - Define experimental Cloudflare configuration with a single default export
Experimental cloudflare.config.ts files now define settings and resources together in a default-exported defineConfig() call. Add a Worker under worker, add Containers to the containers array, or omit both to provide settings only.
import * as entrypoint from "./src/index.ts" with { type: "cf-worker" };
export default defineConfig({
accountId: "...",
complianceRegion: "public",
worker: {
name: "my-worker",
compatibilityDate: "2026-09-18",
entrypoint,
},
});#15707 95af41d Thanks @halfstack-dev! - Support nested D1 migration layouts in readD1Migrations()
readD1Migrations() now accepts the same migrationsDir / migrationsPattern options Wrangler uses, so Vitest can apply Drizzle-style nested files such as 0001_init/migration.sql. Discovery is shared with Wrangler via @cloudflare/workers-utils, so the test path and wrangler d1 migrations apply stay aligned.
The original readD1Migrations(migrationsPath) signature still reads only top-level *.sql files in that directory.
Add @cloudflare/codemod package with internal AST-based codemod utilities ( parseJs , parseTs , parseFile , transformFile , mergeObjectProperties ) bu
#13102 e200179 Thanks @dario-piotrowicz! - First release of new package
Add @cloudflare/codemod package with internal AST-based codemod utilities (parseJs, parseTs, parseFile, transformFile, mergeObjectProperties) built on recast.
#15117 f0c9c66 Thanks @edmundhung! - Support Workerd's new module registry in Workers Vitest tests
The pool now follows Workerd's V2 module fallback protocol when new_module_registry is selected while retaining the V1 path for legacy_module_registry. Tests using the new registry preserve URL-based import.meta behavior and load CommonJS dependencies as native CommonJS modules with named exports.
#15272 c921b3f Thanks @penalosa! - Add an experimental newConfig option for loading the Worker's configuration from cloudflare.config.ts
Projects that have migrated to the new TypeScript configuration format had no way to run their Vitest suite against their real bindings, since there was no Wrangler configuration file left to point wrangler.configPath at. This adds the missing option, modelled on @cloudflare/vite-plugin's experimental.newConfig:
import { cloudflareTest } from "@cloudflare/vitest-plugin";
import { defineProject } from "vitest/config";
export default defineProject({
plugins: [cloudflareTest({ experimental: { newConfig: true } })],
});newConfig: true loads cloudflare.config.ts from the project root; pass { configPath: "..." } to load it from elsewhere. Config functions are called with ctx.mode set to Vite's mode, which defaults to "test" and can be overridden with --mode. experimental.newConfig cannot be combined with wrangler.
This is experimental and may change without a major version bump. Wrangler environments, wrangler.config.ts tooling configuration, and type generation are not supported yet.
#15293 7a9b8a7 Thanks @thatsKevinJain! - Fix "Network connection lost" when multiple test files use remote bindings
Remote proxy sessions are shared across pool workers by Wrangler config path, but were disposed during each test file's teardown. Because Vitest starts the next file's worker before the previous one finishes stopping, later files reused an already-disposed session and failed with "Network connection lost". Sessions are now disposed only once the last pool worker stops.
Updated dependencies [aa54b49, 4a67a28, 2d78137, 04e8564, d1cc3af, 693ca29, 693ca29, 693ca29, daefb3c, 37ed753, f76b68e, ad89456, c809851, c66d2d5, 693ca29, 74de3ab, 0cb8690, 9fcb1c9, 22182da, a4c3458, 433fa98, d589d30, dd5148d, 82d11fc]:
Nothing published for this version
The package has been renamed from @cloudflare/vitest-pool-workers to @cloudflare/vitest-plugin to be clearer about it's usage.
#15074 bfcc442 Thanks @penalosa! - Rename @cloudflare/vitest-pool-workers to @cloudflare/vitest-plugin for the v1 release
The package has been renamed from @cloudflare/vitest-pool-workers to @cloudflare/vitest-plugin to be clearer about it's usage.
To migrate, run the codemod from the root of your project:
npx @cloudflare/codemods vitest:pool-workers-to-vitest-pluginThis handles the whole rename for you:
package.json, moving plain version ranges to ^1.0.0 while preserving workspace:/catalog:/link:/file: protocol references, along with any overrides, resolutions and pnpm.overrides entries.import { cloudflareTest } from "@cloudflare/vitest-pool-workers" to import { cloudflareTest } from "@cloudflare/vitest-plugin", preserving any subpaths.types entry in your test tsconfig.json from @cloudflare/vitest-pool-workers/types to @cloudflare/vitest-plugin/types.Pass --dry-run to preview the changes first, or --files <glob> to restrict which files are considered.
If you would rather migrate by hand, the only changes needed are the dependency name in package.json, the package specifier in any import/require of the plugin, and the types entry in your test tsconfig.json.
#14690 d81fae7 Thanks @penalosa! - Add a central CLI for Cloudflare codemods
Run a codemod by name, e.g. npx @cloudflare/codemods vitest:v3-to-v4. The initial migrations cover Vitest v3 to v4 configuration (vitest:v3-to-v4) and the @cloudflare/vitest-pool-workers to @cloudflare/vitest-plugin v1 rename (vitest:pool-workers-to-vitest-plugin). The existing Vitest transform now lives in this dedicated package.
Nothing published for this version
Nothing published for this version
Updated dependencies [`2194f88`]:
2194f88]:
Provides both a programmatic API and a CLI (pages-functions build) for converting a Cloudflare Pages functions/ directory into a Cloudflare Workers bu
#14785 5e6556a Thanks @dario-piotrowicz! - Publish helpers for compiling Pages Functions directories into Workers bundle
Provides both a programmatic API and a CLI (pages-functions build) for converting a Cloudflare Pages functions/ directory into a Cloudflare Workers bundle:
npx @cloudflare/pages-functions build ./functions --outdir ./dist
The package compiles the Worker and its auxiliary modules, but does not deploy them or generate deployment configuration. Consumers must provide the appropriate Wrangler configuration, including the selected fallback service binding (ASSETS by default) when applicable.
#14928 f05a0de Thanks @dario-piotrowicz! - Improve asset directory error messages in Pages Functions builds
Previously, when an imported asset directory was invalid, a single error message was shown: '<path>' does not exist or is not a directory. This has been split into two distinct, actionable messages:
'<path>' does not exist. Please create the directory or check the path and try again.'<path>' is not a directory. Please provide a path to a valid directory.b21eac2 Thanks @jamesopstad! - Move build output utils to new @cloudflare/build-output-utils packageb21eac2]:
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Nothing published for this version
Your coding agent can read these notes before it upgrades. Set up the MCP server →