chat.banner
Banner and animation utilities for theLoop assistant.
GREEN_DARK
0x16A085 - Green brand
GREEN_MEDIUM
0x1ABC9C - Green accent
GREEN_LIGHT
0x2ECC71 - Green bright
GREEN_TEXT
0x117A65 - Accessible green text
RED
0xE74C3C - Error / missing
GRAY
0x59595C - Secondary text
WHITE
0xFFFFFF - Primary text (dark mode)
format_goodbye
def format_goodbye() -> str
Return the one-line, colorized goodbye for raw ANSI terminals.
print_goodbye
def print_goodbye(console: Any = None) -> None
Print the centralized goodbye message on a single line.
Renders through a Rich Console when one is provided, otherwise falls
back to a plain print with an OSC-8 hyperlink. A blank line is added
above and below for breathing room.
matrix_rain_banner
def matrix_rain_banner(width: int = 60,
height: int = 12,
duration: float = 2.0,
fps: int = 15,
start_row: int = 0) -> None
Display an animated Matrix-style digital rain effect.
Arguments:
width- Width of the rain display in charactersheight- Height of the rain display in rowsduration- How long to show the animation in secondsfps- Frames per second for the animationstart_row- Row to start drawing from (to preserve content above)
spinning_animation
def spinning_animation(width: int = 70,
height: int = 20,
duration: float = 3.0,
fps: int = 10) -> None
Display an animated black hole GIF converted to ASCII art.
Downloads a spinning black hole GIF and renders it as animated ASCII art using PIL for image processing.
Arguments:
width- Width of the display in charactersheight- Height of the display in rowsduration- How long to show the animation in secondsfps- Frames per second for the animation
BANNER_HEIGHT
+2 for the "Powered by" line and extra newline
show_banner
def show_banner(splash: bool = False, splash_all: bool = False) -> None
Display theLoop welcome banner with optional animations.
Arguments:
splash- If True, show Matrix rain animation before banner.splash_all- If True, show both Matrix rain and black hole animations before banner.