Cloudflare Workspace is a virtual filesystem that lives inside a Durable
Object and projects itself into a sandbox container as a real FUSE
mount. The Durable Object holds the authoritative state in SQLite; a
sandbox-side daemon (wsd) mounts that state as a filesystem and syncs
changes back over a capnweb RPC channel.
Important
PREVIEW ONLY This package is provided as a preview for feedback only. APIs are unstable and the design is subject to change.
Suitable for experiments, exploration and prototypes. It is NOT suitable for production use at this time.
The specification under docs/ is forward-looking — read it for
intent, not as description of the code today.
- Node 22 or newer.
- npm. This repo uses npm workspaces.
- Linux with FUSE if you want to run
packages/wsdend-to-end. Other packages build and test on macOS as well. - Docker, optionally, for
examples/wsd-container.
git clone https://github.com/cloudflare/workspace.git
cd workspace
npm install
npm run build:all
npm testTo see the pieces working together, start with the examples:
examples/wsd-container— runswsdinside a container, mounts a workspace, and talks to a Durable Object over capnweb.examples/think— an agent that uses the workspace as its working directory.
The repo is a small monorepo. Each package has its own README with package-specific status and usage notes.
packages/dofs(@cloudflare/dofs) — Durable Object SQLite-backed virtual filesystem, sync protocol building blocks, and a@platformatic/vfsprovider for Node.packages/rpc(@cloudflare/workspace-rpc) — capnweb wire types and server/client helpers shared between the Durable Object andwsd.packages/wsd(@cloudflare/workspace-wsd) — thewsddaemon: a FUSE mount plus HTTP/WebSocket RPC server that runs inside the sandbox container.packages/workspace(@cloudflare/workspace) — the top-level Workspace package consumed by Durable Objects. Work in progress.
docs/— design specification. Forward-looking; treat as intent.
See CONTRIBUTING.md for setup, formatting,
testing, commit message, and pull request conventions.
If you're working in this repo as an agent, start with
AGENTS.md and the skills under
.agents/skills/.