Overmind logo

Services & Skills

Share on

First, some history

First, there was rails s, and then there was sidekiq, and then gulp, or webpack-dev-server, or whatever else needed to use your app in the development environment. Rarely in the jungle of the modern web can a programmer get away by running one single process in the shell.

Next came the Procfile—a format to specify the types of processes an application provides and the commands to run those services. It became a standard for Heroku and other Platforms-as-a-Service.

After that came Foreman. It allowed developers to launch all these processes with a single command. Everyone rejoiced, and David Dollar, who created it, got over 4k stars at GitHub. More similar tools would soon appear, and with it, a freedom of choice.

Sergey Aleksandrovich noticed something wrong with these options. Here’s how he explains it:

The problem with most of those tools is that the processes you want to manage start to think they are logging their output into a file, and that can lead to all sorts of problems: severe lag, losing or breaking colored output. Tools can also add vanity information (unneeded timestamps in logs).

Hivemind preserving Sidekiq ASCII-art

Sidekiq logging to Terminal on a Mac directly (left), Foreman clipping the output (middle), Hivemind preserving the beauty of ASCII-art (right)

In an attempt to solve this problem (that might have been bugging you, too) Sergey turned his attention towards pseudoterminals.

TLC for the PTY

Pseudoterminals (pseudotty, or PTY) have been around since 1967. They’ve existed in the UNIX world since the 80’s and 2010’s The Linux Programming Interface contains an entire chapter explaining them.


In the same orbit

Explore more open source projects

How can we help you?

Martians at a glance
years in business

We transform growth-stage startups into unicorns, build developer tools, and create open source products.

If you prefer email, write to us at surrender@evilmartians.com