Your tools.
Your rules.
Anvil turns the folders on your Mac into running applications at local domains like myapp.test, with HTTPS, isolated runtimes and databases. No containers, no virtual machines.
Free and open source under Apache 2.0. For macOS on Apple Silicon, in early development.
~ $ anvil park ~/SitesParked /Users/you/Sites~ $ anvil sitesshop.test Laravel 8.4 /Users/you/Sites/shop/publicblog.test Next.js - /Users/you/Sites/blogapi.test Go - /Users/you/Sites/apiadmin.test Django - /Users/you/Sites/admin
Runs natively, stays in its folder
- PHP 8.0 to 8.5
- Per application, each with its own PHP-FPM pool and php.ini settings.
- Node.js, Go, Rust, .NET, Python
- Isolated toolchains. Apps with their own dev server are proxied to their .test domain.
- MySQL, PostgreSQL, Redis, Mailpit
- As many of each as you need, on the ports you pick. Nothing runs until you add it.
- Detected for you
- Laravel, Statamic, Symfony, Next.js, Nuxt, Vite, Django, FastAPI, Flask and plain static sites.
What Anvil changes on your Mac
Runtimes, services, data and the caches of the tools they run all live in ~/.anvil. The only system changes are the ones you approve:
/etc/resolver/test- Sends
*.testto Anvil's DNS server. Prefer no password? Use.localhostand skip it. - A local certificate authority
- Trusted once with
anvil trust, so HTTPS works in your browser. - A login item
- Optional. Starts Anvil and your services when you sign in.
anvil uninstall removes them. The few tools that write elsewhere, like Go's telemetry counters, are listed in Applications.
Up and running
git clone https://github.com/n1crack/anvil && cd anvil cargo install --path . anvil php install 8.4 # an isolated PHP anvil setup # downloads the web server anvil park ~/Sites # every folder becomes <folder>.test anvil start anvil trust # trust the local certificate for HTTPS
Then open https://<folder>.test:8443. Getting started explains each step, including the one-time DNS setup.
Where it's going
- Available
- Local domains, HTTPS, PHP and five more languages, services, templates, logs, Git status and the native macOS app.
- Next
- Standard ports 80 and 443 through a privileged helper, so URLs drop the :8443.
- Planned
- Signed and notarized releases. Linux. Windows.