Cinematic and hacker-style terminal text animations and effects for Python.
Project description
👻 GhostPrint
Cinematic terminal effects, interactive TUIs, and fluid screen transitions for Python
Zero Dependencies • Pure Python • Fully Type-Hinted • Flicker-Free Screen Rendering
⚡ Overview
GhostPrint is a robust, zero-dependency Python library designed to build immersive, Hollywood-style CLI tools, setup wizards, and real-time terminal dashboards [README.md].
From dynamic CRT static glitches and interactive multi-select menus to 3D hyperspace starfields and smooth ANSI-safe text wrapping, GhostPrint offers high-performance console formatting while respecting existing terminal scrollback buffers [README.md, setup.py].
📦 Installation
Install the package directly from PyPI:
pip install ghostprint
Or install the local development build from source [README.md]:
git clone https://github.com/MRThugh/ghostprint.git
cd ghostprint
pip install .
🚀 Interactive Capabilities Demo
GhostPrint has a built-in interactive showcase that demonstrates every single animation, effect, and interface component. Run this command in your Python terminal to experience it:
import ghostprint
# Launches the interactive cinematic capability inspection dashboard
ghostprint.demo()
🎨 Global Config & Theme System
GhostPrint v2.0 features a global styling engine. All interface components dynamically lookup default visual styles from ghostprint.Config at runtime. Adjusting the configurations once instantly changes the theme of your entire program:
import ghostprint
# Unify default styling globally
ghostprint.Config.theme_color = ghostprint.MAGENTA
ghostprint.Config.box_style = "round"
ghostprint.Config.spinner_style = "arc"
ghostprint.Config.pointer = "»"
Available Config Properties
| Property | Type | Default | Description |
|---|---|---|---|
theme_color |
str |
CYAN |
Default color for menus, borders, and active selections. |
success_color |
str |
GREEN |
Status indicators representing safe or OK outputs. |
warning_color |
str |
YELLOW |
Status flags representing alert parameters. |
error_color |
str |
RED |
Alert codes representing faults or critical handshakes. |
pointer |
str |
"❯" |
Selection indicator in list selectors. |
box_style |
str |
"single" |
Border style: "single", "double", "round", "bold", or "block". |
spinner_style |
str |
"dots" |
Spinner configuration: "dots", "braille", "line", "arc", or "arrow". |
progress_style |
str |
"blocks" |
Block designs: "blocks", "classic", "neon", or "dots". |
📚 API Reference
1. Colors & Text Formatting
color(text: str, color_code: str) -> str
Wraps a string with standard ANSI terminal escape colors. Always safe and resets automatically.
from ghostprint import color, RED, BOLD
print(color("System Malfunction", RED + BOLD))
gradient(text: str, start_hex: str = None, end_hex: str = None) -> str
Applies a smooth color transition across string characters. If RGB hex parameters are provided, generates a smooth 24-bit TrueColor gradient [README.md].
from ghostprint import gradient
# Smooth cinematic gradient transition
print(gradient("CYBER SECURITY CONSOLE", start_hex="#ff007f", end_hex="#7f00ff"))
markup(text: str) -> str
Translates inline markup tags into ANSI-styled text block. Supports standard nested combinations and RGB TrueColor gradient tags.
from ghostprint import markup
line = markup("System status: [bg_blue][bold][white] ACTIVE [/white][/bold][/bg_blue] on [gradient:#00f2fe:#4facfe]Secure Socket[/gradient]")
print(line)
Supported tags: red, green, yellow, blue, magenta, cyan, white, bold, italic, underline, reverse, bg_red, bg_green, bg_yellow, bg_blue, bg_magenta, bg_cyan, bg_white.
2. Layout & UI Effects
box(text: str, style: str = None, auto_wrap: bool = True) -> None
Draws a stylized terminal bounding box. Supports raw newline separations (\n) and automatic console boundary wrapping.
from ghostprint import box
box("Target network authentication completed successfully.\nSecure shell socket mapped.", style="round")
table(headers: list[str], rows: list[list[str]], style: str = None) -> None
Draws auto-aligned columns in a clean structural grid. Safely strips ANSI styling codes during calculation to prevent spacing misalignment.
from ghostprint import table, markup
headers = ["ID", "Process", "Status"]
rows = [
["1021", markup("[cyan]Tunnel Proxy[/cyan]"), markup("[green]OK[/green]")],
["1094", markup("[cyan]DB Daemon[/cyan]"), markup("[yellow]WARN[/yellow]")],
["2011", markup("[cyan]RSA Listener[/cyan]"), markup("[red]FAIL[/red]")]
]
table(headers, rows, style="double")
banner(text: str, fill_char: str = "█", auto_wrap: bool = True) -> None
Renders a high-contrast cinematic visual container around the text block.
from ghostprint import banner
banner("SYSTEM REBOOT INITIATED")
ruler(char: str = "─", color_code: str = None) -> None
Draws a horizontal divider line fitting exactly the active console dimensions.
from ghostprint import ruler, BLUE
ruler(char="═", color_code=BLUE)
3. Text & Screen Animations
typewrite(text: str, speed: float = 0.03, end: str = "\n", auto_wrap: bool = True) -> None
Simulates typewriter output. If auto_wrap is active, paragraphs wrap gracefully at terminal width without breaking mid-word.
from ghostprint import typewrite
typewrite("Decrypting satellite uplink transmission packet...", speed=0.02)
loading(text: str = "Loading", duration: float = 3.0, spinner_type: str = None, success_char: str = "✓") -> None
Renders a smooth dynamic loading spinner. Temporarily hides user cursor to keep screen clean.
from ghostprint import loading
loading("Initializing secure handshake", duration=2.5, spinner_type="arc")
progress(duration: float = 3.0, text: str = "Processing", style: str = None, length: int = 30) -> None
Draws an animated progress bar. Fully customizable styles include: blocks, classic, neon, or dots.
from ghostprint import progress
progress(duration=4.0, text="Flushing local system caches", style="neon")
decode(text: str, speed: float = 0.04, color_code: str = None) -> None
Displays a sci-fi hacker decryption effect where characters randomly cycle before locking in.
from ghostprint import decode, GREEN
decode("ACCESS GRANTED", speed=0.05, color_code=GREEN)
flicker_print(text: str, duration: float = 1.0, speed: float = 0.05, active_color: str = None) -> None
Simulates a CRT monitor interference glitch. Scrambles characters, shifts horizontally, and flickers in intensity before stabilizing.
from ghostprint import flicker_print, RED
flicker_print("CRITICAL FILE TAMPERING DETECTED!", duration=1.5, active_color=RED)
stream_logs(count: int = 10, speed: float = 0.05) -> None
Generates a rapid sequence of tech system diagnostics logs.
from ghostprint import stream_logs
stream_logs(count=12, speed=0.06)
4. Interactive Utilities
select(options: list[str], prompt: str = "Select:", pointer: str = None, active_color: str = None) -> str | None
Renders an interactive selection menu. Users navigate using Up/Down arrow keys and press Enter to confirm. Returns selected value.
from ghostprint import select
category = select(["Uplink Tunnel", "Local Sandbox", "System Wipe"], prompt="Choose target action:")
print(f"Executing: {category}")
multiselect(options: list[str], prompt: str = "Select options:", pointer: str = None, active_color: str = None, checked_char: str = "■", unchecked_char: str = "□") -> list[str] | None
Displays an interactive list with checkboxes. Use Space to toggle selections and Enter to confirm. Returns a list of selected options.
from ghostprint import multiselect
features = multiselect(["Firewall Bypass", "IP Spoofer", "Cache Purge"], prompt="Select tools to deploy:")
print(f"Deploying tools: {features}")
secure_input(prompt: str = "Password: ", mask: str = "*") -> str
Securely reads a user password by printing a custom masking symbol instead of plain text. Supports Backspace.
from ghostprint import secure_input
credentials = secure_input("Enter Root Access Key: ", mask="■")
wait_key(prompt: str = "Press any key to continue...") -> None
Halts execution until a key is pressed, working instantly without requiring Enter [utils.py].
from ghostprint import wait_key
wait_key("Press any key to initiate self-test...")
clear() -> None
Clears terminal window cross-platform.
from ghostprint import clear
clear()
center(text: str, width: int = None) -> str
Dynamically aligns a text block perfectly centered relative to the active console width.
from ghostprint import center
print(center("System Locked"))
wrap(text: str, width: int = None) -> list[str]
Line wraps a long paragraph while preserving inline ANSI escape styling strings intact.
from ghostprint import wrap
lines = wrap("Your long styled text...", width=50)
for line in lines:
print(line)
5. Advanced Interactive Rendering
Live Context Manager
The Live context manager permits in-place rendering of dynamic, multi-line blocks. Highly efficient and flicker-free because it overwrites exactly the modified output coordinates.
import time
from ghostprint import Live, markup
with Live() as live:
for i in range(101):
dashboard = (
f"=== [bold]System Node Dashboard[/bold] ===\n"
f"CPU Load: {i}%\n"
f"Network: [\033[92mActive\033[0m]\n"
f"Progress: [{i}/100]"
)
live.update(markup(dashboard))
time.sleep(0.05)
6. Full-Screen Visual Transitions
matrix_rain(duration: float = 5.0, speed: float = 0.05) -> None
Transitions terminal screen with full-screen classic Matrix falling rain streams. Fully clean teardown on abort [animations.py].
from ghostprint import matrix_rain
matrix_rain(duration=5.0)
starfield(duration: float = 5.0, speed: float = 0.03) -> None
Starts a cinematic 3D Hyperspace Warp Drive starfield on screen. Runs beautifully on modern terminals [animations.py].
from ghostprint import starfield
starfield(duration=4.0)
hacker_typer(code: str, chars_per_key: int = 3, prompt: str = ..., color_code: str = None) -> None
Launches an interactive keypress coding simulation. Smashing any keys streams pre-defined exploit source codes onto the screen. Exit with ESC.
from ghostprint import hacker_typer
source_code = """
#include <sys/socket.h>
int main() {
int s = socket(AF_INET, SOCK_STREAM, 0);
connect(s, &addr, sizeof(addr));
send(s, "PAYLOAD", 7, 0);
}
"""
hacker_typer(source_code)
👨💻 Author & Contribution
Developed and maintained by Ali Kamrani.
- GitHub: https://github.com/MRThugh
- Email: kamrani.exe@gmail.com
📄 License
This library is open-source software licensed under the MIT License.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file ghostprint-2.0.0.tar.gz.
File metadata
- Download URL: ghostprint-2.0.0.tar.gz
- Upload date:
- Size: 23.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c7cbed1987ea6dab42730132165beff0c197fc3b1596c971517cb7e6d1e0007d
|
|
| MD5 |
87d661da04e6658d9754b8e783640c9d
|
|
| BLAKE2b-256 |
957564796631d770513547bc66df460395b0f4241d7565fe6dda3e6d3661a071
|
File details
Details for the file ghostprint-2.0.0-py3-none-any.whl.
File metadata
- Download URL: ghostprint-2.0.0-py3-none-any.whl
- Upload date:
- Size: 20.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8c377ca3bfb9aa7f8c16236a7de6c841043cf73ab64287b67938746ac239ad6d
|
|
| MD5 |
0c3f47f8f718844cf673315436fefdb5
|
|
| BLAKE2b-256 |
89406dfef93befba580a52cd82db85d932393b155b2dcc18b1af6234c5c48f85
|