Quartz Shell is a modular Python-based command shell with support for plug-in-like utilities ("gems") such as calculators, image tools, and system utilities. It features themes, command autocompletion, and a customizable prompt.
- 🧱 Modular command system ("gems")
- 🎨 Theme support with ANSI color customization
- 🧠 Smart autocompletion using
prompt_toolkit - 🖼️ Tools like image editors, calculators, and more
- 🗃️ Configurable prompt prefix and shell behavior
- 📦 Easily installable and extendable utility structure
quartz-shell/
├── assets/ # Banners and visual assets
├── config/ # User configuration files (e.g. config.json)
├── gems/ # Individual tools (calculator, image editor, etc.)
│ └── image.py
├── shell/ # Core shell logic
│ ├── core.py # Main shell loop
│ ├── commands.py # Optional command dispatcher
│ └── themes.py # Theme definitions and helpers
├── main.py # Entry point for launching the shell
└── README.md
pip install -r requirements.txtpython -m quartz.pyAdd a new Python file to the gems/ folder. Example structure:
def main(args):
print("This is your new gem!")The filename becomes the command: gemname.py → > gemname.
Themes are defined in shell/themes.py. You can switch the active theme using:
> theme set [theme_name]
View all available themes:
> theme list
User settings like theme and prompt prefix are stored in config/config.json. This file is auto-generated on first run.
config/config.json
__pycache__/
prompt_toolkit- Standard Python libraries (
os,json,importlib, etc.)
Contributions are welcome! To contribute:
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/quartz-shell.git
- Create a branch for your feature or fix:
git checkout -b my-new-feature
- Make your changes
- Commit with a descriptive message:
git commit -am "Add feature X" - Push to your fork:
git push origin my-new-feature
- Open a Pull Request on GitHub
Please follow consistent code style and structure. Tests and doc updates are appreciated!
- Add support for installing gems dynamically
- Package as a Python module
- Add better error output for invalid commands
- Write unit tests
MIT License.