Skip to main content

Command Line

Bluefin is designed to be used by normal people, but the command line is our passion. Therefore we invest in our command line experience, knowing that most people will never see it. Slay out.

bluefin-cli

ujust bluefin-cli will install Bluefin's opt-in command line experience using modern tools with great features that make us more efficient. It is designed to be turned on and off.

A greenfield terminal experience

We love our command line tools. This is intended to be a rendition of what a brand new terminal experience would look like with modern tooling. The traditional tooling is always a toggle away. Keep up with the cool kids without sacrificing your "known good" kit.

It comes with some fantastic CLI tools:

  • atuin for shell history
  • direnv to load and unload environment variables depending on the current directory.
  • eza as a replacement ls
  • fd for find
  • fzf for command line fuzzy finding
  • ripgrep for search
  • tealdeer for tldr
  • television - a blazing fast general-purpose fuzzy finder TUI - (tv)
  • trash-cli to manage the system trashcan. (Strongly recommended for new CLI users)
  • ugrep for grep
  • uutils as coreutils
  • yq for yaml, json, and xml processing
  • zoxide as cd

The community may add new tools over time, re-running ujust bluefin-cli will pull in the new tools.

What greatness have I been missing? Being set in my old, tired ways.

-- Bill Childers (Probably, this quote is made up)

image

Command Line Applications

The brew application is the package manager used for installing command line applications in Bluefin.

Note that the cask functionality in homebrew is MacOS specific and non functional in Bluefin, flatpak is used instead.

Forging your own path

Other package management tools like uv, pixi, asdf, and mise are available and work perfectly fine when installed via homebrew. Package managers inside of package managers ... hey look it was like that when we got here, this one isn't our fault!

Terminal Configuration

Changing the default terminal shell

Bluefin uses bash by default but also ships with fish and zsh on the image for convenience.

Help Wanted

The Bluefin team lacks expertise in both fish and zsh, contributions to help us reach feature parity would be welcome and appreciated!

Bluefin ships Ptyxis as the default terminal. It shows up as Terminal in the menu. It is strongly recommended that you change your shell via the terminal emulator instead of system-wide. Click on the Terminal settings and edit your profile:

Ptyxis → Preferences → Profiles → A Profile Setting → Edit...

Then select "Use Custom Command" and then add the shell you want to use. /usr/bin/fish and /usr/bin/zsh are both included on the image:

Ptyxis → Preferences → Profiles → A Profile Setting → Edit... → Shell → Custom Command

Using bluefin-cli with alternate shells

You can enable bluefin-cli for fish or zsh by pre-pending an override to the $SHELL variable to the command with:

SHELL=fish ujust bluefin-cli
SHELL=zsh ujust bluefin-cli
# Or do it all at once from bash with
ujust bluefin-cli && SHELL=fish ujust bluefin-cli && SHELL=zsh ujust bluefin-cli

Fonts

Homebrew is also used for installing fonts, browse this page and install your favorite fonts. They will be copied into ~/.local/share/fonts

  • Microsoft Fonts: Follow these instructions to install Office fonts if you need them. You can skip the homebrew installation instructions since it is installed already.