Introducing bluefin-cli
Note: This feature is under heavy development. If all of this is confusing to you ignore it.
ujust bluefin-cli
will install bluefin-cli
, Bluefin’s opt-in command line experience. It is a dedicated toolbox container that is designed to give the user access to as much software as possible while providing a modern Linux command line experience. It is purposely decoupled from the host system so that it can run on any Linux system.
bluefin-cli
comes preconfigured with the Homebrew package manager and comes ready to go out of the box. It is the current recommended method to install command line applications in Bluefin.
- System level commands that are not in the container such as
rpm-ostree
,podman
,docker
,systemctl
, andujust
transparently work. Commands that requiresudo
on the host will not work, use the host terminal in Ptyxis for those use cases. - The
brew
command works as it does on other operating systems. - This introductory video goes over the features and history of Wolfi, which is designed for running in containers.
- We feel that a distroless approach to deliver the entirety of the Homebrew ecosystem in a container is the perfect compliment to an existing host operating system.
Included software
bluefin-cli
comes with the latest versions of bash
, fish
, and zsh
included, as well as some other fantastic command line tools:
- atuin for shell history
- eza as a replacement
ls
- fd for
find
- fzf for command line fuzzy finding
- ripgrep for search
- uutils as
coreutils
- zoxide as
cd
The entire container is rebuilt every day from scratch, and Wolfi’s aggresive update policy ensures that Bluefin is always on the latest version of software. Fully automated.
Brew’s state is volume mounted to a file in your home directory so your container is fresh but your additional packages remain untouched. At this time it is strongly recommended to maintain a backup of your brew package list via the brew bundle subcommand.
The apk package manager is preferred for fully declarative setups with boxkit or locally. You can file package requests on the WolfiOS repository for packages that you may need.
The intended endstate of bluefin-cli
is a fully automated declarative config managed via git using Wolfi packages for clean daily rebuilds. brew
is used to fill out the “long tail” of existing software.
Use bluefin-cli
on any Linux
bluefin-cli
is for everyone! Here’s the distrobox command.
distrobox create -i ghcr.io/ublue-os/bluefin-cli -n bluefin
It’ll work with any terminal, but is probably enjoyed to it’s fullest with Ptyxis. If you’re not on a Bluefin host we recommend grabbing the quadlets to get a managed, auto-updating experience.
Why a new container instead of just using Ubuntu or Fedora?
Alpha and Beta versions of Bluefin included Ubuntu as the default terminal experience. However, the team desired a distrobox that was designed from the bottom up to be a terminal experience instead of a traditional distribution. This is the way.
WolfiOS was chosen due to:
- These technical features
- The team’s investment in tooling and automation
- Aggressive update cadence
- Packaging priorities strongly skew towards the tools our target audience wants.
Note: Ubuntu and Fedora containers will always be included and receive the same optimizations such as instant-launch, Ptyxis integration, etc.
Assembling custom containers (Optional)
For specific projects we recommend assembling on-demand distroboxes so that they are built fresh from scratch. Use the ujust assemble
shortcut to declaratively build distroboxes defined in /etc/distrobox/distrobox.ini
. This command will destroy your existing container and pull a new one from scratch.
Modify /etc/distrobox/distrobox.ini
to add your custom packages to the stock containers so that your preferred environment can be rebuilt. Check out Declaring your own personal distroboxes for more information. Here’s an example distrobox.ini file
- Refer to the Distrobox documentation for more information on using and configuring custom images