Zeltro CLI
Zeltro is a Docker-based local development environment manager for PHP, Python and Node projects — and a set of guardrails for AI coding agents working on your machine.
It does three things, and they reinforce each other.
Shares one set of services across every project#
One zeltro-postgres, one zeltro-mariadb, one zeltro-redis, one zeltro-mongo and one zeltro-memcached, shared by every Zeltro project on the machine. Run ten projects and you still have at most one of each.
- Projects talk to each other by name. Every project joins one Docker network and resolves by name on it, so a container can
fetch('http://my-api/')orpsql -h zeltro-postgreswith no networking configuration. - No port roulette. You never choose a port. Each project is assigned its own address when it is created, and
zeltro statusprints it — nolocalhost:3001vs:3002vs:3003, nohost.docker.internalhacks. - Resource consolidation. Seven duplicate Postgres containers eating ~700MB becomes one eating ~100MB.
- No conflicts. When a project's own compose file bundles a database or cache (Postgres on
5432, MySQL on3306, Redis and so on), Zeltro removes that service and points the app at the shared one.
Runtimes that are already built#
Three base images cover every supported stack: PHP 8.3, Python 3 and Node 22. Each runs nginx under supervisor.
You never hunt down an image, compare tags, or write a Dockerfile. The PHP image has the MySQL, PostgreSQL, SQLite, Redis and MongoDB extensions compiled in. The Python image has the drivers for all five, plus Django, Flask, FastAPI, gunicorn and uvicorn. The Node image carries the build tools npm needs for native drivers.
See Architecture for what each image ships.
Built for AI agents to work inside#
Left alone, an AI agent will scaffold a project however it likes — its own ports, its own bundled database, its own compose file — with no regard for the other twelve projects on your machine. Zeltro gives the agent a fixed environment to work in:
- A stable platform. Shared services, one network, assigned addresses, and known runtime images mean the agent builds your app instead of reinventing infrastructure.
- Fewer tokens. Framework scaffolding, networking, secret generation and 200+ app installs are pre-baked. The agent doesn't rediscover how to wire nginx + php-fpm every session.
- Context that survives. When Zeltro hands a project to your AI agent, it writes an
AGENTS.mdthat describes the project's address, database and commands, so a new agent session can pick the project up cold.
Where to go next#
| Installation | Install Zeltro on Linux, macOS or Windows (beta installer; WSL2 route in preview) |
| Downloads | The desktop app, and the CLI on its own |
| Quick start | Your first project in one command |
| Frameworks | zeltro new — scaffold a project you write |
| App library | zeltro install — 200+ ready-to-run apps |
| AI workflow | zeltro create, ai, resume |
| Command reference | Every command and flag |
| Architecture | Services, networking, base images |
| Automation & JSON | Scripting, JSON output, debugging |
Where Zeltro doesn't add much#
If you run exactly one project and never touch another, plain docker compose up works fine. Zeltro earns its keep once you have several projects, or an AI agent, sharing one machine.
Spotted a mistake? Edit this page on GitHub.