Service Manager · Go
Stop juggling terminal tabs
One binary that starts services in the right order, waits until they're actually up, and shuts everything down cleanly on exit.
Terminal
$_
Configuration
One file. Any project.
Drop devservices.yaml in the project root — kb-dev finds it automatically by walking up from the current directory.
Works with any stack: Docker, pnpm, npm, make, shell. KB Labs uses .kb/devservices.yaml — same format.
yaml
name: my-project
services:
postgres:
type: docker
command: docker run --rm -p 5432:5432 postgres:16
health_check: localhost:5432
port: 5432
api:
command: pnpm dev
port: 3000
health_check: http://localhost:3000/health
depends_on: [postgres]
worker:
command: pnpm worker
depends_on: [postgres]Commands
Everything is scriptable.
kb-dev startStart all services in dependency order. Health-probes before reporting alive.kb-dev stopGracefully stop all running services.kb-dev statusShow running state, PID, port, and uptime per service.kb-dev restart workflowRestart a specific service by name.kb-dev logs gateway --followStream live logs for a service. Ctrl-C to stop.kb-dev doctorRun environment diagnostics: ports, deps, config, health.All commands support --json for scripts and CI
How it works
The details that matter.
Knows when a service actually died
Tracks real PIDs because it spawned the processes. No port scanning, no stale state.
Doesn't call it alive until it responds
HTTP, TCP, and command health probes with latency. Reports alive only after the check passes.
Starts in the right order
Reads service dependencies from devservices.yaml and starts in topological order automatically.
Install
One binary. No dependencies.
curl -fsSL https://kblabs.ru/kb-dev/install.sh | sh