How I built shinyshell - 127 terminal features with zero dependencies
I spent months building a Python terminal library that rivals Rich's feature set but uses zero external dependencies. Here's the technical breakdown.
What It Does
from shinyshell import Shell
sh = Shell()
- ๐ Charts - pie, bar, line, histogram, scatter, waterfall, heatmap, gauge
- ๐ Tables - professional tables with 5 border styles
- ๐ฎ Games - slot machine, dice roller, magic 8 ball, coin flip
- ๐ฑ QR Codes - generated entirely from stdlib (hashlib!)
- ๐ป Dev Tools - syntax highlighting, diff viewer, git log, HTTP client
- ๐ง Decorators - trace,
@retry,@throttle,@background - โจ๏ธ Interactive - arrow-key menu, forms, autocomplete, password input
- ๐จ Effects - confetti, matrix rain, typewriter, neon, rainbow, marquee
The Zero-Dependency Constraint
The entire library uses only Python standard library. No pip install nightmares. Every color, every table border, every animation - built from sys.stdout.write() and ANSI escape sequences.
Windows was Hard
CMD doesn't support ANSI by default. Had to use ctypes + kernel32 to enable virtual terminal processing. Windows Terminal works perfectly, cmd.exe has limited Unicode.
Arrow-Key Menu
Raw terminal I/O with tty.setraw() - reading \x1b[A for up arrow, \x1b[B for down. Platform-specific and surprisingly nuanced.
Cross-Platform
โ Ubuntu / macOS Terminal / iTerm2 / Windows Terminal / PowerShell / Docker / GitHub Actions
Numbers
127 features | 0 dependencies | ~3200 lines | 3.8+ Python
Try It
pip install shinyshell
from shinyshell import Shell
sh = Shell()
sh.confetti() # ๐
GitHub: https://github.com/adnanahamed66772ndpc/shinyshell
PyPI: https://pypi.org/project/shinyshell/
Built with โค๏ธ in Dhaka ๐ง๐ฉ
Comments
No comments yet. Start the discussion.