Local web development, without the fiddling
Every project folder gets a real https://name.test address. PHP, MySQL, Laravel, WordPress and Next.js
work out of the box. Free and open source, with an MCP server so your AI agent runs the same stack you do.

Works with the stack you already use
Drop in a folder. Open it over HTTPS.
LocalSites finds your projects, works out what they are, and serves each one with the right PHP, web server and certificate.
HTTPS for every folder
Real certificates and .test domains, no port numbers. Uses Laravel Valet if you have it, or its own proxy and DNS.
PHP 7.4 to 8.5, per project
Each project gets its own PHP-FPM pool. Laravel uses the version composer.json asks for. Turn on Xdebug only for the project you're debugging.
Apache or Nginx
Full .htaccess on Apache, or Nginx with pretty-URL fallback. The web root is detected for you.
Node, Next.js, Docker, anything
Runs your dev server behind a .test address and restarts it if it crashes. Django and Rails work too.
Add-ons in one click
Installed with Homebrew (you see the command first), with connection settings ready to paste. Reachable only from your Mac.
A CLI for everything
Everything the app does, from the terminal, with --json on every command for scripts.
Small and quiet
No bundled browser and no polling. It waits for changes, and MySQL sleeps when nothing needs it.
A data browser that's safe by default
LocalSites MySQL, MAMP's MySQL, any MySQL or MariaDB over SSH, PostgreSQL and SQLite.

- Read-only firstEvery connection starts read-only.
- See the SQL before it runsEdits are staged and saved in one transaction.
- One login per projectNo shared root. Passwords live in the macOS Keychain.
- Backups before anything riskyExport, import, restore and duplicate. Open in TablePlus, Sequel Ace or Adminer.
Built for you and your agent
LocalSites is an MCP server. Claude Desktop, Claude Code, Cursor, VS Code and Windsurf connect in one click.

- Typed toolsList projects, switch PHP, read logs, run health checks.
- You approve risky actionsAgents can't approve themselves.
- Secrets stay hiddenTools that reveal passwords are off unless you turn them on.
- One click to connectThe agent's config is backed up first; only the LocalSites entry changes.
Git, sharing and a doctor, built in

- GitBranches, changes, history, and the pull request and CI status for your branch.
- Share a siteA free Cloudflare tunnel with a password and a time limit. Never serves .env or .git.
- DoctorChecks runtimes, ports, domains and certificates, with a fix for each problem.
- Keyboard-first⌘K command palette, tabs, light and dark themes, a menu bar icon.
Coming from MAMP PRO, Herd, XAMPP or Valet?
Bring what you already have. LocalSites copies your databases, leaves the originals where they are, and checks every row before you switch.
| Feature | LocalSites | MAMP PRO | Laravel Herd | XAMPP | Laravel Valet | Local |
|---|---|---|---|---|---|---|
| Price | Free | Paid licence | Free; Pro $99/year | Free | Free | Free |
| Open source | Yes (MIT) | No | No | Yes (GPL) | Yes (MIT) | No |
| Mac app | Yes | Yes | Yes | Yes | No, command line | Yes |
| HTTPS local domains | Built in | Yes | Yes | Manual setup | Yes, per site | Yes |
| PHP version per project | Yes, 7.4 to 8.5 | Yes | Yes | One per install | Yes | Yes |
| MySQL included | Yes | Yes | Pro only | Yes (MariaDB) | No | Yes |
| MCP server for AI agents | Built in, with approvals | Yes | Yes | No | No | Through add-ons |
| Made for | PHP, Node and Docker | PHP sites | PHP and Laravel | PHP sites | PHP and Laravel | WordPress |
From each product's own website and docs, November 2026. Something out of date? Let us know.
MAMP PRO and MAMP
Copy your databases in one step. The source is only read, and every table is checked row by row. Browse MAMP's MySQL in the data browser while you move over.
XAMPP
The same one-step copy for XAMPP's databases, verified table by table. Your XAMPP install isn't changed.
Laravel Valet
LocalSites runs alongside Valet. It uses Valet's domains and certificates, leaves your Valet sites where they are, and can move one over in one click.
Laravel Herd, DBngin or another MySQL
Export your databases with the tool you use today, then import the .sql, .sql.gz or .zip file. Each project gets its own login.
Local and other WordPress setups
Add the site's folder and import its database export. WordPress is detected automatically and served at https://name.test.
Docker, Next.js and Node
Keep your docker compose setup or dev server. LocalSites runs the command and serves it at https://name.test.
Questions, answered
Is LocalSites a free alternative to MAMP PRO, Laravel Herd or XAMPP?
Yes. LocalSites is free and open source under the MIT licence, with no paid tier. It does the same core job: an HTTPS .test address for every project, PHP per project and MySQL. It can copy your databases from MAMP PRO, MAMP or XAMPP and check every row, and works alongside Laravel Valet.
How do I run several PHP versions on a Mac?
Install the versions you want with Homebrew (for example php@8.2 and php), then pick the version for each project in LocalSites. Each project gets its own PHP-FPM pool, and Laravel projects use the version their composer.json asks for.
Does LocalSites work with Laravel Valet?
Yes. If Valet is installed, LocalSites uses Valet's domains and certificates and shows Valet sites as served by Valet. Without Valet it runs its own HTTPS proxy and DNS for .test domains.
Can AI coding agents use LocalSites?
Yes. LocalSites is an MCP server. Claude Desktop, Claude Code, Cursor, VS Code and Windsurf connect in one click. Read-only tools run freely; risky actions wait for you to approve them in the app.
What do I need to install first?
Homebrew, then brew install httpd mysql@8.4 php, plus any other php@X.Y versions you want. LocalSites uses them directly.
How do I get HTTPS .test domains for local sites on a Mac?
Put a project folder in ~/Sites/localhost (or any folder you add) and switch it on in LocalSites. It is served at https://<folder>.test with a trusted certificate and no port number. LocalSites uses Laravel Valet's domains if you have Valet, or its own proxy and DNS otherwise.
How do I connect Claude Code, Cursor or VS Code to my local sites?
Open Settings → AI agents and click Connect next to your client, or run localsites mcp config. For Claude Code: claude mcp add localsites -- "$(which localsites)" mcp. The agent can then list projects, switch PHP versions, read logs and run health checks.
macOS says it can't verify LocalSites. What do I do?
LocalSites isn't notarized by Apple yet, because that needs a paid developer account. The code is open source. To open it the first time: click Done on the warning, open System Settings → Privacy & Security, scroll to Security and click Open Anyway next to LocalSites, then confirm. You only need to do this once.
Does LocalSites run on Windows or Linux?
Not yet. LocalSites is macOS only for now. Windows and Linux versions are planned.
Free for everyone, and kept going by people like you.
LocalSites has no ads, no paid tier and no tracking. If it saves you time, a coffee helps keep it that way.
Sponsor on GitHub
Monthly or one-time. GitHub takes no fee, so all of it goes to LocalSites.
Pay with UPI or card
A one-off payment through Razorpay, handy if you're in India. Pick any amount you like.