cflocal-cf

local-first developer tooling

See inside your Cloudflare Worker’s storage, without leaving localhost.

local-cf boots your worker and a studio sidecar in one runtime, so the dashboard reads and writes the exact same D1, KV, R2, Durable Objects and Queues your code does.

npx local-cfRead the docs

The same bindings, not a copy

In dev mode the studio runs inside the same workerd process as your worker, wired to the same D1, KV, R2 and Durable Object instances. Not a mirror synced over disk — the same objects.

Fully offline

The dashboard is a static build shipped inside the npm package and served by the sidecar itself. No hosted domain, no account, no network.

Honest about fidelity

Attach mode shares files, not memory. Every binding says which it is, so you always know whether you are looking at live Durable Object state or yesterday's flush.

Migrations, seeding, snapshots

Apply and track D1 migrations, import and export KV, and snapshot the whole local state before a risky change — then restore it in one click.

Typed end to end

The sidecar is a Hono app and the dashboard consumes it through hc<ApiType>. Routes and UI cannot drift, with no OpenAPI document in between.

Audit log with undo

Every write made through the dashboard is recorded, and the ones with a recoverable inverse can be undone.

Three modes, stated plainly

ModeCommandD1 / KV / R2Durable Objects & Queues
A — shared runtimelocal-cfSame live objectsLive, including in-memory state
B — attachedlocal-cf attachSame files on diskNot available across processes
C — remotelocal-cf remoteYour real Cloudflare accountNo REST API equivalent