The @cloudflare/codemode package has been rewritten into a modular, runtime-agnostic SDK.
Code Mode enables LLMs to write and execute TypeScript that orchestrates your tools, instead of calling them one at a time. This can (and does) yield significant token savings, reduces context window pressure and improves overall model performance on a task.
The new Executor interface is runtime agnostic and comes with a prebuilt DynamicWorkerExecutor to run generated code in a Dynamic Worker Loader.
Breaking changes
- Removed
experimental_codemode()andCodeModeProxy— the package no longer owns an LLM call or model choice - New import path:
createCodeTool()is now exported from@cloudflare/codemode/ai
New features
createCodeTool()— Returns a standard AI SDKToolto use in your AI agents.Executorinterface — Minimalexecute(code, fns)contract. Implement for any code sandboxing primitive or runtime.
DynamicWorkerExecutor
Runs code in a Dynamic Worker. It comes with the following features:
- Network isolation —
fetch()andconnect()blocked by default (globalOutbound: null) when usingDynamicWorkerExecutor - Console capture —
console.log/warn/errorcaptured and returned inExecuteResult.logs - Execution timeout — Configurable via
timeoutoption (default 30s)
Usage
JavaScript
import { createCodeTool } from "@cloudflare/codemode/ai";import { DynamicWorkerExecutor } from "@cloudflare/codemode";import { streamText } from "ai";const executor = new DynamicWorkerExecutor({ loader: env.LOADER });const codemode = createCodeTool({ tools: myTools, executor });const result = streamText({model,tools: { codemode },messages,});TypeScript
import { createCodeTool } from "@cloudflare/codemode/ai";import { DynamicWorkerExecutor } from "@cloudflare/codemode";import { streamText } from "ai";const executor = new DynamicWorkerExecutor({ loader: env.LOADER });const codemode = createCodeTool({ tools: myTools, executor });const result = streamText({model,tools: { codemode },messages,});
Wrangler configuration
wrangler.jsonc
{"worker_loaders": [{ "binding": "LOADER" }],}wrangler.toml
[[worker_loaders]]binding = "LOADER"
See the Code Mode documentation for full API reference and examples.
Upgrade
npm i @cloudflare/codemode@latestSource: Cloudflare
Latest Posts
- Workflows – Rollback support now available in Workflows

- OneDrive: Retention enforcement for unlicensed OneDrive accounts [MC1381110]
![OneDrive: Retention enforcement for unlicensed OneDrive accounts [MC1381110] 3 pexels goumbik 1414130](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==)
- Microsoft Teams: Improved app and agent access request flows for admin‑blocked apps [MC1381120]
![Microsoft Teams: Improved app and agent access request flows for admin‑blocked apps [MC1381120] 4 pexels pixabay 162389](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==)
- (Updated) Upcoming change: disabling Teams meeting recording expiration notification emails [MC1245635]
![(Updated) Upcoming change: disabling Teams meeting recording expiration notification emails [MC1245635] 5 pexels pixabay 265087](data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==)


![OneDrive: Retention enforcement for unlicensed OneDrive accounts [MC1381110] 3 pexels goumbik 1414130](https://mwpro.co.uk/wp-content/uploads/2024/08/pexels-goumbik-1414130-150x150.webp)
![Microsoft Teams: Improved app and agent access request flows for admin‑blocked apps [MC1381120] 4 pexels pixabay 162389](https://mwpro.co.uk/wp-content/uploads/2024/08/pexels-pixabay-162389-150x150.webp)
![(Updated) Upcoming change: disabling Teams meeting recording expiration notification emails [MC1245635] 5 pexels pixabay 265087](https://mwpro.co.uk/wp-content/uploads/2024/08/pexels-pixabay-265087-150x150.webp)
