Your tools.
Your rules.
A local development environment for PHP, Node.js, Python, Go, Rust and .NET projects. Each project runs at its own address, such as shop.test. Desktop app and command‑line tool.
Runs on macOS, Windows and Linux.
Free and open source.
~ $ anvil park ~/SitesParked /Users/you/Sites~ $ anvil appsadmin.test Django /Users/you/Sites/adminapi.test Go /Users/you/Sites/apiblog.test Next.js /Users/you/Sites/blogshop.test Laravel /Users/you/Sites/shop/public

Easy to use
Anvil runs the commands your projects already use. No config file in your repo, no new syntax.
- PHP 8.1–8.5
- Node.js
- Python
- Go
- Rust
- .NET
- Static
- Docker Compose
An address per project
Park a folder and every project in it gets a .test address. HTTPS per project from a local CA.
https://shop.test http://blog.test http://api.test
Versions per project
Pin PHP or Node.js per project. php and node in your terminal follow the folder.
shop PHP 8.4 legacy PHP 8.2 ~/Sites/legacy $ php -v # 8.2
Dev processes
Your project's dev scripts run in the background, each with live output, restart and a crash alert.
● php artisan queue:listen ● npm run dev ● php artisan pail
Branches side by side
A Git worktree gets its own address, processes and database. Main keeps running.
shop.test main shop--feature-login.test feature/login
Readable logs
Laravel, Symfony and PHP-FPM logs as entries. Repeats fold; stack frames open in your editor.
ERROR Undefined variable $order ×3 OrderController.php:38
AI agents
An MCP server, off by default. Agents start, stop and read logs and requests. Nothing irreversible.
$ claude mcp add anvil -- anvil mcp
A closer look

Worktrees
Each branch at its own address, with a copy of the database.

Requests
Every request an app served, with its headers.

Outgoing mail caught per app and shown in its Mail tab.

Packages
Key versions, updates and advisories, with Install and Update.

Tunnel
Share an app at a temporary public address.

Storage
What Anvil and each app take on disk, and what is safe to delete.
Services
Any number of each, side by side, on 127.0.0.1. Nothing runs until you add it.
MySQL
:33069.7 · 8.4 · 8.0
PostgreSQL
:543218 · 17 · 16 · 15 · 14
Redis
:63798.10 · 7.4 · 7.2
Mailpit
:1025Catches outgoing mail
S3 storage
:7070Versity S3 Gateway or SILO
Install
anvil php install 8.4 anvil setup # then follow what it prints anvil park ~/Sites anvil start
Setup asks for permission once, for .test addresses and a local certificate. anvil uninstall reverts it.
Support Anvil
If Anvil is useful to you, you can support it on GitHub Sponsors.
Support Anvil on GitHub