Mark Hurrell.

Prospects

15000 views in a few hours

08 December 2020

A few weeks ago I posted on here about my work with Replicate. As they were building it, Ben and Andreas were looking around for advice on best practice for designing command-line interactions. In contrast to best practice advice for more visible interfaces – which have had extensive books, articles and principles since Apple’s Human Interface Guidelines in 1987 – they couldn’t find much about CLIs. So after finding a few other people who were thinking about this area, Ben, Aanand, Carl and Eva wrote a guide for designing command-line interfaces.

It evolved into a very long web page. On one of our zoom calls about Replicate Ben mentioned it and asked if I wanted to get involved. Having done a little work with non-graphical interfaces at GDS I think they’re both really interesting and relatively undocumented, obviously I said yes.

Due to the long, text-heavy nature of the page it’s optimised for readibility across different device sizes. Most of the design complexity comes from a stack of CSS font-size rules optimising the typography for differing screen dimensions. We took an aesthetic lead from traditional unix man pages, while in dark mode the pages takes on more of a terminal flavour.

Despite the guidelines themselves being pretty monochrome and stark, I threw together a more colourful social media card to help the link stand out on the timeline.

We ended up shipping The Command Line Interface Guidelines last friday after someone stumbled on the preview version out in the wild and tweeted about it lol. To all our surprise it got fifteen-thousand views in the first few hours, and spent three days on the front page of Hacker News!

If you work on command-line interfaces, read it here on clig.dev. It’s an open-source text and we’ve been updating and editing it based on feedback, so if you want you can get involved by visiting the github page or joining us on the discord channel.

If you want to chat more about stuff like this, send me an email or get in touch on Twitter.