Skip to content

What is Butler?

Butler is a local development environment manager for macOS. It runs your PHP sites on real web servers, gives them https://your-app.test addresses with trusted certificates, and manages the databases, caches, mail catcher and other services your projects depend on. If you’ve used Laravel Valet or Herd, Butler will feel familiar — it aims to be compatible with the same commands where it can.

  • Nothing goes through Homebrew. Every runtime Butler manages — PHP, MySQL, Postgres, Caddy, nginx and the rest — is downloaded as a self-contained, checksum-verified static binary. Your system stays clean, and versions don’t drift when you brew upgrade something unrelated.
  • A single tool. There’s one butler binary and one optional menu-bar app. Install it, run butler system install, and you have a working stack.
  • The app is optional. Butler runs as a background service. The menu-bar app is a convenient window onto it — quitting the app doesn’t stop your sites.
  • Lean by default. A fresh install is just the router, one web server and one PHP version. Databases, caches, search, mail and storage are added only when you ask for them.

Butler is the same product whether you drive it from the keyboard or the menu bar. They talk to the same background service, so changes you make in one show up instantly in the other.

  • The CLI — the butler command. Everything Butler can do is a subcommand: butler link, butler secure, butler use 8.3, and so on. See the CLI reference.
  • The menu-bar app — a dashboard for your sites and services with buttons for the common actions, plus first-run onboarding. See the menu bar app.

You don’t need to know the internals to use Butler, but a one-paragraph mental model helps. A small background service (the daemon) owns everything: it keeps track of your sites, generates web-server configs, answers DNS for *.test, issues certificates, and starts and supervises every process. A tiny privileged piece binds ports 80 and 443 at login and forwards traffic to the daemon’s routers. The app and the CLI are both just clients that send requests to the daemon — neither one does the actual work, which is why closing the app leaves your sites running.

  • macOS on Apple Silicon is the primary, fully-supported platform.
  • Linux is an emerging backend target — the core runs and installs systemd user services, but the service catalog is still filling in. This manual describes the macOS experience unless noted otherwise.

Ready to install? Head to Installation.