Python CLI

Open-source Python projects categorized as CLI | Edit details

Top 23 Python CLI Projects

  • GitHub repo httpie

    As easy as /aitch-tee-tee-pie/ 🥧 Modern, user-friendly command-line HTTP client for the API era. JSON support, colors, sessions, downloads, plugins & more.

    Project mention: Changelog #0003 — 📦 HTTPie command generation | | 2021-11-26

    We’ve added a new command, httpie plugins, to help you manage (install/uninstall/list) plugins. It also solves a long-standing plugins-related issue with non-pip installations (e.g., via Homebrew) and it's a potential place for many new features to come. (#1200)

  • GitHub repo sherlock

    🔎 Hunt down social media accounts by username across social networks

    Project mention: Looking for similar tools on github? What are your favorite tools on github? | | 2021-11-28
  • Scout APM

    Scout APM: A developer's best friend. Try free for 14-days. Scout APM uses tracing logic that ties bottlenecks to source code so you know the exact line of code causing performance issues and can get back to building a great product faster.

  • GitHub repo

    the only cheat sheet you need

    Project mention: Is there a quick way to search for what a particular syntax does in a programming language? | | 2021-10-23

    Thanks! That reminds me of

  • GitHub repo Python Fire

    Python Fire is a library for automatically generating command line interfaces (CLIs) from absolutely any Python object.

    Project mention: New Release: Command Line Interface Generator tool for Go | | 2021-10-25

    Just released Gofire, a tool for Go that automatically generates a command line interface (CLI) for your functions and does all required plumbing in between, inspired by

  • GitHub repo tqdm

    A Fast, Extensible Progress Bar for Python and CLI

    Project mention: Rejoining a data frame after a scrape on index. | | 2021-11-03

    # # import pandas as pd # from tqdm import tqdm def get_bio(url, index): # ...code to scrape profile bio... # Some of the URL rows are empty # and I think it de-couples from the index # when trying to merge everything back together. s = f"get_bio({url}, index)" if url != "url_2" else "bio not found" df = pd.DataFrame([s], columns=["bio"]) print(df) return df # bio # 0 get_bio(url_0, index) # bio # 0 get_bio(url_1, index) # bio # 0 bio not found # bio # 0 get_bio(url_3, index) # bio # 0 get_bio(url_4, index) df_list = [] df = pd.DataFrame({'player_profile': [f"url_{i}" for i in range(5)]}) print(f"\nInitial df") print(df) # Initial df # player_profile # 0 url_0 # 1 url_1 # 2 url_2 # 3 url_3 # 4 url_4 # for athlete_row in tqdm(df.iterrows()): for athlete_row in df.iterrows(): url = athlete_row[1]['player_profile'] index = athlete_row.index data = get_bio(url, index) ## VERY SUSPICIOUS! ## data is undefined when get_bio() raises error # try: # data = get_bio(url, index) # except: # continue df_list.append(data) final_bio_frame = pd.concat(df_list).reset_index(drop=True) print(f"\nfinal_bio_frame") print(final_bio_frame) # final_bio_frame # bio # 0 get_bio(url_0, index) # 1 get_bio(url_1, index) # 2 bio not found # 3 get_bio(url_3, index) # 4 get_bio(url_4, index) final = pd.merge(df, final_bio_frame , how='left', left_index=True, right_index=True) print(f"\nfinal") print(final) # final # player_profile bio # 0 url_0 get_bio(url_0, index) # 1 url_1 get_bio(url_1, index) # 2 url_2 bio not found # 3 url_3 get_bio(url_3, index) # 4 url_4 get_bio(url_4, index)

  • GitHub repo click

    Python composable command line interface toolkit

    Project mention: Package for writing an interactive command line tool | | 2021-10-22
  • GitHub repo beets

    music library manager and MusicBrainz tagger

    Project mention: I made a flow chart to show how content makes it to the client. | | 2021-11-27
  • Nanos

    Run Linux Software Faster and Safer than Linux with Unikernels.

  • GitHub repo q

    q - Run SQL directly on CSV or TSV files (by harelba)

    Project mention: Setting Up Gmail in Doom Emacs using mbsync and mu4e | | 2021-11-06

    Tables are fairly easy to extract from org-files, even with some sed/awk function, e.g. `getOrgTable() { awk -vT=$1 '/^#\+NAME: /&&$2~T{f=1;next};/----/{next};!/^\|/{f=0};f' $2 ; }`

    The above should work for most tables, and you get back a pipe-separated-values output, that you could further refine with e.g. to get tsv,csv output support and SQL query capabilities.

    I regularly SQL-Query with INNER JOINs over tables in various org-files stored on multiple servers in one commandline using this combination.

    John Kitchen has a description for a "cleaner" way to do it here:

  • GitHub repo HTTP Prompt

    An interactive command-line HTTP and API testing client built on top of HTTPie featuring autocomplete, syntax highlighting, and more.

    Project mention: HTTP Prompt | | 2021-11-05
  • GitHub repo typer

    Typer, build great CLIs. Easy to code. Based on Python type hints.

    Project mention: Ask HN: What the best and worst command-line interfaces you have used? | | 2021-11-24

    Best: probably that of Docker.

    Why: it didn't force you to read man pages or look up documentation, but instead allowed every command to explain what it does to you, either when you'd run it with --help, or just no parameters (in case it expects any). Furthermore, invocations of these commands weren't just a long string of arguments, but rather commands that are logically grouped and can essentially be navigated as a tree. All of that made it extremely useful and pleasant, at least in my eyes.

    It just feels like it's made to actually be used by developers and to help them as much as possible. Whether you agree with me on that or not, i suggest that you have a look at this excellent talk by Dylan Beattie, "Life, Liberty and the Pursuit of APIness: The Secret to Happy Code", which talked more about the discoverability of systems and the developer experience:

    Nowadays, you can actually use something like Typer for Python to create similarly useful interfaces, which i strongly advise you to have a brief look at:


      $ docker

  • GitHub repo legit

    Git for Humans, Inspired by GitHub for Mac™.

    Project mention: Magit, the Magical Git Interface | | 2021-10-22
  • GitHub repo dev-setup

    macOS development environment setup: Easy-to-understand instructions with automated setup scripts for developer tools like Vim, Sublime Text, Bash, iTerm, Python data analysis, Spark, Hadoop MapReduce, AWS, Heroku, JavaScript web development, Android development, common data stores, and dev-based OS X defaults.

    Project mention: MacOS Development workspace 2021 | | 2021-03-08

    donnemartin - dev setup

  • GitHub repo conan

    Conan - The open-source C/C++ package manager

    Project mention: How to build libraries in the best way? | | 2021-11-30

    For commercial projects random people will not download the source code and try and build it from source. You typically want to ensure that you can ship an end product to the end user that is guaranteed to work on a set of systems that you specify. This means that you want to have tight control of exactly what libraries you use and that there are no conflicts. Here you'll either use your own homemade dependency system, which could just be putting all dependencies in the git repo of your product, or use git submodules or something like that. But today I'd say the superior solution is to use package managers such as Conan or vcpkg

  • GitHub repo xonsh

    :shell: Python-powered, cross-platform, Unix-gazing shell

    Project mention: How do you learn the commandline? What do you use the most and why? | | 2021-11-16

    I got mine aliased to update and install, do you feel like shell is worth learning? I thought something like this would be more useful.

  • GitHub repo httpstat

    curl statistics made simple (by reorx)

  • GitHub repo SAWS

    A supercharged AWS command line interface (CLI).

    Project mention: What is the best program for making JSON CLI output more readable and manageable? | | 2021-11-01

    I'd recommend giving a shot.

  • GitHub repo visidata

    A terminal spreadsheet multitool for discovering and arranging data

    Project mention: Command line spread sheets with vim-like keybindings | | 2021-09-29

    sounds similar to visidata

  • GitHub repo isort

    A Python utility / library to sort imports.

    Project mention: Python Code Quality - Improve the quality of your Python code with linters, code formatters, and security vulnerability scanners | | 2021-11-07

    yaml repos: - repo: rev: v1.4 hooks: - id: autoflake args: - --in-place - --remove-all-unused-imports - --expand-star-imports - --remove-duplicate-keys - --remove-unused-variables - repo: rev: v2.29.0 hooks: - id: pyupgrade args: [--py36-plus] - repo: rev: 5.9.3 hooks: - id: isort - repo: rev: 21.10b0 hooks: - id: black args: [--safe, --quiet] - repo: rev: 4.0.1 hooks: - id: flake8 - repo: local hooks: - id: pylint name: pylint entry: pylint language: system types: [python] args: [ "-rn", "-sn", ] - repo: rev: v0.910-1 hooks: - id: mypy name: mypy entry: mypy language: python types: [python] args: [] require_serial: true - repo: rev: v2.4.1 hooks: - id: prettier args: [--prose-wrap=always, --print-width=88]

  • GitHub repo pipx

    Install and Run Python Applications in Isolated Environments

    Project mention: How do you deploy Python applications? | | 2021-12-01

    I've recently become a fan of pipx. It works great for CLI utilities.

  • GitHub repo s3cmd

    Official s3cmd repo -- Command line tool for managing Amazon S3 and CloudFront services

    Project mention: How does everyone backup their servers? | | 2021-10-26

    I have a cronjob that runs hourly which creates a tarball and then uses s3cmd to push files to Amazon S3. It also removes local backups that are older than 3 hours old, and retention policy removes S3 backups older than 7 days old.

  • GitHub repo AV_Data_Capture


    Project mention: ELI5: How are different programming languages translated in countries that speak different spoken languages | | 2021-11-14
  • GitHub repo haxor-news

    Browse Hacker News like a haxor: A Hacker News command line interface (CLI).

    Project mention: Ask HN: Hacker News comment tree indentation on text based web browsers | | 2021-02-05

    You might find useful.

NOTE: The open source projects on this list are ordered by number of github stars. The number of mentions indicates repo mentiontions in the last 12 Months or since we started tracking (Dec 2020). The latest post mention was on 2021-12-01.

Python CLI related posts


What are some of the best open-source CLI projects in Python? This list will help you:

Project Stars
1 httpie 52,896
2 sherlock 28,343
3 27,658
4 Python Fire 20,460
5 tqdm 20,142
6 click 11,658
7 beets 10,500
8 q 8,755
9 HTTP Prompt 8,321
10 streamlink 6,826
11 typer 6,667
12 legit 5,683
13 dev-setup 5,566
14 conan 5,406
15 xonsh 5,270
16 httpstat 4,972
17 SAWS 4,872
18 visidata 4,554
19 isort 4,342
20 pipx 4,303
21 s3cmd 3,757
22 AV_Data_Capture 3,397
23 haxor-news 3,331
Find remote jobs at our new job board There are 33 new remote jobs listed recently.
Are you hiring? Post a new remote job listing for free.
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives