CLI Tools

Useful CLI-based tools.

Swap cURL for HTTPie, and your database's own client for a Python CLI tool with autocompletion: pgcli, mycli, litecli, or IRedis.

How to choose:

  • Calling HTTP APIs from the terminal: HTTPie
  • A database shell with autocompletion: pgcli for PostgreSQL, mycli for MySQL, litecli for SQLite, IRedis for Redis
  • Downloading video or audio from YouTube and other sites: yt-dlp
  • A new project from a template: Cookiecutter, or Copier to pull in later template changes
  • A shell you script in Python: xonsh
  • A tmux session with its windows and panes, from one YAML file: tmuxp

Listed in editorial order, grouped by use case. Click a column to re-sort the whole list.

Press / to search. Tap a tag to filter. Click any row for details.

Search and filter

Results

Row number Tags

Database CLIs 4 projects

PostgreSQL CLI with autocompletion and syntax highlighting.
dbcli/github.com/dbcli/pgcli / /202,810 downloads/month
MySQL CLI with autocompletion and syntax highlighting.
dbcli/github.com/dbcli/mycli / /77,974 downloads/month
SQLite CLI with autocompletion and syntax highlighting.
dbcli/github.com/dbcli/litecli / /47,833 downloads/month
Redis CLI with autocompletion and syntax highlighting.
laixintao/github.com/laixintao/iredis / /12,363 downloads/month

Downloaders 1 project

A command-line program to download videos from YouTube and other video sites, a fork of youtube-dl.
yt-dlp/github.com/yt-dlp/yt-dlp / /12,454,270 downloads/month

HTTP Clients 1 project

A command line HTTP client, a user-friendly cURL replacement.
httpie/github.com/httpie/cli / /569,431 downloads/month

Project Scaffolding 2 projects

A command-line utility that creates projects from cookiecutters (project templates).
cookiecutter/github.com/cookiecutter/cookiecutter / /6,608,823 downloads/month
A library and command-line utility for rendering project templates.
copier-org/github.com/copier-org/copier / /1,347,683 downloads/month

Shells 1 project

A Python-powered shell. Full-featured and cross-platform.
xonsh/github.com/xonsh/xonsh/ / /373,222 downloads/month

Terminal Workflow 1 project

A tmux session manager.
tmux-python/github.com/tmux-python/tmuxp / /94,209 downloads/month

CLI Tools guide

HTTPie is a command-line HTTP client for testing, debugging, and generally interacting with APIs and HTTP servers. It formats and colors the output. A request reads like http PUT pie.dev/put X-API-Token:123 name=John: Header:Value items set headers, and field=value items fill the body, which HTTPie sends as JSON by default.

pgcli, mycli, litecli, and IRedis are terminal clients with autocompletion and syntax highlighting, one per database. Give pgcli a database name or a postgresql:// URI, and litecli the path to a SQLite file. mycli also works with MariaDB, Percona, TiDB, and Apache Doris. IRedis behaves like Redis's own client in most cases, but it's safer on production servers: it stops you from accidentally running dangerous commands like KEYS *.

yt-dlp downloads audio and video from thousands of sites. Install ffmpeg too: yt-dlp needs it to merge separate video and audio files.

Cookiecutter creates projects from templates, and its templates work for any language, not only Python. Run cookiecutter gh:audreyfeldroy/cookiecutter-pypackage, answer its prompts, and you get a new project from that GitHub template.

Copier also generates projects from templates, but it calls itself a code lifecycle management tool. When the template changes, copier update brings the changes into projects you already generated. It works best when both are in Git: the template tagged, your project clean, with the .copier-answers.yml file that records your answers. Templates can run code: Cookiecutter's pre- and post-generate scripts, Copier's tasks. Generate projects only from templates you trust.

xonsh is a shell whose language is a superset of Python, with shell commands built in. It isn't POSIX-compatible, so don't make it your login shell with chsh. Its docs recommend a xonsh profile in your terminal emulator instead.

tmuxp launches a whole tmux session from one YAML or JSON file: its windows, its panes, and the commands in them. Save the file as .tmuxp.yaml in a project, and tmuxp load path/to/project/ builds the session.

Several of these tools' docs have you install them as CLI tools, and add them to a project only to use them from Python. Looking for a library to build your own Python CLI tool? That's CLI Development.

Know a project that belongs here?

Tell us what it does and why it stands out.