Skip to content

hanthor/bluefin-cli

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

7 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Bluefin CLI

A powerful, modern CLI tool for managing shell configuration and development environment customization. Built with beautiful TUIs using Charm libraries.

✨ Features

  • 🎨 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

πŸš€ Installation

NOT WORKING YET Via Homebrew

brew tap ublue-os/homebrew-experimental-tap
brew install bluefin-cli

Build from Source

Prerequisites:

  • 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/

Using Go Install

go install github.com/hanthor/bluefin-cli@latest

πŸ“– Usage

Interactive Menu (Default)

Simply run the command to launch the interactive menu:

bluefin-cli

Or explicitly:

bluefin-cli menu

Command Line Usage

Check Status

View your current configuration and installed tools:

bluefin-cli status

Bling - Modern Shell Enhancements

Enable/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 off

MOTD - Message of the Day

Show the MOTD:

bluefin-cli motd show

Toggle 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 off

Install Tool Bundles

Install 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 install

Install Wallpapers

Install desktop wallpaper collections:

# Interactive selection
bluefin-cli install wallpapers

Starship Themes

you can change your prompy lookks Browse and apply Starship preset themes:

bluefin-cli starship theme

Install Starship if not already present:

bluefin-cli starship install

OS Scripts

Run OS-provided just recipes and shell scripts:

bluefin-cli osscripts

This discovers and lists all available recipes from /usr/share/*/just/ directories.

πŸ”§ What Gets Configured

Bling Tools

The bling command configures these modern CLI tools:

  • eza: Modern replacement for ls with icons and colors
  • bat: cat clone with syntax highlighting
  • zoxide: Smarter cd command 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)

Shell Aliases

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)

πŸ—οΈ Project Structure

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

πŸ“š Inspiration

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

πŸ› οΈ Development

Prerequisites

  • Go 1.21+
  • Podman (for containerized testing)
  • just (for running recipes)

Building

just build

Testing

# Run tests in container
just test

# Run tests locally
go test ./...

Interactive Development

Launch shells with bling pre-configured:

just bash   # Test in bash
just zsh    # Test in zsh
just fish   # Test in fish

Dependencies

This project uses:

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“„ License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Universal Blue - For the original bluefin-cli and ublue-bling
  • Charm - For the amazing TUI libraries
  • The Homebrew community

πŸ”— Related Projects

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published