Stop juggling terminal tabs.
Run all your local dev services with one command.
pip install promenade
Modern apps need multiple services running locally: your API, frontend dev server, background workers, maybe a database.
Promenade lets you define them once in a simple YAML file and start everything with promenade start.
Define your services once, start them in the right order automatically. Your API starts before your frontend, every time.
Know when your services are actually ready, not just running. HTTP and TCP health checks with configurable timeouts.
All your service logs in one place, color-coded and filterable. No more switching between terminal tabs.
Change your promenade.yaml and services automatically restart. No manual restarts needed.
Set it up once with launchd or systemd and your services are always there when you need them.
Create a promenade.yaml in your project:
services:
api:
command: flask run --port 5001
directory: ./backend
port: 5001
ready_check:
type: http
path: /health
frontend:
command: npm run dev
directory: ./frontend
port: 3000
depends_on:
- api
Then run:
promenade start
Open http://localhost:7766 to see the web UI with status, health, and logs for all your services.
Promenade looks for promenade.yaml in your current directory, or at ~/.config/promenade/promenade.yaml for a global config.
manager:
port: 7766 # Web UI port
log_buffer_lines: 1000 # Lines to keep per service
defaults:
restart_policy: once # "never", "once", or "always"
env:
NODE_ENV: development
services:
api:
command: flask run --port 5001
directory: ./backend
port: 5001
env:
FLASK_DEBUG: "1"
ready_check:
type: http
path: /health
timeout: 30
worker:
command: python worker.py
directory: ./backend
restart_policy: always # Keep this one running