bluefin-cli

command module
v0.7.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jul 23, 2026 License: Apache-2.0 Imports: 4 Imported by: 0

README ΒΆ

Bluefin CLI

License

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
  • πŸ“Š Status Command: View configuration and installed tools at a glance
  • 🩺 Doctor: bluefin-cli doctor diagnoses setup problems with fix hints
  • 🎨 Theme Flavors: bluefin-cli theme <flavor> pins a Catppuccin flavor (latte, frappe, macchiato, mocha) or follows your terminal with auto
  • ⬆ Self-Update: bluefin-cli update for script installs β€” sha256-verified against the release checksums; package-manager installs are pointed at the right upgrade command
  • πŸ¦• A fully native TUI: persistent shell with breadcrumbs, fuzzy filtering (/), a ctrl+p command palette, and a dot-matrix dino running the header β€” plus a hidden surprise for those who find it

πŸš€ Installation

One-liner (Linux / macOS)
curl -fsSL https://raw.githubusercontent.com/tuna-os/bluefin-cli/main/install.sh | sh
One-liner (Windows PowerShell)
irm https://raw.githubusercontent.com/tuna-os/bluefin-cli/main/install.ps1 | iex

Then enable shell integration:

bluefin-cli shell powershell on
Homebrew (Linux / macOS)
brew tap ublue-os/homebrew-experimental-tap
brew install bluefin-cli
Winget (Windows)
winget install --id Hanthor.BluefinCLI --exact
Scoop (Windows)
scoop bucket add tuna-os https://github.com/tuna-os/scoop-bucket
scoop install bluefin-cli
deb / rpm (Debian, Ubuntu, Fedora, openSUSE…)

Every release ships native packages β€” grab the one for your distro from the latest release:

# Debian/Ubuntu
sudo dpkg -i bluefin-cli_<version>_linux_amd64.deb
# Fedora & friends
sudo rpm -i bluefin-cli_<version>_linux_amd64.rpm
AUR (Arch)
yay -S bluefin-cli-bin
Go Install
go install github.com/tuna-os/bluefin-cli@latest
Build from Source (Any OS)

Prerequisites:

  • Go 1.25 or later
git clone https://github.com/tuna-os/bluefin-cli.git
cd bluefin-cli
go build -o bluefin-cli .

On Windows, use go build -o bluefin-cli.exe ..

Maintainers: package publishing (Homebrew tap, Winget, Scoop) is automated by GoReleaser on release; .github/workflows/winget.yml is a manual fallback for re-submitting a Winget version.

πŸ“– 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
Diagnose Problems
bluefin-cli doctor
Update
bluefin-cli update          # self-update (script installs)
bluefin-cli update --check  # just check

✨ Shell Experience

Bluefin CLI includes a "Shell Experience" module (formerly "bling") that configures your shell with modern tools and aliases.

To enable the shell experience:

bluefin-cli shell bash on
# or

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli shell zsh on
# or

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli shell fish on

Or use the interactive menu: bluefin-cli menu -> "Shell Experience".

Features:

  • eza: Modern replacement for ls
  • bat: Syntax highlighting for cat
  • ugrep: Faster grep
  • zoxide: Smarter cd
  • atuin: Shell history sync
  • starship: Cross-shell prompt
  • uutils: Rust rewrite of coreutilsl
MOTD - Message of the Day

Show the MOTD:

bluefin-cli motd show

Toggle MOTD for shells:

# Enable for all shells

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli motd toggle all on

# Enable for specific shell

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli motd toggle zsh on

# Disable MOTD

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli motd toggle all off
Install Tool Bundles

Install curated Homebrew bundles:

# List available bundles

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install list

# Install specific bundle

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
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

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install
Install Wallpapers

Install desktop wallpaper collections:

# Interactive selection

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install wallpapers

# Install specific wallpaper casks

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install wallpapers bluefin-wallpapers aurora-wallpapers bazzite-wallpapers

# Non-interactive test run: apply theme + enable all automation

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install wallpapers bluefin-wallpapers --yes

# Non-interactive with explicit controls

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install wallpapers bluefin-wallpapers --non-interactive --apply-theme --theme Bluefin --enable-mode-sync --enable-auto-dark-light --trigger-source polling

# Use startup-only mode sync (no minute polling task)

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install wallpapers bluefin-wallpapers --non-interactive --enable-mode-sync --trigger-source startup

# Auto Dark Mode integration mode (startup sync + external mode-change utility)

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install wallpapers bluefin-wallpapers --non-interactive --enable-mode-sync --trigger-source autodarkmode

# Cleanup Windows sync artifacts/state/tasks generated by wallpaper integration

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install wallpapers cleanup

# Full reset for testing: cleanup + uninstall known wallpaper casks + local wallpaper folders

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
bluefin-cli install wallpapers cleanup --all

Non-interactive wallpaper flags:

  • --non-interactive: Skip prompts and use provided flags.
  • --yes: Shortcut for --non-interactive --apply-theme --enable-mode-sync --enable-auto-dark-light.
  • --apply-theme: Apply a Windows theme after registration (WSL only).
  • --theme <name>: Theme to apply in non-interactive mode (Bluefin, Aurora, Bazzite).
  • --enable-mode-sync: Enable day/night wallpaper sync task.
  • --enable-auto-dark-light: Enable 6 AM/6 PM light/dark switching tasks (requires --enable-mode-sync).
  • --trigger-source <source>: Mode-sync trigger source (polling, startup, autodarkmode).

autodarkmode notes:

  • Bluefin CLI ensures %LOCALAPPDATA%\\BluefinCLI\\set-light-mode.ps1 and %LOCALAPPDATA%\\BluefinCLI\\set-dark-mode.ps1 exist.
  • In Auto Dark Mode, point light/dark custom script hooks to those two scripts.
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

πŸ”§ 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)

πŸ“š Documentation

πŸ—οΈ 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
β”‚   β”œβ”€β”€ 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

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
just test

# Run tests locally

[![License](https://img.shields.io/badge/license-Apache%202.0-blue.svg)](LICENSE)
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

Part of the TunaOS ecosystem. Docs Β· Contributing

Documentation ΒΆ

The Go Gopher

There is no documentation for this package.

Directories ΒΆ

Path Synopsis
internal
countme
Package countme implements the Fedora countme protocol for bluefin-cli.
Package countme implements the Fedora countme protocol for bluefin-cli.
env
tui
tui/app
Package app is the persistent TUI shell: one bubbletea program hosting a stack of screens with a shared header (breadcrumb + dino), a contextual footer, adaptive theming, toasts, and a help overlay.
Package app is the persistent TUI shell: one bubbletea program hosting a stack of screens with a shared header (breadcrumb + dino), a contextual footer, adaptive theming, toasts, and a help overlay.
tui/theme
Package theme defines the semantic color tokens for the application.
Package theme defines the semantic color tokens for the application.
update
Package update implements self-updating for script-installed binaries.
Package update implements self-updating for script-installed binaries.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL