Fundamentals 5 min read

Enabling Auto‑Completion for Python and pip Commands with argcomplete

This guide explains how to use the argcomplete library to add Bash/Zsh auto‑completion for Python, pip, and other argparse‑based command‑line tools, including installation steps, activation commands, code integration for custom packages, and important usage cautions.

Python Programming Learning Circle
Python Programming Learning Circle
Python Programming Learning Circle
Enabling Auto‑Completion for Python and pip Commands with argcomplete

When using Python's command‑line tools, a common pain point is the lack of tab‑completion for commands such as python -m or pip , which forces users to look up package names manually.

The argcomplete library provides a simple way to add auto‑completion by pressing the Tab key, supporting Bash and Zsh out of the box and offering third‑party support for tcsh and fish.

Official support for Bash and Zsh shells (third‑party support for tcsh and fish).

Provides completion for python and pip commands.

Any third‑party tool that uses argparse can gain completion with just a few lines of code.

To enable completion for Python and pip, first install argcomplete:

pip install argcomplete

Then activate global completion:

activate-global-python-argcomplete

After restarting the shell, typing pip followed by Tab will list all available options.

For other third‑party CLI tools that already support argcomplete, activate them with:

eval "$(register-python-argcomplete <python-app-name>)"

For example, to enable completion for pipx :

eval "$(register-python-argcomplete pipx)"

To make your own Python package support auto‑completion, add the following lines before creating the ArgumentParser and before calling parse_args() :

# PYTHON_ARGCOMPLETE_OK import argcomplete, argparse parser = argparse.ArgumentParser() ... # existing parser setup argcomplete.autocomplete(parser) args = parser.parse_args() ...

After installing the package, run eval "$(register-python-argcomplete <your‑package>)" to enable completion.

⚠️ Note: The activation command only works for programs that already include argcomplete calls; also, placing time‑consuming imports after argcomplete.autocomplete() can avoid noticeable delays when users press Tab.

Reference: argcomplete GitHub repository

CLIPythonbashautocompleteargcompletezshpip
Python Programming Learning Circle
Written by

Python Programming Learning Circle

A global community of Chinese Python developers offering technical articles, columns, original video tutorials, and problem sets. Topics include web full‑stack development, web scraping, data analysis, natural language processing, image processing, machine learning, automated testing, DevOps automation, and big data.

0 followers
Reader feedback

How this landed with the community

login Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.