generated from vsoch/docsy-jekyll
-
-
Notifications
You must be signed in to change notification settings - Fork 63
blog: announce bluefin-cli for Mac and Windows (WSL) #666
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
castrojo
merged 2 commits into
projectbluefin:main
from
castrojo:blog/bluefin-cli-mac-wsl
Mar 13, 2026
Merged
Changes from all commits
Commits
Show all changes
2 commits
Select commit
Hold shift + click to select a range
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,81 @@ | ||
| --- | ||
| slug: bluefin-cli-mac-wsl | ||
| title: "Bluefin CLI for Mac and Windows" | ||
| authors: [castrojo] | ||
| tags: [announcements, homebrew] | ||
| --- | ||
|
|
||
| We like to say "The command line is our passion. Therefore we invest in the command line experience, knowing that most people will never see it." Sounds grandiose! | ||
|
|
||
| Bluefin CLI is one of my favorite Bluefin features. I get to host meetings with [CNCF Ambassadors](https://www.cncf.io/people/ambassadors) and they have the coolest prompt setups, etc. But also you start to find cool little tools that just freshen up the Linux command line experience. And of course they're all written in rust, duh. We've been building `bluefin-cli` — the opt-in terminal experience that ships with Bluefin — into something that runs anywhere. Today it's available as an early alpha on macOS, any Linux distribution, and Windows via WSL or PowerShell. This work is brought to you by @hanthor! | ||
|
|
||
| ## What is `bluefin-cli`? | ||
|
|
||
| On Bluefin, `ujust bluefin-cli` turns on a curated set of modern command line tools: `eza`, `bat`, `zoxide`, `atuin`, `starship`, `ripgrep`, `fd`, `ugrep`, `tealdeer`, and more. The philosophy is simple — a greenfield terminal experience using the best tools available today, with the ability to toggle it off and return to your known-good kit at any time. That toggle is important because this is an opinionated setup you should be able to turn it off. It's also designed to not be too crazy, we want subtle bling here. And anyway it's a template for you to build off if you want to go customize everything. And we use this system to pull in Flatpaks like Podman Desktop, which is an awesome GUI way to manage your containers. This could all be adapted to bring the same developer experience to other operating systems. "Bluefin the Application" I guess. | ||
|
|
||
| Some of Bluefin's best parts are common aliases. I want `ujust update` and `ujust bios` in Ubuntu and Windows. PRs to make it nice and slick would be appreciated. | ||
|
|
||
|  | ||
|
|
||
| And our community curated `ujust bbrew` app lists are great, I love it when someone finds a new CLI tool in an exciting space, especially in AI. I learned about `llmfit`, a nice tool that figures out the optimal local model for your hardware. Knowing that we're all curating awesomeness is a really fun part of this! | ||
|
|
||
|  | ||
|
|
||
| ## Why? | ||
|
|
||
| I've always argued that the Linux development experience competes best when you do container development. This is the technology that forced Microsoft and Apple to adopt cloud native in the first place. MacOS even has it's [own container tool](https://github.com/apple/container), an analogue to podman. Each OS ships something, and Docker and podman run on all of them. We have a diverse set of implementations, but one common standard. I betcha distrobox would work on that Mac thing if it doesn't already. | ||
|
|
||
| There's just something about _doing_ it on Linux, on the platform it was designed for, that leads to that extra bit of user experience. And the one thing I wish more Linux nerds would understand, we live in a cross platform world. Changing platforms is tough enough, let's at least give the developers a comfortable place to land! An operating system agnostic development environment is a competitive advantage when we have home court advantage. | ||
|
|
||
| ## Expectations | ||
|
|
||
| This is an alpha. What we want is for you to be able to have the Bluefin experience on the Mac and Windows, wallpapers and everything. James is almost there, we just need people to give the thing a once over, see what needs to happen. Ideally we want one click happyness for both systems eventually. | ||
|
|
||
| ## Installation | ||
|
|
||
| You need Homebrew installed on the system: | ||
|
|
||
| ```bash | ||
| brew install ublue-os/tap/bluefin-cli | ||
| ``` | ||
|
|
||
| On Windows with PowerShell, enable shell integration after installing: | ||
|
|
||
| ```powershell | ||
| bluefin-cli shell powershell on | ||
| ``` | ||
|
|
||
| On bash, zsh, or fish: | ||
|
|
||
| ```bash | ||
| bluefin-cli shell bash on | ||
| # or | ||
| bluefin-cli shell zsh on | ||
| # or | ||
| bluefin-cli shell fish on | ||
| ``` | ||
|
|
||
| ## What you get | ||
|
|
||
| Once enabled, `bluefin-cli` brings the bling: | ||
|
|
||
| - **`eza`** — modern replacement for `ls` | ||
| - **`bat`** — `cat` with syntax highlighting and git integration | ||
| - **`zoxide`** — smarter `cd` that learns your habits | ||
| - **`atuin`** — shell history sync across machines | ||
| - **`starship`** — fast, cross-shell prompt | ||
| - **`uutils-coreutils`** — Rust rewrite of the GNU coreutils - that's right, before Ubuntu did it lol! | ||
| - **`ripgrep`**, **`fd`**, **`ugrep`** — faster search tools | ||
| - **`tealdeer`** — fast `tldr` for quick command references | ||
|
|
||
| You can also grab Bluefin artwork and wallpaper collections, browse and install curated Brewfiles via the `ujust bbrew` command, and run `bluefin-cli motd show` to get the same Message of the Day that greets Bluefin users at every new terminal. | ||
|
|
||
| ## This is an early alpha | ||
|
|
||
| The cross-platform release is early. Things will be rough in places. [Open issues with feedback](https://github.com/hanthor/bluefin-cli/issues/new) — that's how this gets better. | ||
|
|
||
| The full source is at [hanthor/bluefin-cli](https://github.com/hanthor/bluefin-cli). Contributions welcome, we'd love feature parity! | ||
|
|
||
| --- | ||
|
|
||
| If you're already running Bluefin, nothing changes — `ujust bluefin-cli` still works the same way. This is for everyone else who wants in. | ||
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The current presentation of shell setup commands for
bash,zsh, andfishin a single code block could be confusing. A user might copy-paste the entire block, inadvertently running all three setup commands, which could lead to a misconfigured shell environment. To prevent this, it's better to provide a single, clear instruction that requires user action to choose their shell.