- CLI no longer errors with "no command called X" when passing text directly as a positional argument (e.g.,
bangen "hello"). The entry point now automatically routes bare text arguments to themainsubcommand. - TUI rendering on Linux/macOS no longer produces shattered/jagged output. The
tty.setraw()call was clearing the terminal'sOPOSTflag, which disabled\nβ\r\ntranslation and broke Rich's layout rendering. Output processing is now restored immediately after entering raw mode. SIGWINCH is also handled to refresh the console on terminal resize.
pyperclipdependency for improved clipboard paste support in TUI text input boxes- GitHub Actions workflow now dynamically extracts dependencies from
pyproject.tomlinstead of hardcoding them for PyInstaller builds
- Auto-sizing is now enabled by default β use
--no-auto-sizeto disable it - Auto-sizing no longer requires the
--auto-sizeflag to activate; default behavior now includes automatic terminal-based sizing - Text input fields in export and preset dialogs now support full cursor movement with arrow keys (β β)
- Text input now supports mid-string character insertion and deletion instead of append-only editing
- Paste operations in text boxes now insert at the current cursor position instead of appending to the end
- Text cursor now displays at the actual insertion point in input fields
- Backspace in text boxes now removes the character at the cursor position instead of always removing the last character
- Temporal effects (
fade_in,wipe,stagger) now perform continuous looping animations instead of stopping after initial transition
- CLI export progress display with a live progress bar, percentage, elapsed time, ETA, and stage text
- Typer-powered CLI help output with cleaner option formatting and examples
- GitHub Actions release workflow for standalone
Windows,macOS, andLinuxbinaries uploaded to GitHub releases using the version frompyproject.toml
- Removed HTML export support from the codebase, CLI surface, and documentation
- GIF export now reports granular progress across frame rendering, palette construction, quantization, and file writing
- Migrated the CLI help/parser layer from
argparsetoTyperwhile keeping the existing flag-oriented workflow - TUI export modal now displays live export progress with percentage, elapsed time, ETA, and stage text during rendering
- Standalone release binaries now collect the full
bangenpackage pluspyfiglet, Rich, and Pillow runtime assets so the packaged TUI app resolves imports correctly onWindows,macOS, andLinux - Project version metadata now reflects
2.2.1
--screensaverfull-screen terminal mode with auto-fitted banner sizing, randomized scene rotation, effect mixing, and optional seed/duration controls- Screensaver font rotation across multiple safe fitted fonts per scene
- Expanded README documentation for screensaver mode and refreshed presentation details
- Refined the README structure and GitHub presentation, including more deliberate visual emphasis
- Screensaver scene generation now skips invalid randomized effect kwargs instead of breaking playback
- Screensaver fitting now reserves extra margin for motion/distortion-heavy scenes so text stays on-screen
- Screensaver font selection is randomized across safe fits instead of collapsing into one repeated choice
--preset-filesupport in the CLI for loading a preset JSON from any path without saving it- TUI preset loader modal with support for loading saved presets or an arbitrary preset file
- Expanded README documentation for preset authoring, preset loading, and current CLI/TUI workflows
- Reworked the active effect library for more stable, bounded, export-safe motion, distortion, visual, and signature rendering
- Improved GIF and PNG raster rendering with better font metrics, larger raster sizing, and shared GIF palette generation across sampled frames
- Refined
flickerandglitchbehavior to reduce export fuzziness and palette churn
wipenow reveals visible content bounds instead of wasting progress on indentation- Preset-derived
gradient_directionis preserved unless explicitly overridden on the CLI - Windows console export status output now uses ASCII arrows to avoid
cp1252encoding crashes
- Modular architecture:
rendering,gradients,effects,tui,cli,export,presets,ai - True-colour RGB gradient engine with multi-stop interpolation (
Gradient) - Composable effect pipeline on the
Bannerobject - Effects: Wave, Glitch, Pulse (brightness oscillation), Typewriter, Scroll
- Full-screen interactive TUI with split controls/preview layout (
TUIApp) - Full CLI via
argparsewith all features accessible from the terminal - JSON preset system stored in
~/.bangen/presets/(8 built-in presets) - Multi-format export: TXT, PNG, animated GIF
- External FIGlet font loading via
--font-dir - AI rule-based prompt-to-style suggester
- Minimum Python version raised to 3.11
pyfigletandrichremain the only required dependenciesPillowis now an optional dependency (pip install bangen[images])
- Monolithic single-file
bangen.pyreplaced by package
- Initial release: interactive prompts, 5 named colours, line-by-line animation, TXT save