Skip to main content

Python library for beautiful terminal output — colored printing, tables, progress bars, syntax highlighting, bar charts, QR codes, and more. Zero dependencies.

Project description

✨ shinyshell — The Most Feature-Rich Zero-Dependency Python Terminal Library

127 features. 0 dependencies. Pure Python stdlib.
Tables, charts, progress bars, games, QR codes, code highlighting, diff viewer,
HTTP client, JSON/YAML/XML formatters, and much more — all in one import.

PyPI Python MIT


📦 Why shinyshell?

  • 127 features — the most feature-rich zero-dep terminal library for Python
  • Zero dependencies — pure Python stdlib (os, sys, shutil, json, csv, hashlib)
  • Cross-platform — Linux, macOS, Windows Terminal, PowerShell, CMD, VS Code
  • Production-ready — scripts, CLIs, CI/CD pipelines, Docker containers
  • ~2800 lines — small, readable, easy to contribute to

vs Alternatives

shinyshell rich colorama termcolor
Dependencies 0 10+ 0 0
Features 127 50+ 3 5
Tables
Charts
Code highlight
QR codes
Games
Animations
Git viewer
HTTP client
Decorators
Forms

shinyshell = Rich's features + Colorama's portability + 77 extra features — all with zero deps.


🚀 Quick Start

pip install shinyshell
from shinyshell import Shell
sh = Shell()

📚 Complete Feature Reference (127 features)

💬 Messages & Status

sh.success("Done!")       # ✨ Green success
sh.error("Failed!")       # 💥 Red error
sh.warning("Careful!")    # ⚠️ Yellow warning
sh.info("Running...")     # ℹ️ Cyan info

📐 Layout & Headers

sh.header("MY APP")       # ╔═ Boxed header
sh.header("Section", 2)   # ── Simple header
sh.banner("SHINY")        # ASCII art banner
sh.hr()                   # ─── Horizontal rule
sh.hr("Section 1")        # Labeled rule
sh.rule()                 # Gradient rule
sh.box("content", "Title") # ╭─ Boxed content

📊 Tables & Data

sh.table(users, title="Team")          # Professional tables
sh.metrics({"CPU":"45%","RAM":"8GB"})  # Key-value dashboard
sh.timeline(events)                     # Vertical timeline
sh.columns(items, cols=3)              # Side-by-side columns
sh.grid(items, cols=2)                 # Grid layout

📈 Charts & Visualizations

sh.pie({"Python":45,"JS":30,"Go":25})          # ASCII pie chart
sh.bar({"A":85,"B":62,"C":45})                 # Bar chart
sh.line_chart([1,5,2,8,3,9])                   # Line chart
sh.histogram([1,2,2,3,3,3,4,5])               # Histogram
sh.scatter([(1,2),(3,5),(4,3)])                # Scatter plot
sh.waterfall([("Start",100),("+Sales",50)])    # Waterfall chart
sh.donut({"A":30,"B":70})                       # Donut chart
sh.bullet_graph("Revenue", 75, 90)              # Bullet graph
sh.heatmap([[1,2,3],[4,5,6],[7,8,9]])          # Heatmap
sh.sparkline([1,5,2,8,3,9])                    # ▁▃▁▆▂█
sh.gauge(75, 100, "CPU")                       # Gauge meter

🔄 Progress & Loading

sh.spinner("Loading...", 3.0)         # Animated spinner
sh.progress("Uploading")              # Progress bar
sh.countdown(5, "Launching")          # 5...4...3...
sh.benchmark("Processing")            # ⏱️ Timed context
sh.live()                             # Live-updating display
sh.steps("Deploy", total=5)           # Step tracker
sh.timer(30, "Break")                 # Countdown timer
sh.pomodoro(25, 5, 4)                # 🍅 Pomodoro timer

💻 Code & Development

sh.code(python_source)                # Syntax highlighting
sh.diff(old, new)                     # Colored git diff
sh.git_log(10)                        # Pretty git log
sh.git_status()                       # Pretty git status
sh.stack_trace()                      # Pretty stack trace
sh.process_info()                     # Process metrics
sh.pip_list("django")                 # Pretty pip list
sh.filewatch("app.py")               # File change watcher

🌐 Network & Web

sh.http("GET", "https://api.example.com")  # HTTP viewer
sh.network_ping("google.com")              # Ping with visuals
sh.network_status("https://example.com")   # HTTP status check
sh.dns_lookup("google.com")               # DNS lookup
sh.ip_info("8.8.8.8")                     # IP geolocation

📁 Files & System

sh.tree("./src")                      # Directory tree
sh.disk_usage("/")                    # Disk usage gauge
sh.file_permissions("app.py")        # Permission viewer
sh.checksum("file.bin", "sha256")    # File hash
sh.config(".env")                     # Config file viewer
sh.csv("data.csv")                    # CSV viewer
sh.sql_table(rows)                    # SQL result viewer
sh.env("PYTHON")                      # Environment viewer
sh.version()                          # System version info

📄 Data Formats

sh.json(data)                         # Colored JSON
sh.markdown(text)                     # Terminal markdown
sh.xml("<root><item/></root>")       # Colored XML
sh.yaml_view(yaml_text)              # YAML viewer
sh.hexdump(b"hello world")           # Hex dump
sh.jwt_decode(token)                  # JWT decoder
sh.url_parse(url)                     # URL parser
sh.base64_encode("hello")            # Base64 encode
sh.uuid_gen(5)                        # UUID generator

🔐 Security & Debug

sh.secret("sk-abc123")               # sk-****123
sh.password("Enter key:")            # Masked input + strength
sh.debug(user, status)               # Type + value + location
sh.trace                              # @sh.trace decorator
sh.dict_diff(old, new)               # Deep dict comparison

🎮 Games & Fun

sh.slot(5)                            # 🍒 Slot machine
sh.coin_flip()                        # 🪙 Coin flip
sh.magic8()                           # 🎱 Magic 8 ball
sh.dice(6, 2)                        # 🎲 Dice roller
sh.spin_wheel(["A","B","C"])         # 🎡 Spin wheel
sh.matrix(10)                         # Matrix rain
sh.confetti(5)                        # 🎉 Confetti
sh.marquee("Breaking News!")         # Scrolling text
sh.particles(5)                       # Particle animation

🎨 Visual Effects

sh.rainbow("Hello World")            # 🌈 Rainbow text
sh.gradient_text("Gradient")         # Color gradient
sh.neon("NEON")                       # Neon glow
sh.typewrite("Hello...")             # Typewriter effect
sh.color_picker()                     # ANSI color browser
sh.color_grid()                       # RGB color grid

📝 Text Utilities

sh.wrap_text(long_text, width=60)    # Word wrap
sh.truncate(text, 50)                 # Smart truncation
sh.align_text("Hi", 40, "center")   # Text alignment
sh.highlight(text, "keyword")        # Keyword highlight
sh.ordinal(42)                        # → "42nd"
sh.pluralize("file", 3)              # → "files"
sh.camel_case("hello world")         # → "helloWorld"
sh.snake_case("HelloWorld")          # → "hello_world"
sh.strip_ansi(escaped)               # Remove ANSI

🖼️ Images & QR

sh.qr("https://github.com")          # Terminal QR code
sh.image("photo.jpg", width=80)      # Image → ASCII (needs Pillow)
sh.screenshot("output.txt")          # Capture terminal

⌨️ Interactive

sh.confirm("Deploy?")                 # Yes/No prompt
sh.choice("Select:", ["A","B","C"])  # Pick from list
sh.input("Name:", default="World")   # Styled input
sh.form([("Name:",str),("Age:",int)]) # Multi-field form
sh.toggle("Dark Mode", True)         # Toggle switch
sh.autocomplete("Search:", options)  # Filter-as-you-type
sh.menu(["Deploy","Rollback"])       # Arrow-key menu

🎧 Audio & Clipboard

sh.audio_beep(3)                      # Terminal beep
sh.audio_ding()                       # System ding
sh.clipboard_copy("Hello")           # Copy to clipboard
sh.notify("Build complete")          # Desktop notification

🔧 Decorators & Utils

@sh.trace                             # Auto-log function calls
@sh.retry(3)                          # Auto-retry on failure
@sh.throttle(1.0)                     # Rate limiting
@sh.background                        # Run in background thread

sh.batch(items, 10, callback=fn)     # Batch processor
sh.sleep(5, "Cooling down")          # Pretty sleep

🔗 Utility Methods

sh.link("GitHub", url)               # Clickable link
sh.badge("v5.0", "green")            # Colored badge
sh.emoji("rocket")                    # → 🚀
sh.venn({1,2,3}, {2,3,4})           # Set comparison
sh.calendar(2026, 7)                 # Monthly calendar
sh.pipe(data).table().metrics()      # Chained output

📼 Session

sh.session_start("debug")            # Record session
# ... your code ...
sh.session_stop()                     # Stop recording

📊 Feature Count by Category

Category Count Examples
Messages 4 success, error, warning, info
Layout 7 header, banner, hr, rule, box
Charts 11 pie, bar, line, histogram, scatter, waterfall
Progress 8 spinner, progress, countdown, benchmark, live
Code 6 code, diff, git_log, stack_trace, pip_list
Network 6 http, ping, status, dns, ip_info
Files 7 tree, disk_usage, checksum, csv, config
Data 9 json, markdown, xml, yaml, hexdump, jwt
Games 9 slot, coin, magic8, dice, matrix, confetti
Visual 7 rainbow, gradient, neon, typewrite, particles
Text 8 wrap, truncate, align, ordinal, camel_case
Interactive 8 confirm, choice, menu, form, autocomplete
Security 4 secret, password, debug, dict_diff
Tables 4 table, metrics, timeline, grid
Utils 10 trace, retry, throttle, batch, link, badge
QR/Image 4 qr, image, screenshot, color_picker
Audio 3 beep, ding, notify
Session 2 start, stop
TOTAL 127

⭐ Support

If this library saved you time, star the repo and share it!

pip install shinyshell

⭐ GitHub · 📦 PyPI · 🌐 Author

MIT © 2026 Adnan Ahamed Himal

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shinyshell-0.5.1.tar.gz (38.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

shinyshell-0.5.1-py3-none-any.whl (33.5 kB view details)

Uploaded Python 3

File details

Details for the file shinyshell-0.5.1.tar.gz.

File metadata

  • Download URL: shinyshell-0.5.1.tar.gz
  • Upload date:
  • Size: 38.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for shinyshell-0.5.1.tar.gz
Algorithm Hash digest
SHA256 b29183a2e562f258ebb125eb7bd13fc4a29a58d085832b5aef12d31acdaad1c6
MD5 f2a75be3e5b19e4494e26c7b0b535b9d
BLAKE2b-256 3dfe827b290c85b227c27706a9fd34b13eabe2688ca880812446883f7b61fbc7

See more details on using hashes here.

File details

Details for the file shinyshell-0.5.1-py3-none-any.whl.

File metadata

  • Download URL: shinyshell-0.5.1-py3-none-any.whl
  • Upload date:
  • Size: 33.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.15

File hashes

Hashes for shinyshell-0.5.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1c532419affbc85327a868c2ced79933d6f871118aca91556787795531bab107
MD5 6ad47e505ffbc2c29d9330163fd65666
BLAKE2b-256 7a823a9aecc265616f705f558232a915f431887abc875cabd4fde9994988f0e4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page