Simple-cli-shell is an enhanced shell wrapper with rich UI, multi-shell completion, and environment detection.
Experimental / Toy Project | License: MIT (use/modify freely, no restrictions)
As-is: No warranty, no support
pip install .| Key | Action |
|---|---|
Alt+H |
Help |
Alt+C |
Clear |
Ctrl+C |
Exit |
Simple-CLI supports multiple shell completion systems:
- Bash: Default completion system (already supported)
- Fish: Rich completion with descriptions
- Zsh: Advanced completion system
- Nushell: Modern shell completion
Edit ~/.simple_cli/config.json to customize completion:
{
"syntax": {
"enabled_completion_shells": ["fish", "zsh", "bash", "nushell"],
"completion_shell_order": ["fish", "zsh", "bash", "nushell"],
"fish_completion_dirs": [
"~/.config/fish/completions",
"/usr/share/fish/completions"
],
"zsh_completion_dirs": [
"~/.zsh/completions",
"/usr/share/zsh/functions/Completion"
],
"nushell_completion_dirs": [
"~/.config/nushell/completions"
]
}
}- Simple-CLI tries each enabled shell in the specified order
- First shell that returns completions wins
- Fish completions include descriptions (if available)
- Falls back to bash completion if others fail
.
├── __init__.py
├── app.py # Main application setup and initialization
├── cli.py # Entry point for the command-line interface (CLI)
├── commands
│ ├── __init__.py
│ └── executor.py # Handles execution of shell commands (ls, cd, etc.)
├── completion.py # Manages command and path auto-completion
├── config.py # Central configuration for the entire application
├── core
│ ├── __init__.py
│ ├── hybrid_shell.py # The main orchestrator for shell mode
│ └── script_runtime.py # Handles script execution and runtime
├── customization.py # Simple API for customizing the shell's components
├── environment.py # Detects the user's environment (Git, Python, etc.)
└── ui
├── __init__.py
├── highlighter.py # Provides custom syntax highlighting
├── manager.py # Manages static UI elements (prompts, panels, tables)
├── streaming.py # Manages live, streaming display of shell output
├── theme.py # Defines the visual theme (colors, styles) for UI panels
├── plugin_system.py # Plugin system for UI extensions
└── plugins
├── __init__.py
├── cpu.py # CPU usage plugin
├── battery.py # Battery status plugin
├── clock.py # Clock plugin
├── git_status.py # Git status plugin
└── memory.py # Memory usage plugin