Modern Terminal Theme & Profile Engine - Make your terminal look like it owns the system
Project description
CLICOOL
Make your terminal look like it owns the system.
CLICOOL adalah modern terminal theme & profile engine yang mengubah terminal Anda menjadi workspace yang beautiful, productive, dan personalized.
๐ Why CLICOOL?
| Problem | CLICOOL Solution |
|---|---|
| Terminal membosankan | 5+ themes siap pakai |
| Config ribet | One-command enable/disable |
| Takut rusak config | Auto-backup & rollback |
| Butuh info real-time | Widget system (git, k8s, docker) |
| Setup berulang | Profile system untuk sync |
โจ Features
Core Features
- ๐จ 5 Built-in Themes - Cyberpunk, Matrix, Retro, Minimal, DevOps
- ๐ง Layer System - Modular add-ons untuk git, k8s, docker, AWS
- ๐ก๏ธ Safety First - Automatic backups, marker-based injection, rollback
- ๐ Multi-Shell - Bash, Zsh, Fish support
- ๐ฅ๏ธ Cross-Platform - Linux, macOS, WSL2
- โก Blazing Fast - <50ms prompt render time
- ๐ Extensible - Plugin system ready
Advanced Features
- ๐ฌ Banner Animations - Typewriter, glitch, matrix effects
- ๐ Widget System - Real-time info: git, k8s, docker, aws, battery, weather
- ๐ค Profile System - Save & sync complete setups
- ๐ฏ Smart Detection - Auto-detect shell, terminal, fonts
- ๐จ True Color - 24-bit RGB color support
- ๐ Doctor Command - Comprehensive environment diagnostics
๐ Quick Start
Installation
# Install from PyPI (recommended)
pip install clicool
# Install from source
git clone https://github.com/trustlabs/clicool.git
cd clicool
pip install -e .
# Install with dev dependencies
pip install -e ".[dev]"
First Time Setup
# 1. Initialize clicool
clicool init
# 2. Check your environment
clicool doctor
# 3. List available themes
clicool list
# 4. Preview a theme
clicool preview cyberpunk
# 5. Enable theme
clicool enable cyberpunk
# 6. Restart terminal or reload shell
source ~/.bashrc # or ~/.zshrc
That's It! ๐
Your terminal is now transformed with a beautiful cyberpunk theme!
๐ Complete Command Reference
Theme Commands
| Command | Aliases | Description | Example |
|---|---|---|---|
clicool enable <theme> |
- | Enable a theme | clicool enable cyberpunk |
clicool enable --random |
-r |
Enable random theme | clicool enable -r |
clicool enable <theme> --preview |
-p |
Preview before apply | clicool enable matrix -p |
clicool enable <theme> --dry-run |
-n |
Show changes | clicool enable retro -n |
clicool enable <theme> --layer <layer> |
-l |
Add layer | clicool enable cyberpunk -l git-status |
clicool disable |
- | Disable current theme | clicool disable |
clicool disable --rollback |
-r |
Disable + rollback | clicool disable -r |
clicool list |
- | List themes | clicool list |
clicool list --installed |
-i |
List installed only | clicool list -i |
clicool list --layers |
-l |
List layers | clicool list -l |
clicool list --remote |
-r |
Browse remote | clicool list -r |
clicool preview <theme> |
- | Preview theme | clicool preview devops |
clicool search <query> |
- | Search themes | clicool search cyber |
Layer Commands
# Enable theme with multiple layers
clicool enable cyberpunk --layer git-status --layer k8s-context
# Add layer to existing setup (coming soon)
clicool layer add docker-info
# Remove layer (coming soon)
clicool layer remove aws-profile
# List active layers (coming soon)
clicool layer list
Safety & Diagnostics
| Command | Options | Description |
|---|---|---|
clicool doctor |
--verbose, --fix |
Check environment health |
clicool backup |
--list |
Create or list backups |
clicool restore |
--list, <backup_id> |
Restore from backup |
clicool diff |
- | Show config changes |
clicool status |
- | Show current theme status |
Profile Management
# Save current setup
clicool profile save my-dev-setup
# Load saved profile
clicool profile load my-dev-setup
# List profiles
clicool profile list
# Delete profile
clicool profile delete my-dev-setup
# Export profile (coming soon)
clicool profile export my-dev-setup.zip
# Import profile (coming soon)
clicool profile import my-dev-setup.zip
Advanced Commands
# Initialize clicool
clicool init
# Clear theme cache
clicool cache clear
# Validate theme JSON
clicool theme validate path/to/theme.json
# Create new theme scaffold (coming soon)
clicool theme new my-theme
# Plugin management (coming soon)
clicool plugin install <plugin>
clicool plugin list
๐จ Built-in Themes
Cyberpunk
Neon-soaked futuristic theme for night owls
โก dev@machine:~/projects/clicool (main) ฮป
- Colors: Cyan, Magenta, Yellow neon
- Best for: Night coding, cyberpunk aesthetic
- Font: JetBrainsMono Nerd Font
Matrix
Classic hacker green on black
๐พ neo@nebuchadnezzar:~/matrix (master) $
- Colors: Green on black
- Best for: Hacker aesthetic, minimal distractions
- Font: Any monospace
Retro
Amber CRT monitor vibes from the 80s
๐พ user@retro:~/projects (dev) >
- Colors: Amber on dark
- Best for: Vintage lovers, warm tones
- Font: VT323 or similar
Minimal
Clean and subtle - less is more
~/projects/clicool ยฑ
- Colors: Grayscale with blue accents
- Best for: Professional settings, minimal distractions
- Font: Any clean monospace
DevOps Pro
For SREs and Platform Engineers
๐ค dev ~/projects โธ๏ธ prod-cluster ๐ณ 5 ฮป
- Colors: Blue, green, purple
- Best for: DevOps, SRE, cloud engineers
- Widgets: Git, K8s, Docker, AWS
- Font: JetBrainsMono Nerd Font
๐ง Layer System
Layers are modular add-ons that enhance your prompt with real-time information.
Available Layers
| Layer | Description | Performance | Example Output |
|---|---|---|---|
git-status |
Git branch + status | ~50ms | (main) โ |
k8s-context |
Kubernetes context | ~100ms | โธ๏ธ prod/us-east |
docker-info |
Container count | ~80ms | ๐ณ 5 |
aws-profile |
AWS profile/region | ~10ms | โ๏ธ prod@us-east-1 |
Using Layers
# Single layer
clicool enable cyberpunk --layer git-status
# Multiple layers
clicool enable devops --layer git-status --layer k8s-context --layer docker-info
# Stack on existing theme
clicool enable minimal --layer git-status --layer aws-profile
๐ Widget System
Widgets display real-time information in your prompt.
Built-in Widgets
| Widget | Description | Update | Example |
|---|---|---|---|
git |
Branch + status | Real-time | (main) โ |
time |
Current time | Real-time | 14:30:25 |
exit-code |
Last command status | Real-time | โ 1 |
k8s-context |
Kubernetes context | Per-command | โธ๏ธ prod |
docker-status |
Container count | Per-command | ๐ณ 5 |
aws-profile |
AWS profile | Per-command | โ๏ธ prod |
venv |
Python virtualenv | Real-time | ๐ venv |
node-version |
Node.js version | Per-command | โฌข v18.0.0 |
Widget Configuration
Configure widgets in ~/.clicool/config.json:
{
"widgets": [
{
"name": "git",
"enabled": true,
"config": {
"show_ahead_behind": true,
"show_stash": true
}
},
{
"name": "time",
"enabled": true,
"config": {
"format": "24h",
"show_seconds": true
}
}
]
}
๐ก๏ธ Safety Features
How We Protect Your Config
-
Marker-based Injection
# >>> CLICOOL START: cyberpunk >>> # Generated config here # <<< CLICOOL END: cyberpunk <<<
Only modifies content between markers, never touches your custom config.
-
Automatic Backups
~/.clicool/backups/ โโโ bashrc_20260303_143022.bak โโโ zshrc_20260303_143022.bak โโโ metadata.json -
Dry-run Mode
clicool enable cyberpunk --dry-run # Shows what would change without modifying anything
-
Rollback Support
clicool disable --rollback # Restores previous backup automatically
-
Checksum Validation Every backup is verified with SHA256 checksums.
โ๏ธ Configuration
Config File Location
~/.clicool/config.json
Full Configuration Example
{
"active_theme": "cyberpunk",
"active_layers": ["git-status", "k8s-context"],
"active_widgets": ["git", "time", "exit-code"],
"auto_backup": true,
"enable_animations": true,
"animation_style": "typewriter",
"dry_run": false,
"verbose": false,
"check_updates": true,
"max_backups": 10,
"marketplace_url": "https://clicool.dev/api/themes",
"custom_variables": {
"MY_VAR": "custom_value"
}
}
Configuration Options
| Option | Type | Default | Description |
|---|---|---|---|
active_theme |
string | null |
Currently active theme |
active_layers |
array | [] |
Active layer names |
auto_backup |
boolean | true |
Auto backup before changes |
enable_animations |
boolean | true |
Enable banner animations |
animation_style |
string | "typewriter" |
Animation style |
dry_run |
boolean | false |
Global dry-run mode |
verbose |
boolean | false |
Verbose output |
max_backups |
integer | 10 |
Max backups to keep |
๐๏ธ Architecture
High-Level Overview
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ User Command โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ CLI Engine (Typer) โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโดโโโโโโโโโโโโโโโโโโ
โ โ
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ Shell Detector โ โ Terminal Probe โ
โ (bash/zsh/fish) โ โ (colors/fonts) โ
โโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Theme Engine โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Theme Loader โ โ Layer System โ โ Widget Mgr โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ Safety Layer โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โ โ Backup Mgr โ โ Diff Check โ โ Rollback โ โ
โ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโโโ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
Project Structure
clicool/
โ
โโโ clicool/ # Main package
โ โโโ __init__.py # Package info & constants
โ โโโ __main__.py # Entry point
โ โโโ cli.py # CLI commands (457 lines)
โ โโโ config.py # Configuration management
โ โ
โ โโโ core/ # Core functionality
โ โ โโโ shell.py # Shell detection
โ โ โโโ terminal.py # Terminal emulator detection
โ โ โโโ theme_loader.py # Theme JSON parser
โ โ โโโ injector.py # Config injection engine
โ โ โโโ generator.py # PS1 prompt generator
โ โ โโโ validator.py # Schema validation
โ โ
โ โโโ safety/ # Safety features
โ โ โโโ backup.py # Backup manager
โ โ โโโ rollback.py # Rollback engine
โ โ โโโ diff.py # Config diff viewer
โ โ
โ โโโ features/ # User features
โ โ โโโ doctor.py # Environment diagnostics
โ โ โโโ preview.py # Theme preview renderer
โ โ โโโ layers.py # Layer system
โ โ โโโ widgets.py # Terminal widgets
โ โ โโโ animations.py # Banner animations
โ โ
โ โโโ utils/ # Utilities
โ โ โโโ colors.py # Color utilities
โ โ โโโ fonts.py # Font detection
โ โ โโโ templates.py # Template engine
โ โ โโโ logging.py # Structured logging
โ โ
โ โโโ plugins/ # Plugin system (WIP)
โ โโโ profiles/ # Profile management (WIP)
โ
โโโ themes/
โ โโโ builtin/ # Built-in themes
โ โ โโโ cyberpunk.json
โ โ โโโ matrix.json
โ โ โโโ retro.json
โ โ โโโ minimal.json
โ โ โโโ devops.json
โ โโโ layers/ # Layer themes
โ โ โโโ git-status.json
โ โ โโโ k8s-context.json
โ โ โโโ docker-info.json
โ โ โโโ aws-profile.json
โ โโโ community/ # Downloaded themes
โ
โโโ templates/
โ โโโ bash/prompt.sh.j2
โ โโโ zsh/prompt.sh.j2
โ โโโ fish/prompt.sh.j2
โ
โโโ tests/
โ โโโ unit/ # Unit tests
โ โโโ integration/ # Integration tests
โ โโโ fixtures/ # Test fixtures
โ
โโโ docs/ # Documentation
โโโ scripts/ # Build scripts
โ
โโโ pyproject.toml # Project config
โโโ README.md # This file
โโโ CHANGELOG.md # Version history
โโโ CONTRIBUTING.md # Contribution guide
โโโ LICENSE # MIT License
๐ง Development
Prerequisites
- Python 3.11 or higher
- pip
- git
Setup Development Environment
# Clone repository
git clone https://github.com/trustlabs/clicool.git
cd clicool
# Create virtual environment
python3 -m venv venv
source venv/bin/activate # Linux/macOS
# Install with dev dependencies
pip install -e ".[dev]"
# Verify installation
clicool --version
Running Tests
# Run all tests
pytest
# Run with coverage
pytest --cov=clicool --cov-report=html
# Run specific test file
pytest tests/unit/test_theme_loader.py -v
# Run integration tests
pytest tests/integration/ -v
Code Quality
# Check code style
ruff check clicool
# Format code
black clicool
# Type checking
mypy clicool
# Run all checks
ruff check clicool && black --check clicool && mypy clicool
Building Package
# Install build tools
pip install build
# Build source and wheel
python -m build
# Install locally
pip install -e .
# Test installation
clicool doctor
Creating Themes
# Validate theme
clicool theme validate my-theme.json
# Create new theme scaffold (coming soon)
clicool theme new my-theme
Theme JSON Schema
Themes follow JSON Schema v2:
{
"$schema": "https://clicool.dev/schemas/theme-v2.json",
"name": "My Theme",
"version": "1.0.0",
"prompt": {
"format": "neon",
"template": "{user}@{host}:{path} ฮป",
"colors": { "user": "#00ffff" }
},
"features": { "show_git": true },
"widgets": ["git", "time"]
}
๐ค Contributing
We welcome contributions! Here's how you can help:
Ways to Contribute
- ๐จ Create Themes - Design new beautiful themes
- ๐ง Build Layers - Add new widget layers
- ๐ Fix Bugs - Squash bugs in the codebase
- โจ Add Features - Implement new features
- ๐ Improve Docs - Enhance documentation
- ๐งช Write Tests - Increase test coverage
Getting Started
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Make your changes
- Run tests (
pytest) - Format code (
black .) - Commit (
git commit -m 'Add amazing feature') - Push (
git push origin feature/amazing-feature) - Open a Pull Request
Development Guidelines
- Follow PEP 8 style guide
- Write tests for new features
- Update documentation
- Add entry to CHANGELOG.md
- Use conventional commits
See CONTRIBUTING.md for detailed guidelines.
๐ Performance
Benchmarks
| Metric | Target | Actual |
|---|---|---|
| Theme enable time | < 500ms | ~200ms |
| Prompt render time | < 50ms | ~25ms |
| Backup creation | < 200ms | ~100ms |
| Doctor check | < 1s | ~500ms |
| Memory usage | < 50MB | ~30MB |
| Install size | < 5MB | ~2MB |
Tested on: Ubuntu 24.04, Python 3.12, Intel i7
๐ Changelog
[0.1.0] - 2026-03-03
Added
- Initial release with core functionality
- 5 built-in themes (Cyberpunk, Matrix, Retro, Minimal, DevOps)
- 4 layer themes (Git Status, K8s Context, Docker Info, AWS Profile)
- Shell support: Bash, Zsh, Fish
- Safety features: Auto-backup, rollback, dry-run
- Doctor command for diagnostics
- Widget system
- Banner animations
- Profile management (basic)
- 42 unit tests + 15 integration tests
See CHANGELOG.md for full version history.
๐ Acknowledgments
CLICOOL is inspired by and builds upon the great work of:
- Starship - Cross-shell prompt
- Oh My Zsh - Zsh framework
- Powerlevel10k - Zsh theme
- Typer - CLI framework
- Rich - Terminal formatting
๐ License
Distributed under the MIT License. See LICENSE for details.
MIT License
Copyright (c) 2026 Trustlabs
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software...
๐ Links
- GitHub: github.com/trustlabs/clicool
- PyPI: pypi.org/project/clicool
- Documentation: github.com/trustlabs/clicool#readme
- Issues: github.com/trustlabs/clicool/issues
- Discussions: github.com/trustlabs/clicool/discussions
๐ฌ Contact
- Twitter: @trustlabs
- Discord: Join our server
- Email: hello@clicool.dev
Ready to transform your terminal?
pip install clicool && clicool init && clicool enable cyberpunk
Made with โก by Trustlabs
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clicool-0.1.7.tar.gz.
File metadata
- Download URL: clicool-0.1.7.tar.gz
- Upload date:
- Size: 41.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f1a633e12400b652a67faa720b29755cb205f6581b7ddc90c1c0784dfd5f8a90
|
|
| MD5 |
02f5ad6c0671eb12f3fb9515e3705d50
|
|
| BLAKE2b-256 |
b74e7dac07073fe1e3579812d54b6b70b6e0ef7ef671a07e9ef2f57781a05e99
|
Provenance
The following attestation bundles were made for clicool-0.1.7.tar.gz:
Publisher:
publish.yml on FaturRachmann/clicool
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clicool-0.1.7.tar.gz -
Subject digest:
f1a633e12400b652a67faa720b29755cb205f6581b7ddc90c1c0784dfd5f8a90 - Sigstore transparency entry: 1016940994
- Sigstore integration time:
-
Permalink:
FaturRachmann/clicool@fee2a80775e8ec3080016c2f88f7fd5e19e5ddf8 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/FaturRachmann
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fee2a80775e8ec3080016c2f88f7fd5e19e5ddf8 -
Trigger Event:
push
-
Statement type:
File details
Details for the file clicool-0.1.7-py3-none-any.whl.
File metadata
- Download URL: clicool-0.1.7-py3-none-any.whl
- Upload date:
- Size: 57.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
442a7bf70f18eb0e0af1f6558c284c5e0d7aac2fc7b96627ea014df6c1d437b3
|
|
| MD5 |
e2b99c4bd756281ae5e1a8aa2c3026bf
|
|
| BLAKE2b-256 |
469536d3abade3ff9910ecf11e9ef911a283f84676b3a1d39565ea37b41fa65d
|
Provenance
The following attestation bundles were made for clicool-0.1.7-py3-none-any.whl:
Publisher:
publish.yml on FaturRachmann/clicool
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clicool-0.1.7-py3-none-any.whl -
Subject digest:
442a7bf70f18eb0e0af1f6558c284c5e0d7aac2fc7b96627ea014df6c1d437b3 - Sigstore transparency entry: 1016941032
- Sigstore integration time:
-
Permalink:
FaturRachmann/clicool@fee2a80775e8ec3080016c2f88f7fd5e19e5ddf8 -
Branch / Tag:
refs/tags/v0.1.7 - Owner: https://github.com/FaturRachmann
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@fee2a80775e8ec3080016c2f88f7fd5e19e5ddf8 -
Trigger Event:
push
-
Statement type: