argcomplete
Bash tab completion for argparse
Install
argcomplete on PyPI
pip
pip install argcompleteuv
uv add argcompletepoetry
poetry add argcompletePackage facts
| License | Apache Software License (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 7 days since the last release |
| Last repo commit | |
| First released | |
| Popularity | one of the top 1,000 most-downloaded packages on PyPI (30-day window, as of 2026-08-13) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-13) |
Evidence: argcomplete-3.7.2-py3-none-any.whl
About argcomplete
from the package's own PyPI description — quoted content, verbatim
argcomplete - Bash/zsh tab completion for argparse
Tab complete all the things!
Argcomplete provides easy, extensible command line tab completion of arguments for your Python application.
It makes two assumptions:
- You're using bash or zsh as your shell (limited support exists for other shells - see below)
- You're using
argparse <http://docs.python.org/3/library/argparse.html>_ to manage your command line arguments/options
Argcomplete is particularly useful if your program has lots of options or subparsers, and if your program can dynamically suggest completions for your argument/option values (for example, if the user is browsing resources over the network).
Installation
::
pip install argcomplete
activate-global-python-argcomplete
See Activating global completion_ below for details about the second step.
Refresh your shell environment (start a new shell).
Synopsis
Add the PYTHON_ARGCOMPLETE_OK marker and a call to argcomplete.autocomplete() to your Python application as
follows:
.. code-block:: python
#!/usr/bin/env python
# PYTHON_ARGCOMPLETE_OK
import...
Read as markdown · JSON record · Source repository · Homepage · Docs
AI interpretation — verify before relying
AI-generated interpretation of the package facts above; every digit, version, license, or vulnerability id it cites is grounded in the facts already shown on this page
Provides intelligent bash and zsh tab completion for Python applications using argparse, with support for custom completers and dynamic suggestions.
Low friction: pure Python wheel with no runtime dependencies. Actively maintained with a release 7 days ago and 1576 repository stars. Supports Python 3.10–3.14 and PyPy.
Licensed under Apache Software License (permissive), allowing commercial and private use with minimal restrictions.
Usage
pip install argcomplete==3.7.2
#!/usr/bin/env python
# PYTHON_ARGCOMPLETE_OK
import argcomplete, argparse
parser = argparse.ArgumentParser()
argcomplete.autocomplete(parser)
args = parser.parse_args()
Requires Python 3.10 or later. Shell completion registration via activate-global-python-argcomplete or register-python-argcomplete is needed for tab completion to work.
Verdict: Mature, actively maintained library with zero known vulnerabilities and permissive licensing. Low install friction and broad Python version support make it a reliable choice for adding shell completion to argparse-based CLI tools. The only consideration is that shell registration is a separate manual step after installation.
Needs verification
- Whether custom completers can handle network latency without blocking tab completion responsiveness
- Compatibility with shells beyond bash and zsh (fact sheet mentions 'limited support' but does not specify which shells)
Similar packages
permissive · top 1,000 on PyPI
pipenvpermissive · top 1,000 on PyPI
ipythonpermissive · top 1,000 on PyPI
keyringpermissive · top 1,000 on PyPI
cyclerpermissive · top 1,000 on PyPI
opentelemetry-semantic-conventions-aipermissive · top 1,000 on PyPI
wraptpermissive · top 100 on PyPI
jedipermissive · top 1,000 on PyPI
ConfigArgParsepermissive · top 1,000 on PyPI
aiofilepermissive · top 1,000 on PyPI