womp works out who boots before who, waits for each service to be genuinely healthy, restarts the flaky ones, and tears it all down cleanly when you are done.
curl -fsSL https://raw.githubusercontent.com/idrissgarfa/womp/develop/install.sh | shDeclare depends_on and womp builds the graph, catches cycles up front, and starts everything in order, parallel wherever the graph allows.
TCP, HTTP, or log-regex probes. A service is not up until it actually answers, and its dependents wait for it.
Every service's output in one color-coded, line-safe stream. No interleaved half-lines, ever.
Restart on change, debounced, with a built-in ignore list so it never loops on caches or generated code.
womp up --tui opens a full-screen dashboard: states, per-service logs, scrollback, restart from the keyboard.
A service that dies gets restarted on a backoff. When it gives up for good, womp does not bury you in a cascade of unrelated errors. It marks everything downstream DEGRADED and records the one thing that actually went wrong.
One file at your project root describes every service and how they relate. A teammate clones the repo, runs one command, and gets a working environment.
services:
db:
cmd: "docker run --rm -p 5432:5432 postgres:16"
health: { tcp: "localhost:5432", timeout: 30s }
api:
cmd: "uv run fastapi dev"
dir: ./apps/api
depends_on: [db]
health: { http: "http://localhost:8000/health" }
restart: { policy: on-failure, max: 3, backoff: 1s }
watch: { paths: ["src/**"], debounce: 300ms }
web:
cmd: "bun dev"
dir: ./apps/web
depends_on: [api]
health: { log: "ready in .*ms" }One command grabs the right binary for your machine. macOS and Linux, Intel or ARM. No Windows, no containers, no daemon.
curl -fsSL https://raw.githubusercontent.com/idrissgarfa/womp/develop/install.sh | shNo native Windows build. browse all releases →