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.1.0.tar.gz (12.8 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.1.0-py3-none-any.whl (11.4 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for shinyshell-0.1.0.tar.gz
Algorithm Hash digest
SHA256 dc2c9c7dec423c7580da101c518dd97f38c314952d04fdcbf662fa757c935eff
MD5 ef5304f88c5d6ccc703382bcb4131c2c
BLAKE2b-256 1a5f368879ee2126b1740cf710136f07e725fafe8d1ebc11a42bfc9e2aa8ac21

See more details on using hashes here.

File details

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

File metadata

  • Download URL: shinyshell-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 11.4 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.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ec6c8c2e25bf03f65a4970a79587077b58012312c8ced54e581b26476cbd6231
MD5 6abadb952e1303571c8cf2fb42ae1b4d
BLAKE2b-256 3fa2f1d6c9f06c27d0eec88d6c2841a74523c60b251c5f47438f537d82f1b4d7

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