Configuration
Corral stores its settings in ~/.corral/config.json. You can view and change them from the CLI or the macOS app.
App Settings
| Setting | Key | Default | Description |
|---|---|---|---|
| TLD | tld | test | Top-level domain for local routing |
| Auto-start | auto-start | false | Start infrastructure and flagged projects on launch |
| Default Node version | default-node-version | (none) | Fallback Node.js version when no project-specific version is set |
| Port range start | port-range-start | 8787 | First port in the allocation pool (100 ports) |
| Default package manager | default-package-manager | (none) | Preferred package manager when no lockfile is present (npm, yarn, pnpm, bun) |
| Preferred browser | preferred-browser | (system default) | Browser bundle ID for opening local dev URLs (e.g. com.google.Chrome) |
| Preferred editor | (macOS app) | (chooser) | Editor bundle ID for Open in Editor; set in the macOS app, not via corral settings set |
| Preferred terminal | (macOS app) | (Terminal.app) | Terminal bundle ID for Open in Terminal; set in the macOS app, not via corral settings set |
| Log font size | ui.logs.font_size | 11 | Monospaced font size in the log viewer |
| Log word wrap | ui.logs.word_wrap | true | Whether long log lines wrap in the log viewer |
Viewing Settings
corral settings show
Changing Settings
corral settings set tld localhost
corral settings set auto-start true
corral settings set default-node-version 22
corral settings set port-range-start 9000
corral settings set default-package-manager pnpm
corral settings set preferred-browser com.google.Chrome
Clear optional settings with none:
corral settings set default-node-version none
corral settings set preferred-browser none
Boolean values accept: true/false, yes/no, 1/0, on/off.
In the macOS app, settings are available under the Settings panel in the sidebar. See macOS App Settings for details.
A few preferences are managed only in the macOS app (and config.json), not via corral settings set — notably Corporate proxy support (Settings → Network & Security), which controls automatic corporate-CA detection for Node tooling behind a TLS-intercepting proxy. See Node.js Management → Corporate proxies.
Data Directory
All Corral data lives in ~/.corral/:
| Path | Contents |
|---|---|
config.json | App-wide settings |
projects.json | Registered projects and their settings |
corral.sock | Daemon Unix socket (JSON-RPC 2.0) |
daemon.pid | Daemon process ID |
daemon.log | Daemon operational log |
node/v{version}/ | Installed Node.js versions |
wrangler/v{version}/ | Vendored Wrangler installations |
caddy/ | Caddy configuration and certificate files |
dnsmasq/ | dnsmasq configuration files |
services/ | Installed service binaries, data, and registry. Layout is <service>/<version>/ so that concurrent major versions (e.g. Postgres 16 and 17) stay isolated — see Services → Data Directory for the full tree. |
logs/ | Persisted log files (per project) |
bin/ | Shell shims for node, npm, npx, cpm |
Environment Variables
CORRAL_DATA_DIR
Override the data directory location:
export CORRAL_DATA_DIR=/path/to/custom/dir
corral status
Or pass it per command:
corral --data-dir /path/to/custom/dir status
This affects where Corral reads and writes all data — settings, projects, Node.js installations, logs, and infrastructure configuration.
NODE_EXTRA_CA_CERTS
Set automatically by Corral for the Node processes it spawns when corporate-CA detection finds corporate roots, so Node tooling works behind a TLS-intercepting proxy. You normally never set this by hand — but if you already export it yourself, Corral folds your certificates in rather than overriding them.
CORRAL_REPORTS_ENDPOINT
Advanced override for the bug report submission endpoint (for staging or end-to-end testing). Defaults to https://api.corral.sh/v1/reports.