mprocs

A TUI tool for running multiple commands simultaneously, each in its own panel with independent scrollback.

Screenshot of mprocs

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.yaml file 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.mprocs

Usage

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:

mprocs

Keybindings

KeyAction
Arrow keys / hjklSwitch between process panels
sStart the focused process
xStop the focused process
rRestart the focused process
EnterSend keyboard input to the focused process
EscapeStop sending input to the process
qQuit 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.