Open-source · Podman-native · Rootless

Local PHP development for Linux & macOS

Lerd runs Nginx, PHP-FPM and your services as rootless Podman containers. Automatic .test domains, per-project PHP & Node, one-command TLS. No Docker daemon, no sudo, no system pollution.

Rootless · no sudoNo Docker daemonPHP 7.4 – 8.5
~/code/acme · lerd
$
Auto-detected on lerd link Laravel Symfony WordPress Drupal CakePHP Statamic CodeIgniter Tempest
Built for developer experience

Everything the Linux PHP dev
never had, in one binary.

From lerd link to a live HTTPS site in seconds. Then the deep stuff: flame-graph profiling, a dump debugger, a Tinker REPL, and worker self-heal, surfaced across CLI, dashboard, TUI and MCP.

Rootless Podman, zero daemon

Nginx, PHP-FPM and services run as your user via systemd user units, dual-stack IPv4 + IPv6 where available. No Docker, no background daemon, no sudo.

// no system pollution

Automatic .test domains + TLS

One command provisions a trusted certificate via mkcert. Or opt out and use *.localhost, no dnsmasq, no resolver tweaks, no sudo for the DNS bits.

// project.test → https

Per-project PHP & Node

PHP 8.1–8.5 plus a frozen 7.4 / 8.0 legacy tier. Switch with one command, isolated per repo.

SPX flame-graph profiler

One-click on/off. Every PHP-FPM request becomes a flame graph in a same-origin Profiler view.

Worker self-heal

Queue, schedule, Horizon and Reverb workers plus the Stripe listener, monitored everywhere and recovered with one click.

Debug window for every dump()

Intercepts every dump() / dd() and streams it to the dashboard, TUI and MCP, scoped per site and per worktree branch. Captures SQL with N+1 detection, mail, events, jobs & outgoing HTTP. Your response stays clean.

// Laravel + Symfony

In-browser Tinker REPL

A PHP REPL per site with autocomplete for your models, composer helpers & built-ins. Live syntax checking and a collapsible tree for dump() output. Works on Laravel, Symfony & any composer project.

// artisan tinker, in the UI
Also includesFrankenPHP & Octanebtop-style TUI & system trayPolyglot sites · Node, Python, Go & Ruby
The built-in Web UI · installable as a PWA

A dashboard that actually
manages your stack.

Switch PHP versions, toggle services, tail live logs, run Tinker, all from the browser. Click around; this is the real thing.

lerd.localhost
Model Context Protocol · eleven grouped tools

Let your AI assistant run
the dev environment.

Lerd ships a built-in MCP server. Connect Claude Code, Cursor, Codex, Gemini, Copilot, Junie, Antigravity or Windsurf and scaffold projects, switch PHP, run migrations and tail logs, straight from chat.

Claude Code · lerd-mcp
site.link · lerd link

Link the current directory, auto-detect the framework, provision TLS.

site.php · lerd isolate 8.4

Switch the per-site PHP version without an FPM restart.

service.start · redis, mysql…

Start or stop shared services on demand, rootless.

logs.fetch · dump · queries

Stream PHP-FPM, queue and debug output back into the chat.

Claude Code Cursor Codex CLI Gemini CLI Copilot Junie Antigravity Windsurf
Why Lerd

The Herd workflow, without
the Docker tax.

A zero-config shared stack you can drop any project into without touching its files. Here's how it lines up against the tools Linux PHP devs reach for today.

Bundled, rootless, on-demand

Every service your app needs.

Toggle them per workspace from the CLI, dashboard or MCP. Need something else? Drop a Containerfile.lerd to run Node, Python, Ruby or Go alongside your PHP sites.

Get started

Live in two commands.

~/code/acme