Appearance
A workspace is a branch with its own git worktrees, ports and databases, and the services already running. Ten of them run side by side and never collide.
Pick a branch or a ticket. Pomelo does the rest in stages you can watch, repo by repo in parallel, and retries from the stage that failed.
It checks out a worktree of every repo, starts the shared services, writes each service's env, runs your setup commands and seeds the databases from main.
Workspace lifecyclePorts are handed out so they never clash. Each workspace gets its own databases in the shared Postgres, and one origin per workspace through the dev proxy, so cookies and CORS behave like production.
How the network worksWhat runs, what broke and why, and the fix one click away. Each service runs in a holder that outlives the app, so a restart of Pomelo never restarts your stack.
A crash, a port already in use or a failed start shows first, with its last line and what to do: Use a new port, View logs, Fix with Claude or restart. Shared services stay pinned at the bottom. Try the filter above the list.
The Services panelIts URL, port, mode and command, and its logs live, with a filter, pause, follow and wrap. Type in the filter to try it.
The service tabPomelo already knows every workspace's connection, so there is nothing to wire up.
Postgres tables and columns, Redis keyspaces and MinIO buckets, with a filter and a menu on every row. Click a table to open it.
WHERE and ORDER BY, paging, sorting by a column and CSV export. Consoles run a statement with cmd-enter and are saved with the project.
One origin per workspace at http://<service>.<repo>.<workspace>.localhost:8767, a backend retargeted to staging by flipping a profile, and each inbound webhook fanned out to every workspace running the service.