Bullet

raw JSON →
2.2.0 verified Fri May 01 auth: no python maintenance

Bullet is a beautiful Python prompt library for building interactive command-line interfaces with lists, checkboxes, input prompts, and yes/no confirmations. It supports emoji, colors, and custom indicators. Current version: 2.2.0. Release cadence: low (last release was in 2020).

pip install bullet
error ModuleNotFoundError: No module named 'bullet'
cause Library not installed.
fix
Run: pip install bullet
error TypeError: __init__() got an unexpected keyword argument 'params'
cause Using outdated or mistyped constructor arguments.
fix
Check the documentation for correct parameters: Bullet(prompt, choices, ...). Do not use 'params'.
error AttributeError: module 'bullet' has no attribute 'Bullet'
cause Importing incorrectly. There is no 'bullet.Bullet' because 'bullet' is the package, not a module inside it.
fix
Use: from bullet import Bullet
error ValueError: The truth value of a Choice is ambiguous
cause Using raw strings vs. custom choice objects incorrectly. The choices parameter expects strings or custom objects with __str__.
fix
Pass a list of strings, or define a class with __str__ method if custom objects are needed.
gotcha Bullet uses carriage returns to render over the same lines; it does NOT work inside IDEs (PyCharm, VS Code terminal) that don't support raw terminal mode. Run scripts directly in a real terminal.
fix Run the script from a terminal (cmd, bash) – not the IDE's built-in console.
gotcha The library sets the terminal to raw mode (no line buffering, no echo). If your script crashes without cleanup, your terminal might be left in a broken state (no echo, weird keys).
fix Wrap the prompt in a try/finally block or use context managers. The library itself restores terminal on normal exit, but not on unhandled exceptions.
gotcha Unicode/emoji characters may not render correctly on all terminals (especially Windows cmd with chcp 437). The bullet character defaults to a simple '> ' if the chosen character is not supported.
fix Use simple ASCII symbols if you need to support legacy terminals. Set bullet='▸' or similar.
gotcha The library is no longer actively maintained; last release was in 2020. Issues and pull requests are rarely addressed. Use with caution for new projects.
fix Consider alternatives like 'questionary', 'pick', 'PyInquirer', or 'enquirer' for newer Pythons.