All services
one terminal
Lightweight CLI tool for running and managing multiple local services. Tier-based startup ordering, interactive TUI, hot-reload, and readiness checks – all from a single YAML config.
One config. Six superpowers.
Zero context-switching.
Interactive TUI
See every service at a glance – status, CPU, memory, and uptime in one dashboard. Stop, start, or restart any service with a single keystroke.
Learn more →Orchestration
Define tiers in fuku.yaml and fuku starts them in order – foundation first, then platform, then edge. Within each tier, services launch concurrently.
$ fuku run default │ │ preflight cleaning up stale processes... │ preflight done │ │ tier foundation │ ✓ auth running pid 76741 2.1s │ ✓ gateway running pid 76742 1.8s │ │ tier platform │ ✓ api running pid 76758 4.5s │ ✓ worker running pid 76759 2.8s │ │ tier edge │ ○ web starting
Readiness Checks
A started process isn't always a ready process. fuku polls HTTP endpoints, TCP ports, or log output and only proceeds to the next tier when services are actually healthy.
│ tier foundation │ ○ auth checking http :8081/health │ ○ gateway checking http :8082/health │ ✓ gateway ready 1.8s │ ✓ auth ready 2.1s │ │ tier platform │ ○ api checking http :8080/health │ ✓ api ready 4.5s
Hot-Reload
Edit a file, save, and fuku restarts the affected service automatically. Debouncing prevents restart storms, and shared path support handles cross-service dependencies.
Learn more →│ ✓ api running pid 76758 │ ✓ worker running pid 76759 │ │ watch file changed: api/handlers/users.go │ watch file changed: api/handlers/users.go │ watch debounce 300ms │ │ ○ api restarting │ stopping pid 76758... │ starting... │ ✓ api running pid 76801
Log Streaming
Open a second terminal and run fuku logs to stream output from running services. Filter by service name, see color-coded prefixes, and keep your TUI clean.
$ fuku logs api auth api │ 10:23:01Z INF server listening on :8080 api │ 10:23:05Z INF GET /health 200 1ms auth │ 10:23:01Z INF auth service started api │ 10:23:12Z INF POST /api/users 201 45ms auth │ 10:23:12Z INF token issued user=john api │ 10:23:18Z INF GET /api/users 200 12ms
Lifecycle
Ctrl+C or press q and services stop in reverse tier order – edge first, then platform, then foundation. Each service receives SIGTERM with time to shut down gracefully.
│ received signal: SIGINT │ │ stopping tier edge │ ○ web stopping SIGTERM → pid 76780 │ ✓ web stopped │ │ stopping tier platform │ ○ api stopping SIGTERM → pid 76758 │ ○ worker stopping SIGTERM → pid 76759 │ ✓ worker stopped │ ✓ api stopped │ │ stopping tier foundation │ ○ auth stopping SIGTERM → pid 76741 │ ✓ auth stopped │ │ all services stopped
Install
Homebrew
brew install tab/apps/fuku Install Script
curl -fsSL https://getfuku.sh/install.sh | sh Build from Source
git clone https://github.com/tab/fuku.git
cd fuku
go build -o cmd/fuku cmd/main.go
sudo ln -sf $(pwd)/cmd/fuku /usr/local/bin/fuku