A powerful, modern CLI tool for managing shell configuration and development environment customization. Built with beautiful TUIs using Charm libraries.
- π¨ Interactive Menu: Default TUI experience for easy navigation
- β¨ Bling: Toggle modern shell enhancements (eza, bat, ugrep, zoxide, atuin, starship)
- π° MOTD: Beautiful Message of the Day with system info and random tips
- π¦ Bundle Installer: Install curated tool bundles (ai, cli, fonts, k8s) from Universal Blue
- οΏ½οΈ Wallpapers: Install desktop wallpaper collections from ublue-os/tap
- π¨ Starship Themes: Browse and apply Starship prompt themes
- βοΈ OS Scripts: Run system-provided just recipes and scripts
- π Status Command: View configuration and installed tools at a glance
brew tap ublue-os/homebrew-experimental-tap
brew install bluefin-cliPrerequisites:
- Go 1.21 or later
- Homebrew (for package management features)
git clone https://github.com/hanthor/bluefin-cli.git
cd bluefin-cli
go build -o bluefin-cli
sudo mv bluefin-cli /usr/local/bin/go install github.com/hanthor/bluefin-cli@latestSimply run the command to launch the interactive menu:
bluefin-cliOr explicitly:
bluefin-cli menuView your current configuration and installed tools:
bluefin-cli statusEnable/disable bling for your shell:
# Interactive mode
bluefin-cli bling
# Enable for specific shell
bluefin-cli bling bash on
bluefin-cli bling zsh on
bluefin-cli bling fish on
# Disable bling
bluefin-cli bling bash offShow the MOTD:
bluefin-cli motd showToggle MOTD for shells:
# Enable for all shells
bluefin-cli motd toggle all on
# Enable for specific shell
bluefin-cli motd toggle zsh on
# Disable MOTD
bluefin-cli motd toggle all offInstall curated Homebrew bundles:
# List available bundles
bluefin-cli install list
# Install specific bundle
bluefin-cli install ai # AI tools
bluefin-cli install cli # CLI essentials
bluefin-cli install fonts # Development fonts
bluefin-cli install k8s # Kubernetes tools
# Interactive mode
bluefin-cli installInstall desktop wallpaper collections:
# Interactive selection
bluefin-cli install wallpapers
you can change your prompy lookks Browse and apply Starship preset themes:
bluefin-cli starship themeInstall Starship if not already present:
bluefin-cli starship installRun OS-provided just recipes and shell scripts:
bluefin-cli osscriptsThis discovers and lists all available recipes from /usr/share/*/just/ directories.
The bling command configures these modern CLI tools:
- eza: Modern replacement for
lswith icons and colors - bat:
catclone with syntax highlighting - zoxide: Smarter
cdcommand that learns your habits - atuin: Magical shell history with sync and search (optional)
- starship: Fast, customizable prompt for any shell
- ugrep: Ultra-fast grep alternative (optional)
When bling is enabled in your shell:
ll # eza -l --icons=auto --group-directories-first
ls # eza
cat # bat --style=plain --pager=never
grep # ugrep (if installed)bluefin-cli/
βββ main.go # Application entry point
βββ cmd/ # Cobra commands
β βββ root.go # Root command & menu default
β βββ menu.go # Interactive TUI menu
β βββ bling.go # Bling command
β βββ motd.go # MOTD command
β βββ install.go # Install bundles/wallpapers
β βββ osscripts.go # OS scripts discovery
β βββ starship.go # Starship theme management
β βββ status.go # Status display
βββ internal/ # Internal packages
β βββ bling/ # Bling logic & embedded scripts
β βββ motd/ # MOTD generation
β βββ install/ # Bundle & wallpaper installation
β βββ starship/ # Starship integration
β βββ status/ # Status checking
βββ test/ # Integration tests
This project consolidates and modernizes functionality from:
- ublue-bling: Shell aliases and tool initialization scripts
- bluefin-cli (cask): Homebrew package management and MOTD
- ujust recipes: Task runner and development environment helpers
- Go 1.21+
- Podman (for containerized testing)
- just (for running recipes)
just build# Run tests in container
just test
# Run tests locally
go test ./...Launch shells with bling pre-configured:
just bash # Test in bash
just zsh # Test in zsh
just fish # Test in fishThis project uses:
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add some amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
- Universal Blue - For the original bluefin-cli and ublue-bling
- Charm - For the amazing TUI libraries
- The Homebrew community
- ublue-os/packages - Original package implementations
- Starship - Cross-shell prompt
- Homebrew - Package manager for macOS and Linux