Zeltro didn’t start as a product. It started as a folder of bash scripts I wrote for myself, because I was tired of losing an afternoon to environment setup every time I picked up a new project.
That folder grew for the better part of a decade. Every time something annoyed me, a script appeared to deal with it. Every time I set up the same database twice, something got factored out. It was entirely hand-coded, entirely undocumented, and entirely mine — the kind of toolkit that works perfectly on exactly one machine and nowhere else.
The shape it eventually took came out of years working at a dot-com, where I was running enough projects at once that the usual answer — a full stack per project, spun up and torn down — stopped being practical. So I designed my own architecture around it: one set of shared services that every project connects to, each project reachable by a real hostname instead of a port number, and nothing duplicated that didn’t need to be.
That architecture is what Zeltro is now. Not a rewrite of somebody else’s tool — the thing I built to solve my own problem, cleaned up enough to hand to someone else. The bash is still in there, honestly. It’s just had ten years of edges knocked off it.
Then AI agents arrived and it turned out the same design solved a problem I hadn’t been aiming at. An agent needs somewhere stable to work — predictable paths, services that are already running, commands that behave the same way every time. A platform built so I wouldn’t have to think about setup turned out to be exactly what an agent needs so it doesn’t either.
— Shawn, @shrimpwagon