Skip to content

Valet & Herd compatibility

Butler is designed to feel familiar if you’re coming from Laravel Valet or Herd. Most everyday commands share the same names, per-project config is cross-readable, and Butler can import an existing setup wholesale. This page is the detailed compatibility map; for the step-by-step import walkthrough see Migrating from Valet or Herd.

Before mapping individual commands, note you usually don’t have to run them one by one. Butler can read your current Valet, Herd, or DBngin configuration and recreate the equivalent sites and services:

Terminal window
butler migrate valet # sites + services from Valet
butler migrate herd # sites + services from Herd
butler migrate dbngin # databases from DBngin

Add --sites or --services to import just one or the other. Your projects are never moved or modified.

Commands that behave the same way you’d expect from Valet:

ValetButlerNotes
valet parkbutler parkAuto-serve every subfolder of a directory.
valet forgetbutler forgetStop auto-serving a parked directory.
valet linkbutler linkServe the current folder as a site.
valet unlinkbutler unlinkRemove a linked site.
valet linksbutler sitesList linked + parked sites.
valet securebutler secureTrusted HTTPS for a site.
valet unsecurebutler unsecureBack to HTTP.
valet securedbutler securedList HTTPS sites.
valet use <php>butler use <php>Set the global PHP version.
valet isolate <php>butler isolate <php> [--site <name>]Pin a PHP version to one site (defaults to the current directory).
valet unisolatebutler unisolate <name>Remove a site’s pinned version.
valet tldbutler tld <suffix>Change the site TLD.
valet sharebutler sharePut a site on a public URL.
valet restartbutler restart <name>Restart a service.
valet start / stopbutler start / stopStart/stop services.
valet statusbutler statusService status (Butler’s default command).
valet logbutler log <name>Tail a program’s log.
valet composerbutler composerComposer through the active PHP.

Where Butler works fundamentally differently from Valet, the command diverges rather than pretending to be identical:

ValetButlerWhy it’s different
valet installbutler system installButler’s machine bootstrap lives under butler system. Top-level butler install means something else (below).
butler install <component>Downloads a single service binary (MySQL, Redis, …) — Valet has no equivalent because it relies on Homebrew.
butler uninstall <component>Removes an installed component — the inverse of butler install.
valet trustbutler trustSame intent (trust the CA), but Butler installs everything through its own CA rather than leaning on the system.
valet which-phpbutler php -vButler routes butler php to the active version for the current directory.
valet uninstallbutler system uninstallMachine teardown; --force also wipes Butler’s state and downloads.
  • No Homebrew. Valet installs PHP and services via Homebrew; Butler downloads self-contained, checksum-verified static binaries and supervises them itself. Nothing lands in /opt/homebrew or /usr/local at runtime. See What is Butler?.
  • A background service, not a set of Homebrew daemons. Butler runs as one supervised daemon. Your sites keep running whether or not the app is open, and a single privileged piece binds ports 80/443 at login.
  • Per-project config is cross-readable. Butler reads a valet.yml file as a fallback when there’s no butler.yml, so projects carrying Valet config keep working. Run butler init to generate a native butler.yml when you’re ready.
  • Framework drivers. Like Valet, Butler auto-detects Laravel, WordPress, Symfony, Drupal, Statamic and Craft, and supports a custom/proxy driver for everything else.
  • Services are first-class. Databases, caches, mail and search are installed and supervised by Butler (butler install, butler service) rather than being your responsibility via Homebrew or DBngin. See Databases & services.
  • Herd’s bundled services (databases, etc.) map to Butler’s components and services. butler migrate herd --services brings them across.
  • Herd’s per-site settings import alongside its sites with butler migrate herd.

See the full CLI reference for every Butler command.