Procfile processes.
Real terminals.

See all process output together, then attach to any service for an interactive debugger or REPL.

  __ _  ___        _ __ | |_ _   _
 / _` |/ _ \ _____| '_ \| __| | | |
| (_| | (_) |_____| |_) | |_| |_| |
 \__, |\___/      | .__/ \__|\__, |
 |___/            |_|        |___/

Starting all process(es):
web Puma starting...
web Listening on http://127.0.0.1:3000
worker Sidekiq connected to Redis
[go-pty] Attached to (ctrl+] to detach)
Processing by PagesController#home
From: app/controllers/pages_controller.rb:6
[1] pry(#<PagesController>)>

Select a process (↑/↓ navigate, Enter select, Esc cancel):

Features

Combined output

Follow all services in one readable, color-prefixed stream instead of juggling terminal windows.

Web, workers, CSS, and more

Real PTYs

Each command runs in its own pseudo-terminal, preserving colors, readline, and interactive behavior.

Pry, debuggers, and REPLs work

Attach on demand

Remain in the combined view, then attach to one process only when you need direct interaction.

ctrl+] toggles attachment

Preflight tasks

Run short setup or validation commands before services start by prefixing entries with an underscore.

Stop startup when setup fails
Quick start
# Install
brew tap lcmen/extra
brew install go-pty

# Run
go-pty -f Procfile
# Install
ARCH=$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/')
URL=https://github.com/lcmen/go-pty/releases/latest/download
mkdir -p ~/.local/bin
curl -fsSL $URL/go-pty-linux-$ARCH -o ~/.local/bin/go-pty
chmod +x ~/.local/bin/go-pty

# Run
go-pty -f Procfile
# Procfile
_: bin/rails assets:precompile
_db: bin/rails db:migrate
web: bin/rails server
worker: bundle exec sidekiq
Shortcuts
Mode Key Action
Normal mode
Enter Insert a visual separator
ctrl + ] Open process selection
ctrl + c Shut down and exit
ctrl + r Rerun preflights and restart all processes
Dialog mode
Navigate the process list
Enter Attach to the selected process
Esc Cancel
Attached mode
ctrl + ] Detach and return to combined output
Demo