Gaffa
A cross-platform process manager for procfile based applications in a single terminal. Has an interactive terminal UI.
There are some good Procfile-based process management tools around already:
but they didn't work on the windows machines i have to work on. I do not need a lot of features, just some convenience to run my processes in a single terminal with a single command from my justfile.
A gaffa is someone who manages a group of performers, think of a rock band or
circus. Whatever you like. 🧙♀️
Features
- Cross-platform: Works on Windows, macOS, and Linux without tmux dependency
- Process Management: Start, stop, and restart processes individually in interactive mode
- Live Monitoring: Process status, uptime, and restart counts
- Interactive Mode: Terminal UI with keyboard shortcuts and mouse scrolling
Installation
Available on crates.io: gaffa
Or build from source:
Usage
# Run all processes from Procfile
# Run specific processes
# Interactive mode
# Log output to a file
# Custom Procfile
# Set environment variables
# Load environment from file
# Choose the shell that runs the Procfile command lines
# Full command example
Shell
Each Procfile command line is passed verbatim to a shell — pipes, &&,
redirects, and PATH lookups (including .cmd shims like npm on Windows)
work exactly as they would when typed into that shell.
Default: pwsh (fallback cmd if PowerShell 7 is not installed) on Windows,
sh on Unix. Override with --shell <PROGRAM> or the GAFFA_SHELL
environment variable; --shell wins. Known shells (cmd, pwsh,
powershell) get their native command flag, everything else is invoked
POSIX-style with -c.
Note for Windows: with the pwsh default, command lines are PowerShell code —
$VAR inside double quotes is expanded by PowerShell. Use single quotes for
literal strings, or --shell cmd for cmd-style lines.
Output Buffering
Some processes buffer their output when not connected to a terminal. To see real-time output:
- Python: Set
PYTHONUNBUFFERED=1environment variable