Overmind is a process manager for Procfile-based applications and tmux. With Overmind, you can easily run several processes from your Procfile in a single terminal.

So in the scenario where you have a Rails project with a Profile file that is run by foreman but you want to use a binding.pry to debug some running code in the rails server, for example. Putting the pry and seeing it in the foreman stack doesn’t work well, it doesn’t stop or let you step through, so:

  1. one simple option is to run all the script separately, in different tabs of the terminal.
  2. use the gem remote-pry (but then you have to install another gem in your repo, meh if unnecessary)
  3. install overmind using brew

Run your Procfile automatically with overmind start. If you have more than one Procfile for some reason, specify which one overmind start -f Procfile.dev.

Then in another tab, attach to the service you want, say for the rails server is likely web (whatever is the key in the Procfile, usually, following common patterns it will be web). overmind connect web At that point you’re gonna see the regular stack trace of the rails server.

If you kill it with control+C, it will kill the entire process, so check the manual for various extra flags and commands.

Thanks to Fer for this TIL!