fancycompleter
colorful TAB completion for Python prompt
What it is and what it does
fancycompleter is a Python interactive prompt enhancement that replaces the standard rlcompleter with a version that displays TAB completions in color, coded by type (strings in green, functions in blue, etc.). It works by installing a custom completer into readline or pyrepl and, on some systems, runs a pure-Python replacement prompt based on code.InteractiveConsole to ensure colors display correctly.
The package improves on the standard completer in several ways: it shows only the characters after the dot to save screen space, handles dictionary and list indexing in completions, disables the automatic parenthesis insertion for callables, and allows a real tab character to be inserted at the start of a line. Installation is simple—either call fancycompleter.interact() in a startup script or use the built-in install command to set up PYTHONSTARTUP automatically.
Use it for:
- Enable colored TAB completion in your Python REPL to quickly identify the type of available attributes and methods.
- Set up a custom Python startup environment that automatically loads fancycompleter for every interactive session.
- Complete expressions involving dictionary or list indexing at the prompt, which the standard rlcompleter cannot do.
- Work on Windows with colored completions by installing the patched pyreadline fork.
- Use PyPy or CPython 3.13+ without extra configuration to get colored completions out of the box.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Adds colorful TAB completion to the Python interactive prompt, extending the standard library's rlcompleter with color-coded completions by type and improved completion logic.
Yes, if you spend significant time in the Python interactive prompt and want visual feedback on completion types. The install is frictionless, the license is permissive, and there are no known vulnerabilities. The package is aging but actively maintained and supports current Python versions. The main caveat is that color support on CPython <3.13 depends on pyrepl or a patched readline, which may require extra setup on some systems.
Install
fancycompleter on PyPI
pip
pip install fancycompleteruv
uv add fancycompleterpoetry
poetry add fancycompleterInstalling fancycompleter
Before you install
Low friction install with a pure-Python wheel and two runtime dependencies (pyreadline3, pyrepl). The package is aging but actively maintained—last commit 2026-01-26—and supports current Python versions (3.8–3.13). No known vulnerabilities.
License in practice
BSD license is permissive; you can use, modify, and distribute this package with minimal restrictions, making it safe for both open-source and commercial projects.
Quickstart
pip install fancycompleter
Then in your Python startup file or PYTHONSTARTUP script:
import fancycompleter
fancycompleter.interact(persist_history=True)
On CPython <3.13 on Linux/OSX, pyrepl (a dependency) is required for colors; on Windows, colored completions require a patched version of pyreadline. PyPy and CPython 3.13+ work out of the box.
Verify before relying
- Whether the package works correctly with all Python 3.8–3.13 versions in practice, or if there are known incompatibilities.
- Current state of the pyreadline fork mentioned in the docs and whether it is still maintained for Windows color support.
Package facts
| License | BSD (permissive) |
| Python support | supports the current Python release (>=3.8) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — pyreadline3, pyrepl |
| Maintenance | aging — 445 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 1,454,938/month — #3,884 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: fancycompleter-0.11.1-py3-none-any.whl
Keywords: rlcompleter, prompt, color, completion
Tags
More Utilities packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
charset-normalizerDetects and normalizes text encoding from…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
PygmentsPygments is a syntax highlighter that colorizes…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
tabcompleterAdds Tab-key autocompletion and command…
permissive · top 5,000 on PyPI
pyreplpyrepl is a pure-Python readline-like library…
permissive · top 5,000 on PyPI
pdbpppdbpp is a drop-in replacement for Python's…
permissive · top 5,000 on PyPI
pyreadline3Provides GNU readline-like keyboard input…
permissive · top 5,000 on PyPI
argcompleteProvides bash and zsh tab completion for Python…
permissive · top 1,000 on PyPI
gnureadlineProvides GNU Readline library support for…
copyleft · top 15,000 on PyPI
prompt_toolkitprompt_toolkit is a Python library for building…
permissive · top 1,000 on PyPI
bpythonbpython is an enhanced Python interactive…
permissive · top 15,000 on PyPI
simple-colorsAdds colored and styled text output to terminal…
unclear · top 15,000 on PyPI
colorfulColorful applies ANSI color and text styling to…
permissive · top 5,000 on PyPI