Maps fuel the imagination, inspire flights of fancy, and create a yearning to travel—whether to the farthest corners of the globe or the nearest White Castle for a smorgasbord of sliders.
While it’s perhaps more satisfying to pull that dusty old atlas from the top shelf of your bookcase, and it’s more useful to hit up Google Maps in a browser, it’s infinitely cooler to pore over cartographic excellence from the comfort of your favorite terminal emulator.
Here’s how you can use MapSCII to view maps in your Linux terminal.
MapSCII Gives You the World in Your Terminal
Modern maps as seen through a monitor are more than just static images showing roads, rivers, and borders with a pre-defined level of detail. Any dedicated map program of quality will allow you to zoom from a planetary scale to house level, and pan with whatever level of detail you choose, across cities, countries, and continents.
MapSCII does this too—except instead of viewing the world in your browser with satellite imagery, blocks of color, and neat vectorized lines to guide you, your experience is entirely terminal-based, with images made up of ASCII characters. They’re mostly dots, but with letters for place names.
How to Install and Use MapSCII on Linux
To use MapSCII on Linux, you don’t need to install anything. Simply connect to the MapSCII tile server via Telnet—an antique networking protocol that comes as standard in all Linux distros.
Open a terminal and enter:
…and you’ll instantly see a map of the world as drawn from ASCII characters. It’s as if you’ve been thrown back in time to an early 1990s movie, with groups of teenagers gathered around a tiny CRT monitor.
Map data is courtesy of OpenStreetMap, and you’ll find that you can use your mouse to drag the map across your screen, and even use the mouse wheel to zoom in on particular locations. It’s tremendous fun.
If you prefer keyboard-driven navigation, you can use standard Vim key bindings (HJKL), or cursor keys for panning, with A and Z to zoom in and out.
Pressing c changes the view to block character mode.
Of course, connecting to a remote server via Telnet isn’t ideal from a security point of view, and for anything involving usernames, passwords, or personal data, we would advise against it.
Running MapSCII over Telnet also means that you will need to put up with delays as data and maps are rendered remotely. Your virtual globe-trotting is subject to sudden stops with the message: “Renderer is busy”, as you drill down towards street level during a whimsical exploration of Guinea-Bissau.
And if you leave the connection idle for more than a couple of minutes, you’ll see, “Connection closed by foreign host.”
So it’s great that you can easily install a MapSCII client on your local machine if it’s capable of using snap packages.
Open a terminal, and enter:
sudo snap install mapscii
To start MapSCII locally, enter:
Alternatively, you can install MapSCII using Node Package Manager. If you have npm installed on your system, enter:
npm install -g mapscii
…and launch it with:
MapSCII Is Cool but…
We love MapSCII and have spent hours exploring the cities along the Silk Road, checking out the terrain in war zones, and pretending we’re part of a 1980s sci-fi action movie. MapSCII definitely has some advantages—especially if you have very low bandwidth, a low-spec machine, or an aversion to GUIs.
But MapSCII is only a map viewer. It doesn’t do route planning and doesn’t show you photographs of the streets at the press of a button. If you want that kind of functionality, you’re better off with Google Maps or Apple Maps.
Viewing Maps Is Just One of the Many Things You Can Do in a Linux Terminal
The terminal is central to the Linux experience, and it’s not just somewhere to have fun with maps. In addition to the day-to-day business of managing your file system, accessing remote machines, and surfing the web with a text-based browser, you can do almost anything including listening to music.
Want to kill some time when you’re supposed to be working? Hit up Wikipedia summaries from the terminal and free your mind.