mprocs
A TUI tool for running multiple commands simultaneously, each in its own panel with independent scrollback.
mprocs is a TUI tool that runs multiple commands at the same time, displaying
each one in its own named panel with independent scrollback. It's the ideal
companion for development workflows where you need to keep an eye on several
processes simultaneously — a dev server, a file watcher, a test runner, and a
log tail, all in a single terminal window.
Features
- Multiple processes — run any number of commands side by side, each isolated in its own panel
- Independent scrollback — scroll through the output of any individual process without affecting the others
- Named panels — give each process a meaningful name so you can identify it at a glance
- Start / stop / restart — control individual processes interactively with keyboard shortcuts, without killing the whole session
- Mouse support — click to focus a panel, scroll with the mouse wheel
- YAML/JSON config — define your processes in an
mprocs.yamlfile at the project root for repeatable setups - stdin forwarding — optionally send keyboard input to the focused process
Installation
cargo install mprocs
Or via your package manager:
# Debian / Ubuntu (Debian 13+)
apt install mprocs
# Fedora
dnf install mprocs
# macOS
brew install mprocs
# Arch Linux (AUR)
paru -S mprocs
# Nix
nix-env -iA nixpkgs.mprocsUsage
Ad-hoc — pass commands directly on the command line
mprocs "cargo watch -x check" "npm run dev" "tail -f app.log"
Each command gets its own named panel. Use the arrow keys or mouse to switch focus between them.
Config file — mprocs.yaml
For a repeatable project setup, create an mprocs.yaml at your project root:
procs:
server:
cmd: cargo run --bin server
watcher:
cmd: cargo watch -x check
frontend:
cmd: npm run dev
cwd: ./frontend
logs:
cmd: tail -f /var/log/myapp.log
Then just run:
mprocsKeybindings
| Key | Action |
|---|---|
Arrow keys / hjkl | Switch between process panels |
s | Start the focused process |
x | Stop the focused process |
r | Restart the focused process |
Enter | Send keyboard input to the focused process |
Escape | Stop sending input to the process |
q | Quit mprocs (stops all processes) |
Why not just use tmux?
tmux is a general-purpose multiplexer, which makes it flexible but verbose to
configure for a specific project. mprocs is purpose-built for the "run several
dev processes together" use case: it starts everything from a single config
file, labels each panel clearly, and lets you restart individual processes
without detaching from anything. It's closer in spirit to tools like foreman
or overmind, but native to the terminal with a proper TUI.