Using better CLIs

Nikita Sobolev on October 07, 2017

For people who spend half of their lives in a terminal user experience and functionality is highly important. Making you a happier person. Here ar... [Read Full]
markdown guide

Thanks for the tips, so many tools I didn't know about!

My turnoff with pipenv is that it requires the user to enter a "sub" shell or use "pyenv run" to load the environment instead of just loading it in the current shell (like virtualenv activate does). The idea of the lock file was truly needed in Python realm though


pipenv is still evolving. Right now it has some issues with dependencies resolution on a big projects. And sub-shell bothers me too.

But it already is so much better than pip!


ahha definitely! I wonder if "pipenv run" has any impacts in production. I've never deployed a project using pipenv. I'll have to study it a bit more.


Then take a look at our django template:

It uses pipenv for production (also docker, gitlab ci, and caddy). Works perfectly fine!

Thanks Nikita, there's a lot of good stuff in there! :-)


Just a note: for the pgcli stuff: that is part of the dbcli project, so there are other CLIs for things like MySQL, SQL Server, etc.

Awesome article, I'd never seen doitlive before, but I'll def be checking that out.


You should check out, which is a very nice wrapper around either the standard Python REPL or IPython.


Thanks! I have already seen it, but I actually don't see any difference between ipython and ptpython.

Could you please provide an example?


I'm mostly a Ruby guy and only do Python for ML/data stuff, so maybe my ipython is not perfect, but ptipython gives me the same auto complete menus and status bar as pgcli.



For todo lists, try topydo, a powerful application based on the todo.txt format. It has three interfaces: a command line interface, a prompt and a text based graphical user interface.

(Disclaimer: I'm the author. A similar application is TaskWarrior)


Thanks for mentioning glances, I missed that one somewhere along the way.

I've started using exa instead of the default ls. Really nice!


if you're already on the topic of better CLIs then... Dockly for a docker containers dashboard / management straight from the terminal


These are awesome thank you, and thanks for the examples 👌


The Fish shell is an intelligent CLI tool. A worthy replacement for Bash.


Thanks for the article so many new things to review and explore.


bpython is also a nice tool. It gives you features like autocomplete, history of previous commands, syntax highlighting, and more.


If you are using AWS on the CLI a lot, aws-shell comes in quite handy with autocompletion. However it is more a standalone cli tool, than just a CLI tool.


Had been using httpie and jq on occasion. (I don't write new interactions with REST APIs daily.)

I hadn't known about mycli. I expect I shall overuse and love it a lot.

code of conduct - report abuse