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.

$brew install tab/apps/fuku
fuku · dashboard
profile • defaultstarting… 4/5 ready
statuscpumempiduptime
foundation
◉ auth▮▮▮▮▮▮▮▮▮▮▮▮running0.1%2MB7674100:11
◉ storage▮▮▮▮▮▮▮▮▮▮▮▮running0.1%2MB7674200:11
platform
◉ api▮▮▮▮▮▮▮▮▮▮▮▮running0.1%2MB7675800:09
◉ user▮▮▮▮▮▮▮▮▮▮▮▮running0.1%2MB7675900:09
edge
◉◯ frontend▮▮▮▮▮▮▮▮▮▮▮▮starting
● 127.0.0.1:3858 • cpu 6.2% • mem 25MBv0.22.0
// features

One config. Seven 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 →
fuku · dashboard
profile • defaultrunning 4/4 ready
statuscpumem
foundation
◉ auth▮▮▮▮▮▮▮▮▮▮▮▮running0.3%24MB
platform
◉ api▮▮▮▮▮▮▮▮▮▮▮▮running1.2%32MB
◉ worker▮▮▮▮▮▮▮▮▮▮▮▮running0.4%28MB
edge
◉ web▮▮▮▮▮▮▮▮▮▮▮▮running4.2%120MB
● 127.0.0.1:3858 • cpu 6.1% • mem 204MBv0.22.0

Orchestration

Define tiers in fuku.yaml and fuku starts them in order – foundation first, then platform, then edge. Within each tier, services launch concurrently.

Learn more →
fuku · tiered startup
$ 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.

Learn more →
fuku · readiness checks
│ 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 →
fuku · hot-reload
│ ✓ api         running  pid 76758
│ ✓ worker      running  pid 76759
│
│ watch  file changed: api/handlers/users.go
│ watch  file changed: api/handlers/users.go
│ watch  debounce 500ms
│
│ ○ 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.

Learn more →
fuku · log streaming
$ 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.

Learn more →
fuku · graceful shutdown
│ 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

AI Agents

Install the plugin in Claude Code or Codex and let the agent drive fuku. It attaches to a running instance, starts a profile in the background with fuku run -d, reads bounded logs, and manages services through the REST API.

Learn more →
fuku · agent session
$ fuku run default -d
 ✔ auth Ready 1.2s
 ✔ api Ready 2.4s
 ✔ web Ready 3.1s

Running detached · pid 76741 · 3 services · 3.1s
API 127.0.0.1:3858

$ fuku logs --tail 100 --no-follow --no-ui api
api │ 10:23:05Z INF server listening on :8080

Install

Homebrew

terminal
brew install tab/apps/fuku

Install Script

terminal
curl -fsSL https://getfuku.sh/install.sh | sh

Build from Source

terminal
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