current-weather is a simple CLI weather application for Mac I designed and programmed in Swift. I wanted to learn how to design  command line interfaces (CLI) and create something people can go, download and try in a reasonable timeframe.


learning how to design command line interfaces

I started by researching CLI design in general and its best practices. As CLIs are text driven, the design space is very limited. Not being able to rely on typefaces, or images in a design, makes each consideration much more important. Input is given through arguments like words or letters (eg. -h for the help page) and output is provided via lines of text.

According to this great article by Emily Goldfein the three main aspects of designing for CLIs are formatting, color, and visuals.

design decisions for current-weather


Information is shown in columns horizontally, making use of the common ratio of a terminal window


To make the data easier to read, the color of the weather icon changes according to the condition and color gradients are used for temperature and wind


If the user is on a slow connection, current-weather displays visual feedback showing data is currently loading

how it works

video showing work-in-progress version

Users can check their current weather by typing "current-weather {name of their city}", or get help by typing "current-weather -h".

conclusion & what I learned

I was always intrigued by command line interfaces and how to make them more usable. Learning how to use the limited options for design in a small project I could program myself was tremendously interesting and will help me in the future and while polishing current-weather further.

Tools used: Figma - Xcode