Skip to content

cloudflare/workspace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

315 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cloudflare Workspace

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.

Requirements

  • Node 22 or newer.
  • npm. This repo uses npm workspaces.
  • Linux with FUSE if you want to run packages/wsd end-to-end. Other packages build and test on macOS as well.
  • Docker, optionally, for examples/wsd-container.

Quick start

git clone https://github.com/cloudflare/workspace.git
cd workspace
npm install
npm run build:all
npm test

To see the pieces working together, start with the examples:

  • examples/wsd-container — runs wsd inside 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.

Repository layout

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/vfs provider for Node.
  • packages/rpc (@cloudflare/workspace-rpc) — capnweb wire types and server/client helpers shared between the Durable Object and wsd.
  • packages/wsd (@cloudflare/workspace-wsd) — the wsd daemon: 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.

Documentation

  • docs/ — design specification. Forward-looking; treat as intent.

Contributing

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/.

About

@cloudflare/workspace, give your agent a computer 💻

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors