BluefinCLI Hanthor
winget install --id=Hanthor.BluefinCLI -e Modern CLI for managing shell config and dev environment customization on Universal Blue.
winget install --id=Hanthor.BluefinCLI -e Modern CLI for managing shell config and dev environment customization on Universal Blue.
A powerful, modern CLI tool for managing shell configuration and development environment customization. Built with beautiful TUIs using Charm libraries.
bluefin-cli doctor diagnoses setup problems with fix hintsbluefin-cli theme pins a Catppuccin flavor (latte, frappe, macchiato, mocha) or follows your terminal with autobluefin-cli update for script installs β sha256-verified against the release checksums; package-manager installs are pointed at the right upgrade commandbrew/cask lines plus winget/scoop/choco on Windows. bluefin-cli brewfile dump captures what's installed, add/remove edit it, install applies everything; the TUI's Install Apps β My Brewfile does all of it interactively with per-package management. Extra recipes in ~/.config/bluefin-cli/bundles/*.Brewfile appear alongside the curated bundlesbluefin-cli profile export > setup.json on one machine, profile import setup.json on another β shells, tools, and theme replayed exactly/), a ctrl+p command palette, and a dot-matrix dino running the header β plus a hidden surprise for those who find it> Status (2026-08-14): releases ship prebuilt binary assets (v0.10.6+ > publishes tarballs for Linux/macOS/Windows + native deb/rpm packages), so > the one-liner scripts below work. The package-manager paths that are still > pending are marked individually below.
curl -fsSL https://raw.githubusercontent.com/tuna-os/bluefin-cli/main/install.sh | sh
> Status (2026-08-14): the script downloads the binary from GitHub release > assets, which are published since v0.10.6 (#141, closed).
irm https://raw.githubusercontent.com/tuna-os/bluefin-cli/main/install.ps1 | iex
Then enable shell integration:
bluefin-cli shell powershell on
> Status (2026-08-14): same as the Linux/macOS one-liner β the script > downloads from GitHub release assets, which are published since v0.10.6 > (#141, closed).
The formula is published automatically by GoReleaser to the
tuna-os/homebrew-tap tap on every
release (#15):
brew tap tuna-os/tap
brew install bluefin-cli
> Status (2026-08-14): the bluefin-cli formula has not been published by
> the release pipeline yet β only corral-vm.rb ships in the tuna-os tap
> (see #141). Until it
> appears, use ublue-os/homebrew-experimental-tap below.
It is also available from ublue-os/homebrew-experimental-tap, synced from the
source-build formula in contrib/homebrew/bluefin-cli.rb:
brew tap ublue-os/homebrew-experimental-tap
brew install bluefin-cli
winget install --id Hanthor.BluefinCLI --exact
> Status (2026-08-14): Hanthor.BluefinCLI v0.8.1 is published in the
> winget repository (microsoft/winget-pkgs#407090, merged 08-14) but predates
> the current v0.10.6 release line β installable, though not yet current
> (#141, closed β release
> publishing works; a newer manifest submission is pending).
choco install bluefin-cli
> Status (2026-08-14): no bluefin-cli package has been published to the
> Chocolatey community repository yet β not available
> (#141, closed β release
> publishing now works, the Choco manifest is still pending).
scoop bucket add tuna-os https://github.com/tuna-os/scoop-bucket
scoop install bluefin-cli
> Status (2026-08-14): tuna-os/scoop-bucket has no manifests yet β the
> manifest is published by the release pipeline and is currently pending
> (#141, closed β release
> publishing now works, the Scoop manifest is still pending).
Releases ship native packages (nfpm) since v0.10.6 β grab the one for your
> distro from the latest release:
# Debian/Ubuntu
sudo dpkg -i bluefin-cli__linux_amd64.deb
# Fedora & friends
sudo rpm -i bluefin-cli__linux_amd64.rpm
yay -S bluefin-cli-bin
> Status (2026-08-14): no bluefin-cli-bin package exists in the AUR yet β
> not available (#141, closed).
go install github.com/tuna-os/bluefin-cli@latest
Prerequisites:
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.
Scoop publishing requires the SCOOP_BUCKET_TOKEN repository secret (a fine-grained PAT with write access to tuna-os/scoop-bucket), without which the Scoop manifest upload step is safely skipped during release workflows. See docs/release-publishing.md for details.
Homebrew tap publishing requires the HOMEBREW_TAP_TOKEN repository secret (a fine-grained PAT with write access to tuna-os/homebrew-tap), without which the formula upload step is safely skipped during release workflows. See docs/release-publishing.md for details.
Homebrew release process: on every tagged release GoReleaser publishes the
binary formula to tuna-os/homebrew-tap (requires the HOMEBREW_TAP_TOKEN
secret). External taps that build from source, such as
ublue-os/homebrew-experimental-tap, must be synced manually β bump url and
sha256 in contrib/homebrew/bluefin-cli.rb
and open a PR in that tap.
Simply run the command to launch the interactive menu:
bluefin-cli
Or explicitly:
bluefin-cli menu
View your current configuration and installed tools:
bluefin-cli status
bluefin-cli doctor
bluefin-cli update # self-update (script installs)
bluefin-cli update --check # just check
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
bluefin-cli shell zsh on
# or
bluefin-cli shell fish on
Or use the interactive menu: bluefin-cli menu -> "Shell Experience".
Features:
lscatcdShow 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 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 desktop wallpaper collections:
# Interactive selection
bluefin-cli install wallpapers
# Install specific wallpaper casks
bluefin-cli install wallpapers bluefin-wallpapers aurora-wallpapers bazzite-wallpapers
# Non-interactive test run: apply theme + enable all automation
bluefin-cli install wallpapers bluefin-wallpapers --yes
# Non-interactive with explicit controls
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)
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)
bluefin-cli install wallpapers bluefin-wallpapers --non-interactive --enable-mode-sync --trigger-source autodarkmode
# Cleanup Windows sync artifacts/state/tasks generated by wallpaper integration
bluefin-cli install wallpapers cleanup
# Full reset for testing: cleanup + uninstall known wallpaper casks + local wallpaper folders
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 : 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 : Mode-sync trigger source (polling, startup, autodarkmode).autodarkmode notes:
%LOCALAPPDATA%\\BluefinCLI\\set-light-mode.ps1 and %LOCALAPPDATA%\\BluefinCLI\\set-dark-mode.ps1 exist.You can change the appearance of your prompt. Browse and apply Starship preset themes:
bluefin-cli starship theme
Install Starship if not already present:
bluefin-cli starship install
The bling command configures these modern CLI tools:
ls with icons and colorscat clone with syntax highlightingcd command that learns your habitsWhen 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)
Maintainers can find package-channel credentials and release verification in Release publishing. The Winget workflow is the manual fallback for re-submitting the Windows package; GoReleaser handles the normal release path.
bluefin-cli/
βββ main.go # Application entry point
βββ cmd/ # Cobra commands and TUI destinations
βββ internal/
β βββ install/ # Packages, bundles, and wallpaper installation
β β βββ resources/ # Embedded Brewfiles and wallpaper metadata
β βββ shell/ # Shell-experience configuration
β βββ tui/app/ # Persistent Bubble Tea screen stack
β βββ update/ # Checksum-verified self-update
βββ docs/commands/ # Generated command reference
βββ scripts/ # Smoke and state validation scripts
βββ test/ # Integration tests
βββ justfile # Development task recipes
This project consolidates and modernizes functionality from:
just build
just build creates both variants:
bluefin-cli: the standard CLIbluefin-cli-plus: the standard CLI plus features selected by the extra
build tag, including wallpapers, fonts, and sunset automation# Run the integration suite in a container
just test
# Run the complete Go test suite locally
go test ./...
# Run the same race-enabled suite used by CI
go test -tags extra -race ./...
Launch shells with bling pre-configured:
just bash # Test in bash
just zsh # Test in zsh
just fish # Test in fish
This project uses:
Contributions are welcome! Please feel free to submit a Pull Request.
git checkout -b feature/amazing-feature)git commit -m 'Add some amazing feature')git push origin feature/amazing-feature)This project is licensed under the Apache License 2.0 - see the LICENSE file for details.
Part of the TunaOS ecosystem. Docs Β· Contributing