Have you even been tabbing through Tmux panes and suddenly thought:

I want to read Fire and Fury but how am I going to do that without taking my hand off the keyboard and touching a mouse like some kind of animal?!

Of course you have and that's why I wrote cli-worm.

cli-worm screen shot

In the name of laziness and the Unix philosophy, I leveraged existing projects to do the heavy lifting.

There is a great Node library called Blessed for building ncurses applications. It provides the perfect set of tools for the nostalgic goodness that is cli-worm.

This great page does a very good job explaining the epub format. Long story short, epubs are just zip files containing XML and HTML. Reading from a zip and parsing HTML is pretty trivial. The project is Open Source; so, take a look.

Finally for rendering the HTML is piped to W3M. This command line web browser is a well established project available in most distribution repositories.


Cli-worm can be installed using npm.

The npm installation method also requires the separate installation of node and w3m.

For easier installation the app is now available as a snap store

Get it from the Snap Store

sudo snap install cli-worm --candidate