Skip to main content

Beautiful terminal output for Python. Zero dependencies.

Project description

✨ shinyshell

Beautiful terminal output for Python. Zero dependencies. One import.

PyPI version Python License

from shinyshell import Shell

sh = Shell()

sh.success("Deployed to production!")
sh.table(users, title="Team Members")
sh.progress("Installing deps...")
sh.header("My CLI App")
sh.code("print('hello')")
sh.countdown(5, "Launching")

📸 Demo

from shinyshell import Shell
sh = Shell()

# Headers & banners
sh.header("DEPLOYMENT REPORT")
sh.banner("SHINY SHELL")

# Success / Warning / Error / Info
sh.success("Database migrated successfully")
sh.warning("Rate limit approaching — 93% used")
sh.error("Connection to API failed after 3 retries")
sh.info("Server running on http://localhost:8000")

# Beautiful tables
sh.table([
    {"Name": "Alice Chen", "Role": "Backend Dev", "Status": "✅ Active"},
    {"Name": "Bob Kumar", "Role": "Frontend", "Status": "✅ Active"},
    {"Name": "Charlie D.", "Role": "Design Lead", "Status": "⏳ On Leave"},
], title="Team Status")

# Progress with spinner
sh.spinner("Compiling assets...")
update = sh.progress("Uploading")
for i in range(100):
    update(i + 1, 100)

# Countdown
sh.countdown(5, "Deploying to production")

# Boxed content
sh.box("API Key: sk-****abcd\nEndpoint: /v1/chat\nModel: gpt-4", title="Configuration")

# Directory tree
sh.tree("./src", max_depth=2)

# Code blocks
sh.code("""
def fibonacci(n):
    if n <= 1:
        return n
    return fibonacci(n-1) + fibonacci(n-2)
""")

# Metrics dashboard
sh.metrics({
    "Users": 12483,
    "Active Now": 342,
    "Uptime": "✅ 99.9%",
    "Error Rate": "0.02%",
    "Avg Response": "23ms",
})

# Colored diff
sh.diff("hello world", "hello beautiful world")

# Interactive
if sh.confirm("Deploy to production?"):
    sh.success("Ship it! 🚀")

# Horizontal rule
sh.hr("Section 2")

📦 Install

pip install shinyshell

No dependencies. Uses only Python standard library. Works on Linux, macOS, and Windows (PowerShell, CMD, Windows Terminal).


🎯 Features

Feature Description
success() ✅ Green success messages
warning() ⚠️ Yellow warnings
error() ❌ Red errors
info() ℹ️ Cyan info
header() Styled section headers
banner() ASCII art banners
table() Beautiful data tables
box() Content in styled boxes
code() Syntax-highlighted code blocks
diff() Colored git diff
tree() Directory trees
metrics() Key-value dashboards
spinner() Animated loading spinner
progress() Progress bars
countdown() Animated countdown
confirm() Interactive y/n prompts
choice() Interactive option picker
hr() Horizontal rules with labels

🤔 Why?

Every Python script prints to the terminal. Most output looks boring. shinyshell makes it beautiful — with zero dependencies.

Before:

Task completed
Users: 1042
ERROR: Connection failed

After:

✨ Task completed
📊 Users: 1,042
💥 Connection failed

🔧 Advanced

# Custom width
sh = Shell(width=80)

# Disable color
sh = Shell(color=False)

# Access icons
print(sh.icons["rocket"])  # 🚀

# Chaining
sh.success("Step 1 done").progress("Step 2...")

📄 License

MIT — © 2026 Adnan Ahamed Himal


⭐ Support

Found this useful? Star this repo and share it with your team!

⬆ Back to top

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.2.0.tar.gz (16.9 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.2.0-py3-none-any.whl (15.5 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for shinyshell-0.2.0.tar.gz
Algorithm Hash digest
SHA256 fa790641479a874bd40a4a9acd708d3747c8ab052271472085817cdcea64f0a8
MD5 377dcc4422ee4199660a3f51a8467b90
BLAKE2b-256 ca97847512dd2f0e090823ace1756c62121b8212249f368641a7c8b6a24bc17d

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shinyshell-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 15.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.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1366b9edc9573f766ac3697872593845db042005cf850488246228eb6f86b594
MD5 be6cb0dd4c280c0efcee8d5b833596ad
BLAKE2b-256 31cd3a660dcadb7aeb7c82b7252579ef399284a0627489a46ed161b8cdff2819

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