Skip to content

Get started

Install open-compute, start one local instance, and deploy a TypeScript Worker.

This path installs the current formal release, starts one local instance, and deploys a minimal Worker. Formal binaries are available for macOS on Apple silicon and Linux on ARM64 or x86-64.

Copy this prompt into Codex, Claude Code, or another coding agent. The code block has a one-click copy button:

Read https://open-compute.dev/llms.txt and install the current open-compute release on this machine. Configure one local instance, inspect any existing installation first, preserve its configuration and instance data, ask before using sudo or making destructive changes, then run ocd status and report the result.

llms.txt contains the minimum setup and usage instructions, with links to detailed documentation when needed.

Install the latest formal release:

Terminal window
curl -fsSL https://open-compute.dev/install.sh | sh

The installer selects the matching platform binary and verifies the release checksums. It installs ocd below ~/.local and stores its private receipt in ~/.open-compute/install-receipt.json; temporary downloads stay under ~/.open-compute/tmp/. It adds ~/.local/bin to supported shell configuration when needed, or prints one exact export PATH=... command. It does not create configuration, instance data, secrets, or a service.

Create the recommended user configuration and data directories, register the login-scoped user service, and start the first instance:

Terminal window
ocd setup --yes

Verify the instance and open the Dashboard:

Terminal window
ocd status
ocd dashboard

status must report ready. dashboard opens a one-time login URL; it does not ask you to copy a long-lived admin token.

This creates one scoped daemon and its first isolated instance. Add more later with ocd instance setup --name staging --yes; then use --instance staging for instance-scoped commands. See Instances.

The user service starts again at login but may stop at logout. To run a host-wide service before login, explicitly install and set up system scope:

Terminal window
curl -fsSL https://open-compute.dev/install.sh | sudo sh
sudo ocd setup --system --yes

Use Node.js 22.18 or later. Bun manages dependencies; Node runs cf.

Terminal window
mkdir hello-worker && cd hello-worker
bun init -y
bun add -d cf@1.0.0-beta.12 @cloudflare/vite-plugin@2.0.0-beta.sha-52b0dc0e9 vite typescript
mkdir src

These versions match our internal CI baseline. User projects may choose another cf version: 1.0.x does not warn; other versions warn and still execute.

Create cloudflare.config.ts:

import { defineConfig } from "cf/config";
export default defineConfig({
worker: {
name: "hello-worker",
entrypoint: "src/index.ts",
compatibilityDate: "2026-09-08",
workersDev: false,
},
});

Create vite.config.ts:

import { cloudflare } from "@cloudflare/vite-plugin";
import { defineConfig } from "vite";
export default defineConfig({ plugins: [cloudflare()] });

Create src/index.ts:

export default {
fetch(request: Request): Response {
return Response.json({
message: "hello from open-compute",
path: new URL(request.url).pathname,
});
},
} satisfies ExportedHandler;

Create tsconfig.json with strict checking and the official generated types:

{
"compilerOptions": {
"target": "ES2024",
"module": "ESNext",
"moduleResolution": "Bundler",
"lib": ["ES2024"],
"types": [],
"strict": true,
"noEmit": true
},
"include": ["src/**/*.ts", ".cloudflare/types/**/*.d.ts"]
}

Add package scripts for dev: cf dev and build: cf workers types --mode production && tsc --noEmit && cf build --mode production, then run:

Terminal window
bun run dev
bun run build
ocd cf deploy --prebuilt --mode production

cf dev uses official local simulations. Deployment uses the selected open-compute instance. Inspect logs through Dashboard Live Tail; cf currently has no equivalent terminal streaming command.

Migrate an existing Wrangler project explicitly with cf migrate ./wrangler.jsonc --bundler vite, finish its TODOs, and configure Vite. ocd only diagnoses old configuration files and never runs migration automatically.

Continue with Develop, Operate, and Products.

With npm use npm install and npm run dev/build; with pnpm use pnpm install --frozen-lockfile and pnpm run dev/build. Install development dependencies with npm install --save-dev / pnpm add -D.