Install & Compatibility
Where this runs
tested against v2.2.0 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.022s · 17.9MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 1.7s · import 0.020s · 18MB
16MB installed
● package 16MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
Bullet
✓ from bullet import Bullet
Correct modern import path.
Check
✓ from bullet import Check
For multi-select checklists.
YesNo
✓ from bullet import YesNo
For yes/no prompts.
Input
✓ from bullet import Input
For free-text input.
colors
✓ from bullet import colors
Used for styling (foreground, background, etc.).
ScrollBar
✓ from bullet import ScrollBar
For scrolling long lists.
client
✓
✗ from bullet import client
There is no 'client' module; do not import from bullet.client.
Bullet (class)
✓
✗ from bullet import Bullet as Bullet
Old users sometimes try 'from bullet import bullet' (lowercase) which doesn't work.
Basic single-select prompt with custom styling.
from bullet import Bullet, colors
cli = Bullet(
prompt="Choose a color: ",
choices=["red", "green", "blue"],
indent=0,
align=5,
margin=2,
bullet="➡️",
bullet_color=colors.bright(colors.foreground["cyan"]),
word_color=colors.bright(colors.foreground["white"]),
word_on_switch=colors.bright(colors.foreground["green"]),
background_color=colors.background["black"]
)
result = cli.launch()
print(f"You picked {result}")
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'bullet'
Library not installed.
fixRun: pip install bullet
TypeError: __init__() got an unexpected keyword argument 'params'
Using outdated or mistyped constructor arguments.
fixCheck the documentation for correct parameters: Bullet(prompt, choices, ...). Do not use 'params'.
AttributeError: module 'bullet' has no attribute 'Bullet'
Importing incorrectly. There is no 'bullet.Bullet' because 'bullet' is the package, not a module inside it.
fixUse: from bullet import Bullet
ValueError: The truth value of a Choice is ambiguous
Using raw strings vs. custom choice objects incorrectly. The choices parameter expects strings or custom objects with __str__.
fixPass a list of strings, or define a class with __str__ method if custom objects are needed.
Upgrade
Version history
2.2.0latest on PyPI · released Aug 14, 2020
Audit
Dependencies
pyyamloptionalOptional: used for saving/loading config in older versions, not required for basic usage.