Skip to content

Introduction

Corral is a native desktop application and CLI that provides a complete local development environment for Cloudflare Workers and Pages. Think of it as Laravel Herd for the Cloudflare ecosystem — register your projects, and Corral handles the rest.

What Corral Does

  • Manages your dev servers. Start, stop, and monitor wrangler dev processes for all your Cloudflare projects from a single interface. Corral handles port allocation, crash recovery, and process lifecycle automatically.

  • Routes custom local domains. Access your projects at my-worker.test instead of localhost:8787. Corral sets up DNS resolution and a reverse proxy with automatic HTTPS — no manual /etc/hosts editing required.

  • Handles Node.js versions. Install, switch, and pin Node.js versions per project. Corral respects .node-version and .nvmrc files, or you can set versions through its own settings.

  • Inspects local data. Browse your D1 databases, KV namespaces, R2 buckets, Durable Objects, and Secrets Store directly — no SQL clients or extra tools needed.

  • Works your way. Use the native macOS app with its menu bar integration and GUI, or drive everything from the terminal with the corral CLI. Both interfaces share the same engine.

How It Works

When you start a project, Corral orchestrates several services behind the scenes:

my-worker.test
  → macOS resolver sends DNS to dnsmasq (127.0.0.1:5353)
  → dnsmasq resolves *.test → 127.0.0.1
  → Caddy on port 443 reads the Host header, terminates HTTPS
  → Routes to the correct wrangler dev instance (e.g., localhost:8787)

dnsmasq handles DNS resolution for your chosen TLD (.test by default). Caddy acts as a reverse proxy with automatic HTTPS using a locally-trusted certificate authority. Wrangler runs your Cloudflare Workers in local development mode. Corral vendors its own copy of Wrangler and manages Node.js installations, so you don't need to install anything globally.

Two Interfaces, One Engine

macOS App — Lives in your menu bar. Start and stop projects with a click, browse data visually, and manage Node.js versions through a native GUI. See the macOS App overview for details.

CLI — Full control from your terminal. Every feature available in the GUI is also available via the corral command, with JSON output for scripting. See the CLI reference for all commands.

Next Steps