[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:computer":3},"\u003Ch1>Cloudflare Computer\u003C\u002Fh1>\n\u003Cp>Cloudflare Computer is a virtual filesystem that lives inside a\nDurable Object. The Durable Object holds the authoritative state in\nSQLite and exposes one pluggable execution surface through\n\u003Ccode>workspace.runtime\u003C\u002Fcode>. Three backends ship today:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Container\u003C\u002Fstrong> projects the SQLite state into a sandbox container as\na real FUSE mount. A sandbox-side daemon (\u003Ccode>computerd\u003C\u002Fcode>) mounts the state\nas a filesystem and syncs changes back over a capnweb RPC channel.\nFull Linux userland, real binaries, real network.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Isolate shell\u003C\u002Fstrong> runs \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fjust-bash\" rel=\"nofollow ugc noopener\">just-bash\u003C\u002Fa>\nin a Dynamic Worker. It reaches the authoritative Workspace over\nWorkers RPC, so there is no second store or sync round trip.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Isolate JavaScript\u003C\u002Fstrong> runs an ECMAScript module in a fresh Dynamic\nWorker with structured input\u002Fresults, durable relative imports,\nconfigured libraries, Workspace-backed \u003Ccode>node:fs\u002Fpromises\u003C\u002Fcode>, and trusted \u003Ccode>ws:git\u003C\u002Fcode> and\n\u003Ccode>ws:artifacts\u003C\u002Fcode> modules.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>A Workspace may register multiple backends under stable IDs.\n\u003Ccode>workspace.runtime.exec(source, { backend })\u003C\u002Fcode> is the single execution\nentry point; the selected backend defines whether \u003Ccode>source\u003C\u002Fcode> is a shell\ncommand or an ECMAScript module. Backends connect lazily on first use.\u003C\u002Fp>\n\u003Cp>Workspace can also be constructed without a backend at all, giving\ncallers the filesystem on its own.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>[!IMPORTANT]\n\u003Cstrong>PREVIEW ONLY\u003C\u002Fstrong> This package is provided as a preview for feedback only.\nAPIs are unstable and the design is subject to change.\u003C\u002Fp>\n\u003Cp>Suitable for experiments, exploration and prototypes. It is NOT suitable\nfor production use at this time.\u003C\u002Fp>\n\u003Cp>The specification under \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fdocs\u002F\" rel=\"nofollow ugc noopener\">\u003Ccode>docs\u002F\u003C\u002Fcode>\u003C\u002Fa> is forward-looking — read it for\nintent, not as description of the code today.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2>Using it\u003C\u002Fh2>\n\u003Cp>If you want to build on Cloudflare Computer, install\n\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fpackages\u002Fcomputer\u002FREADME.md\" rel=\"nofollow ugc noopener\">\u003Ccode>@cloudflare\u002Fcomputer\u003C\u002Fcode>\u003C\u002Fa> and follow that\npackage's README — it has the installation steps, the entrypoint map,\nand worked examples of the \u003Ccode>fs\u003C\u002Fcode> and \u003Ccode>runtime\u003C\u002Fcode> surfaces.\u003C\u002Fp>\n\u003Cp>To contribute feedback, see \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002FCONTRIBUTING.md\" rel=\"nofollow ugc noopener\">\u003Ccode>CONTRIBUTING.md\u003C\u002Fcode>\u003C\u002Fa>.\nApproved collaborators should follow \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002FCOLLABORATORS.md\" rel=\"nofollow ugc noopener\">\u003Ccode>COLLABORATORS.md\u003C\u002Fcode>\u003C\u002Fa>\nfor setup, build, and test instructions.\u003C\u002Fp>\n\u003Ch2>Examples\u003C\u002Fh2>\n\u003Cp>The \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002F\u003C\u002Fcode>\u003C\u002Fa> directory holds runnable consumers of the\npublic surface. Each is a Worker workspace with its own README.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\u002Fcontainer\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002Fcontainer\u003C\u002Fcode>\u003C\u002Fa> — runs \u003Ccode>computerd\u003C\u002Fcode> inside a\ncontainer, mounts a workspace, and talks to a Durable Object over\ncapnweb. A \u003Ccode>write\u003C\u002Fcode> \u002F \u003Ccode>read\u003C\u002Fcode> \u002F \u003Ccode>exec\u003C\u002Fcode> HTTP surface.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\u002Fworker-shell\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002Fworker-shell\u003C\u002Fcode>\u003C\u002Fa> — same HTTP surface as the\ncontainer example, but the shell runs \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fvercel-labs\u002Fjust-bash\" rel=\"nofollow ugc noopener\">just-bash\u003C\u002Fa>\nin a Dynamic Worker loaded through \u003Ccode>env.LOADER\u003C\u002Fcode>. No container.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\u002Fworker-javascript\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002Fworker-javascript\u003C\u002Fcode>\u003C\u002Fa> — mirrors\n\u003Ccode>worker-shell\u003C\u002Fcode>, but \u003Ccode>exec\u003C\u002Fcode> evaluates an ECMAScript module in a Dynamic\nWorker instead of running a shell command.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\u002Fthink\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002Fthink\u003C\u002Fcode>\u003C\u002Fa> — a \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@cloudflare\u002Fthink\" rel=\"nofollow ugc noopener\">\u003Ccode>@cloudflare\u002Fthink\u003C\u002Fcode>\u003C\u002Fa>\nchat agent that uses the workspace as its working directory, reachable\nfrom a terminal.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\u002Fthink-compare-runtimes\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002Fthink-compare-runtimes\u003C\u002Fcode>\u003C\u002Fa> —\na web UI that runs the same agent task against the container and\nworker runtimes side by side.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\u002Ftutorial\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002Ftutorial\u003C\u002Fcode>\u003C\u002Fa> — a step-by-step build: one\nendpoint, one agent that writes a markdown recipe card on the host and\nruns \u003Ccode>pandoc\u003C\u002Fcode> on it in the container to produce a PDF.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\u002Fartifacts\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002Fartifacts\u003C\u002Fcode>\u003C\u002Fa> — generates a Worker project\nin a workspace and publishes it to Cloudflare Artifacts as a\nclone-ready repo.\u003C\u002Fli>\n\u003Cli>\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcloudflare\u002Fcomputer\u002Fblob\u002FHEAD\u002Fexamples\u002Fassets\" rel=\"nofollow ugc noopener\">\u003Ccode>examples\u002Fassets\u003C\u002Fcode>\u003C\u002Fa> — turns a prompt into an image with\nWorkers AI, writes it to the workspace, and returns a shareable link\nthrough \u003Ccode>@cloudflare\u002Fcomputer\u002Fassets\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2>Repository layout\u003C\u002Fh2>\n\u003Cp>The repo is a small monorepo. Each package has its own README with\npackage-specific status a\u003C\u002Fp>\n",1786232074692]