Manage multiple overmind instances across projects. Each project keeps its own Procfile and runs its own overmind daemon. kagaya orchestrates them all from anywhere.

Prerequisites

Install

# shell script (prebuilt binary)
curl -fsSL https://raw.githubusercontent.com/mrgnw/kagaya/main/install.sh | sh

# gah (github asset helper)
gah install mrgnw/kagaya

# cargo
cargo install kagaya       # from source
cargo binstall kagaya      # prebuilt binary

Quick start

kagaya init
kagaya add myapp ~/dev/myapp
kagaya start myapp

The project directory needs a Procfile (standard overmind/foreman format):

web: pnpm dev
api: uv run server.py

Usage

project="your_project"

kagaya init                # create standard config file
kagaya add $project <dir>  # add a service in <dir>

kagaya status              # show all services
kagaya start $project      # start service(s)
kagaya stop $project       # stop service(s)
kagaya reload $project     # restart service(s) (picks up Procfile changes)

Pass any overmind command to a specific project:

kagaya status myapp        overmind status within myapp
kagaya echo myapp          view myapp's logs
kagaya myapp connect web   attach to myapp's web process
kagaya connect web myapp   same thing, project name last

Config

Services are listed in ~/.config/kagaya/services (Procfile-style):

myapp: ~/dev/myapp
api: ~/dev/api-server
frontend: ~/dev/frontend

Respects $XDG_CONFIG_HOME if set.

How it works

Each project directory gets its own independent overmind instance with its own .overmind.sock. kagaya knows where each project lives and dispatches commands to the right overmind in the right directory.

  • start/stop/reload are kagaya-level commands that manage the overmind daemon lifecycle (daemonized start, graceful quit, socket cleanup).
  • Everything else is passed through directly to the project's overmind.

License

MIT