# Prerequisites for Using Cloudflare Computer: A Technical Setup Guide

> Discover the essential prerequisites for using cloudflare/computer. Learn about Node.js, npm, Wrangler CLI, and libfuse setup for local container backend.

- Repository: [Cloudflare/computer](https://github.com/cloudflare/computer)
- Tags: how-to-guide
- Published: 2026-08-09

---

**To use cloudflare/computer, you need Node.js ≥18, npm, a Cloudflare account with the wrangler CLI, and system-level libfuse development headers when running the container backend locally.**

Cloudflare Computer is a virtual filesystem built on top of Cloudflare Durable Objects that enables remote code execution across multiple backends. Before deploying Workers or running the `computerd` daemon, you must satisfy specific environment requirements ranging from JavaScript runtimes to native system libraries. This guide documents every prerequisite found in the repository source, from [`README.md`](https://github.com/cloudflare/computer/blob/main/README.md) to [`AGENTS.md`](https://github.com/cloudflare/computer/blob/main/AGENTS.md), ensuring your development environment matches the framework's architecture.

## Node.js and npm Runtime

All source code, build scripts, and examples in the cloudflare/computer repository are written in TypeScript and published as npm packages. You must install **Node.js ≥18** and **npm** to build and run the project.

The core package installation follows standard npm workflows:

```bash
npm i @cloudflare/computer

```

## Cloudflare Platform Requirements

Because Computer persists state in a **Durable Object** and executes code via Worker backends (container, isolate-shell, isolate-js), you need an active Cloudflare account and the **wrangler** CLI tool. The Durable Object holds the SQLite-backed virtual filesystem state, while the workers execute code against it.

After configuring your [`wrangler.toml`](https://github.com/cloudflare/computer/blob/main/wrangler.toml) with the appropriate Durable Object bindings, deploy the Worker:

```bash
wrangler publish

```

The TypeScript implementation requires binding the Durable Object in your Worker code. As shown in the repository examples, you instantiate a `Workspace` from the Durable Object environment binding:

```typescript
import { Workspace } from '@cloudflare/computer';

export default {
  async fetch(request, env) {
    // env.WORKSPACE is the Durable Object binding defined in wrangler.toml
    const ws = await env.WORKSPACE.get();
    const runtime = ws.runtime({ backend: 'container' });
    const { stdout } = await runtime.exec('echo "Hello from Computer"', {});
    return new Response(stdout);
  },
};

```

## Native Build Tools for Container Backend

If you intend to use the **container backend** or run the `computerd` daemon locally, you must install native build tools to compile the `fuse-native` addon. According to [`AGENTS.md`](https://github.com/cloudflare/computer/blob/main/AGENTS.md), Debian and Ubuntu systems require the following packages:

```bash
sudo apt-get install -y build-essential libfuse-dev

```

The `computerd` daemon depends on the native `fuse-native` addon, which must compile against system libfuse headers. Without these dependencies, the build process fails when attempting to generate the native bindings.

### ARM64 Host Considerations

On **arm64 hosts** (including Apple Silicon), the pre-built `fuse-native` binary only ships for x64 architectures. You must replace the bundled library with the system-provided `libfuse-2` to avoid "file in wrong format" linker errors. The repository documentation in [`AGENTS.md`](https://github.com/cloudflare/computer/blob/main/AGENTS.md) specifies that arm64 builds require explicit linking against the system libfuse rather than the bundled pre-built binary.

## Docker and FUSE Device Configuration

While optional for basic TypeScript development, **Docker** is strongly recommended for the container backend. The container example mounts the workspace via a real FUSE driver, which requires a privileged container with `CAP_SYS_ADMIN` capabilities.

Additionally, the host must expose **`/dev/fuse`** to the container. The test suite in `packages/computerd` skips real-FUSE tests when `/dev/fuse` is missing, falling back to a shim implementation. For production container workloads, ensure the device exists and Docker runs with appropriate privileges as documented in [`packages/computerd/README.md`](https://github.com/cloudflare/computer/blob/main/packages/computerd/README.md).

## CI/CD Build Optimizations

For GitHub Actions or continuous integration environments where you only need the TypeScript packages without native addon functionality, use the `--ignore-scripts` flag:

```bash
npm install --ignore-scripts

```

This prevents the `fuse-native` build from executing on CI runners that lack the system headers, allowing you to compile and test the TypeScript portions independently. The repository's [`AGENTS.md`](https://github.com/cloudflare/computer/blob/main/AGENTS.md) file documents this approach under "Build before you test" workflows.

## Optional Backend Dependencies

Certain backends and examples require additional, optional software:

- **`just-bash`**: Required for the isolate-shell backend, which runs a minimal Bash environment inside a Dynamic Worker.
- **`@cloudflare/think`**: Required for the "think" example demonstrations that use the Think SDK agent.

These dependencies are only necessary when running specific examples from the root [`README.md`](https://github.com/cloudflare/computer/blob/main/README.md) and not for core Computer functionality.

## Summary

- **Node.js ≥18 and npm** are mandatory for all cloudflare/computer usage.
- A **Cloudflare account** and **wrangler CLI** are required to deploy Durable Objects and Workers.
- **Native build tools** (`build-essential`, `libfuse-dev`) are required only for the container backend and `computerd` daemon.
- **ARM64 hosts** need system `libfuse-2` to replace the bundled x64 binary.
- **Docker** and **`/dev/fuse`** are required for real-FUSE container mounts but not for basic development.
- Use **`npm install --ignore-scripts`** in CI environments to skip native builds when testing TypeScript code only.

## Frequently Asked Questions

### Do I need Docker to use Cloudflare Computer?

No, Docker is only required if you are running the container backend with real FUSE mounts locally. For development and deployment of the isolate-js or isolate-shell backends, or when using cloudflare/computer purely as an npm package in a Worker, Docker is unnecessary. The container backend specifically requires Docker to provide the sandboxed environment and privileges needed for FUSE operations as documented in [`packages/computerd/README.md`](https://github.com/cloudflare/computer/blob/main/packages/computerd/README.md).

### Can I run cloudflare/computer on Apple Silicon or ARM64 Linux?

Yes, but you must install the system `libfuse-2` library. The `fuse-native` dependency ships with a pre-built binary for x64 architectures only. On ARM64 systems, the build process must link against the system-provided libfuse headers and libraries instead of the bundled binary. Install `libfuse-dev` and ensure your build environment can compile native addons against the ARM64 system libraries.

### What is the minimum Node.js version required for cloudflare/computer?

The repository requires **Node.js version 18 or higher**. All package scripts, TypeScript compilation, and npm workspaces are configured for Node 18+. Attempting to build or run the packages on earlier Node versions may result in compatibility errors with modern JavaScript syntax or npm workspace features used throughout the monorepo.

### Why does npm install fail with fuse-native compilation errors?

This occurs when installing the `computerd` package without the required system headers. The `fuse-native` addon requires `libfuse-dev` (on Debian/Ubuntu) or equivalent FUSE development headers on other distributions to compile its native bindings. To avoid this error entirely in CI environments where you do not need the daemon, use `npm install --ignore-scripts` to skip the native build phase as recommended in [`AGENTS.md`](https://github.com/cloudflare/computer/blob/main/AGENTS.md).