Local Cloudflare dev, simplified

Manage your Workers, route custom domains with HTTPS, switch Node.js versions, and inspect local data — all from a native macOS app or the terminal.

Download for macOS

or install via terminal:

curl -fsSL .../install.sh | sh

Read the docs

Terminal
$ corral project add ./my-api
ok Added project my-api (a1b2c3d4)
$ corral up
ok Infrastructure started
ok Started my-api
✓ my-api running at https://my-api.test

Everything you need for local Cloudflare development

Corral handles the infrastructure so you can focus on building.

One-Click Dev Server

Start, stop, and restart Workers with automatic port allocation, ready detection, and crash recovery.

Custom .test Domains

Every project gets a subdomain.test domain with automatic HTTPS. No /etc/hosts editing.

Data Inspector

Browse D1 databases, KV namespaces, R2 buckets, Durable Objects, and Secrets Store locally.

Node.js, Managed

Install and switch Node.js versions per project. Respects .node-version and .nvmrc automatically.

How it works

Every request flows through a fast, local routing chain — all managed by Corral.

1

my-worker.test

Your browser

2

DNS

dnsmasq resolves *.test

3

Proxy

Caddy terminates HTTPS

4

Worker

wrangler dev serves

Terminal
$ corral status
DNS running
Proxy running
NAME PORT STATE
my-api 8787 running
auth-service 8788 running
dashboard 8789 running
$ corral logs --follow
[14:32:01] my-api | Ready on http://localhost:8787
[14:32:02] auth-service | Ready on http://localhost:8788

Your workflow, your way

Use the native macOS app for visual project management, or drive everything from the terminal with the corral CLI. Both share the same engine — pick whichever fits your workflow.

macOS App
Menu bar presence, one-click start/stop, visual data browsers, Node.js manager.
CLI
Full control from the terminal. JSON output for scripting. Shell shims for seamless Node.js integration.
Both at once
Start a project from the CLI, check its logs in the app — they stay perfectly in sync.

Every project gets a .test domain with automatic HTTPS

Corral sets up DNS resolution and a reverse proxy so each project is accessible at a custom local domain. HTTPS certificates are generated automatically — no self-signed cert warnings.

https:// my-api.test
Worker my-api
Port 8787
TLS automatic (Caddy CA)

Browse D1, KV, R2, and more — right from the app

Inspect your local development data without SQL clients or extra tools. Browse tables, search keys, view objects, and manage secrets in visual browsers with pagination and filtering.

D1 users 1,247 rows
id
name
email
role
1
Alice
alice@example.com
admin
2
Bob
bob@example.com
editor
3
Charlie
charlie@example.com
viewer
Showing 1–3 of 1,247

Per-project Node.js versions. Zero config.

Corral downloads, installs, and switches Node.js versions automatically. It respects .node-version and .nvmrc files, or you can pin versions per project. Install shell shims to use Corral-managed Node from your terminal.

Terminal
$ corral node install 22
Downloading Node.js v22.14.0...
Verifying checksum... ok
Extracting... done
ok Installed Node.js v22.14.0
$ corral project set my-api node-version 22
ok Project setting node-version updated
$ corral exec node -v
v22.14.0

Ready to simplify your Cloudflare workflow?

Get up and running in under a minute. Register a project, start the infrastructure, and open your Worker at a custom .test domain.