Your Python app's last words — dramatic, rude, comic, or philosophical exit messages.
😤 OH COME ON. Again?! I JUST got settled in.
Every Python app exits. Most do it silently. tantrumpy gives yours a voice.
pip install tantrumpyimport tantrumpy
tantrumpy.enable()That's it. The next time your app exits — Ctrl+C, sys.exit(), a crash, or a kill signal — it throws a tantrum first.
| Mood | Emoji | Vibe |
|---|---|---|
frustrated |
😤 | "OH COME ON. Again?!" |
rude |
💀 | "Good riddance. Don't let the GC hit you." |
comic |
🎭 | "And... scene. Nobody clap." |
cringe |
😬 | "uwu ur pwogram is sweeping now 😭" |
philosophy |
🧠 | "To exit is to finally understand the void." |
dramatic |
🎬 | "IT'S OVER. Like tears in rain... gone." |
tantrumpy.enable(mood="philosophy") # specific mood
tantrumpy.enable(mood="random") # surprise me (default)tantrumpy.enable(verbose=True)
# 😤 I JUST got settled in. [exit via: SIGINT (Ctrl+C)]tantrumpy.add_messages("corporate", [
"This exit event has been logged for review.",
"Please submit a ticket for this disruption.",
])
tantrumpy.enable(mood="corporate")tantrumpy.disable() # cleanly removes all hooksSet TANTRUMPY_SILENT=1 to suppress all output without touching your code:
TANTRUMPY_SILENT=1 python my_app.py| Trigger | How |
|---|---|
| Ctrl+C | signal.SIGINT |
| Kill signal | signal.SIGTERM |
sys.exit() / end of script |
atexit |
| Unhandled exceptions / crashes | sys.excepthook |
tantrumpy never blocks the exit — it sneaks a message in, then lets the process die normally.
MIT — © hemupadhyay26