Every local site, one click away
devkit runs your WebPress and Laravel sites on top of the Docker Compose stacks you already have. One binary, no daemon, a menu-bar app on macOS, a tray app on Linux, and an MCP server so AI agents can work with your sites safely.
What it does
Uses your stacks
Add a Docker Compose folder and devkit finds its database, Redis, Caddy, PHP-FPM, S3 and mail services from docker compose config. Nothing to configure.
Serves every site
Park a folder and every Laravel project in it is a site: php artisan serve on its own port with the PHP version you pick, or HTTPS at https://<site>.localhost through Caddy.
.env from a template
Each site's .env is rendered on every start and points at the stack's database and Redis. The original is backed up.
Processes
Queue workers, the scheduler and one Vite dev server per config start next to the web server, each with its log.
Lanes
Work on several branches at once. A lane is a git worktree with its submodules, copy-on-write vendor/ and node_modules/, a forked database and its own port.
Database snapshots
Snapshot, restore and reset databases, and run read-only queries. A safety snapshot is taken before anything is overwritten.
Git and submodules
Branch and ahead/behind for every site, checkout with submodules on their branches, and fetch, pull and push of a site together with its modules.
PHP and Xdebug
Every Homebrew or distro PHP is found automatically. Xdebug can be toggled per site or per PHP container, and composer check-platform-reqs runs per site.
Built for AI agents
devkit mcp gives Claude Code, Codex, Gemini CLI, Cursor, VS Code and Claude Desktop the same operations as tools. Destructive ones need explicit confirmation, and every call is written to a local audit log.
A desktop app that never guesses
The macOS menu-bar app and the Linux tray app show your stacks, running sites and lanes with their URLs, and a manager window for everything else. They only call devkit --json and follow devkit watch, so they never do anything the CLI can't.
Before deleting a site, removing a lane or restoring a database, the app shows what devkit says would be lost and asks devkit again just before acting. Commands that need your password, like trusting certificates, open in Terminal instead of running inside the app.
$ devkit park ~/Project/webpress/sites
$ devkit site up core-development
core-development is up at http://localhost:8100
$ devkit lane new core-development crm-fix
✓ git worktree add …/.worktrees/crm-fix
✓ forking database core_development to core_development_l1
✓ lane up core-development--crm-fix
$ devkit mcp config claude-code
Private by design
devkit runs entirely on your machine. It has no account and no analytics, and it never sends your code, settings or usage to us. See the Privacy Policy.