locald is a local development platform: it runs and orchestrates your project services (processes and containers), provides stable local domains + HTTPS, and exposes a dashboard for observability.
curl -fsSL https://raw.githubusercontent.com/wycats/locald/main/install.sh | shAfter installation, run the setup to configure privileged operations:
sudo locald admin setup- Linux (x86_64 or aarch64) — macOS support coming soon
- sudo access for privileged setup (HTTPS certificates, port binding)
See the Contributing Guide for building from source.
This repo is a Rust workspace with a small privileged helper (locald-shim) and several supporting packages (dashboard, docs, e2e harness).
Contributing guide: see CONTRIBUTING.md.
- CLI (user entrypoint):
crates/locald-cli/ - Daemon / orchestration:
crates/locald-server/ - Core config + types:
crates/locald-core/ - Privileged shim (setuid root):
crates/locald-shim/(security-critical) - Utilities:
crates/locald-utils/ - Dashboard (Svelte):
locald-dashboard/ - Docs site:
locald-docs/ - E2E harness:
e2e/rust/locald-e2e/
Design/architecture references:
docs/design/(axioms, vision, architecture)docs/rfcs/(decision history)
CI is the contract. These commands are intended to mirror what GitHub Actions runs (see .github/workflows/ci.yml).
Fast, developer-friendly (no sudo, no locald-e2e):
./scripts/ci-rust-checks-local.sh
CI-like (includes installing the privileged shim + running locald-e2e; requires sudo):
LOCALD_PREPUSH_FULL=1 ./scripts/ci-rust-checks-local.sh
pnpm -C locald-dashboard install --frozen-lockfile && pnpm -C locald-dashboard buildpnpm -C locald-docs install --frozen-lockfile && pnpm -C locald-docs build
./scripts/checkruns a fast sanity pass (Rust build + clippy, docs checks/build, and a basic IPC ping via a sandboxed daemon).
Some features require a privileged shim installed with setuid root permissions.
- Install/repair:
sudo locald admin setup - Diagnose readiness:
locald doctor
The shim is treated as an internal protocol surface; locald will instruct you when the installed shim is outdated.