This month, we’re highlighting Seabird, a native open-source desktop client for Kubernetes. Although currently in alpha, it’s already receiving positive feedback as the overarching goal for the project and client itself is to simplify exploring your Kubernetes cluster resources. 

Part of its appeal is its lack of bloat, with the client written in Go (93.6% of its code according to GitHub with the rest mostly CSS), and “native” in the sense it uses GTK, the cross-platform open source development tool, maintained by the GNOME project and its community, which is used by many open source apps and Linux distributions to create graphical user interfaces.

At this point, you may be asking yourself whether we need another K8s client, and we’ll mention a few options, below, but, essentially, the growth in new K8s clients in recent years stems from what happened to Lens Desktop. Lens was originally an open-source client project with a huge user base but subsequently became proprietary and paid-for under its new owner, Mirantis.

Kubernetes UI Desktop Client Options

Headlamp

We’ve mentioned Headlamp previously in our newsletter (which you can sign up for here). Headlamp is an extensible web UI for Kubernetes that benefits from being a CNCF Sandbox Project. It can be set up as either a desktop client or deployed in-cluster and accessed via web UI. Its main selling point is a plugin system for creating a custom setup for your org and applying RBAC controls to user permissions, which makes it appealing for platform engineering teams.

AptaKube

Around a year ago, we also saw aptakube released when Guilherme Oenning announced he was quitting his day job as a platform engineer to make a K8s multi-cluster desktop client. Initially, this required a $100 one-off license, which has settled down to $89 for a perpetual license. At launch, aptakube’s main selling features included:

  • Lower memory and CPU usage - aptakube was developed using the Tarui framework and Rust in contrast to many of the clients built using Electron.

  • Multi-cluster support - the ability to connect to multiple clusters simultaneously and see all the pods in the same view is particularly beneficial for anyone using mirrored clusters across multiple regions.

  • Aggregated log views - features the ability to stream logs from all pods that are in a deployment, service, DaemonSet, and so on.

  • Terminal - aptakube uses a terminal that runs a shell and not a web emulator or Web UI.

Lens Desktop (Open Source)

As mentioned, Lens Desktop (sometimes called Open Lens) is a popular desktop client that boasts over a million users. Open Lens started life as an open source project in 2020 but was snapped up by Mirantis in the same year. Mirantis rightly recognized its potential to eliminate a lot of the complexity of administering Kubernetes. However, since the acquisition, the tension between the initial open source approach and commercial plans has increased.

You can see this reflected in comments around Oenning’s decision to work full-time on aptakube. As one Reddit user quipped in response to his announcement in 2023: “I'm using Lens [Desktop]. No point in using this being overpriced, IMHO.” While another responded with, “Good luck with betting on Mirantis. They’ll continue peeling back features, and soon enough, you'll be paying.”

Since 2020, Open Lens has gradually moved towards a commercial model with a number of sudden, unpopular additions, for example, in May 2022, an unskippable login was suddenly forced on users

Meanwhile, many features were stripped from the open source edition and reserved for the paid-for versions, such as a pod log viewer and container executable features. Over time, this has made the OSS version  less and less useful to engineers who initially saw it as a way to contribute to and support an open source tool intended to benefit all K8s users.

The reasoning for the feature-stripping was around maintenance costs, but, as is often the case when an open source product is mainly supported by one company, it also nudged more users of the open source version to pick up the commercial Lens Pro edition for $249 a year per seat.

Ultimately, it wasn’t long before the open source version of Lens Desktop was dropped entirely and officially retired. The project announced that Open Lens was no longer going to be maintained, and any future contributions would need to work through the Lens API on the Mirantis-supported proprietary Lens Desktop.

Seabird - an open-source forever alternative to Lens

Seabird is a response to the loss of Open Lens to the community. Discussing the release on Hacker News at the end of January, Jakob Gillich, the main developer behind the client, says he built Seabird as a replacement for open source Lens Desktop. Partly, because he felt there were some “long-standing issues with [Lens],” but also because Mirantis decided to ‘retire’ the open source version and “this is one piece of software I think needs to be open.”

Seabird-UI-screenshot
Although only in alpha, Seabird is already offering a faster and cleaner approach to gaining visibility into the resources running on a Kubernetes cluster.
Image by Jacob Gillich.

What Seabird offers:

Speaking to Jacob Gillich, Seabird’s project lead via email, Jacob says they have no formal roadmap at this early stage. “Our plans are to build the best Kubernetes desktop app we can while keeping the code open source and funding a few developers (including myself) to work on it.” 

As far as features are concerned, Seabird doesn’t have the same depth as Open Lens did when it was open source, but as Jacob explains: ”a great user experience is more important than cramming the maximum number of features into a limited space.” 

  1. Open source - As mentioned, there are good K8s clients available, such as Headlamp and aptakube, but with Lens Desktop retired, there is a need for more Kubernetes UI tools that are open source and a healthy level of competition is always better for the users. At time of writing, Seabird had garnered over 350 stars on GitHub. With 27 project release since launching in January, and seven alone in the last month, its steadily building to a 1.0 release.

    Jacob Gillich says: “Lens is part of a bigger trend where companies release open source projects to achieve rapid adoption, then build proprietary enterprise services around them to generate revenue, until they eventually lock down the code. Open Lens is a dead project that will not be compatible with future Kubernetes releases. I saw a great opportunity in this space since many users are unhappy with the direction Lens has taken, thus I created Seabird with the goal of creating a long-term sustainable open source software project.”

  2. Native - Seabird uses a native user interface toolkit in contrast to clients that use Atom-based apps that run in a browser. 

    Jacob Gillich says: “Lens is built on Electron, an embedded web browser. Seabird uses a native UI toolkit and a programming language that runs much faster than JavaScript.” 

  3. Speed & Responsiveness - Another benefit of being native to K8s is that it avoids the lag associated with other clients, especially when they run on a browser.

    Jacob Gillich says: “Kubernetes clusters can scale [...] to thousands of pods and beyond. I believe that our technology is much better-suited for delivering a smooth and fluid experience no matter how big your cluster is. That being said, we haven't done any testing and optimization thus far since it's still an early-stage project.”

  4. Simplified UI & Favorites - Seabird is designing a more simplified approach, and users can favorite any type of resource for better visibility into your cluster resources.

    Jacob Gillich says: “By designing the UI from scratch, and through my several years of experience using Lens, I hope to achieve a better user experience. Lens is a great tool, but it has usability problems. It displays far too much information at once, and navigation can be tedious. Seabird aims to provide a much simpler experience out of the box, with optional customizability added at a later stage.”

  5. Free - It’s free to download, but more importantly for many users, it also doesn’t send any information to a central server even to verify you have a license, so it respects users’ freedoms in the free software and open source sense of being ‘free.’

    Jacob Gillich says: “Seabird isn't a startup. We have no investors, therefore we don't have a need to generate big returns (which often conflicts with users' interests).”

Gillich has indicated that when the product is released, he is likely to ask users to purchase an optional annual subscription at a low cost. In his announcement, he suggested “something like $20/year.” Although, at the time, he acknowledged that he hadn’t thrashed out all the details yet. In a recent email exchange, Jacob explained in more detail, indicating that if Seabird can generate enough income to fund a small team of developers, he’d “be perfectly happy.” No paid support option is live yet, but the project does plan to introduce a paid subscription that gives users direct priority support in return. 

Importantly, Jacob has confirmed that everyone will still be able to use the full software for free, but he hopes that a small percentage will pay for it simply because they like the software and want to support it.

How To Download and Add Clusters

Client downloads for all supported operating systems are available with each release (currently Linux, Windows, and  MacOS). Windows and MacOS editions have simple .msi and .dmg installers, respectively, but for Linux, the project recommends downloading the official Flatpak from Flathub. Alternatively, you can build from source for Fedora- and Debian-based distributions:

Fedora
sudo dnf install gtk4-devel gtksourceview5-devel libadwaita-devel gobject-introspection-devel glib2-devel vte291-gtk4-devel golang
Debian
sudo apt install libgtk-4-dev libgtksourceview-5-dev libadwaita-1-dev libgirepository1.0-dev libglib2.0-dev-bin libvte-2.91-gtk4-dev golang-go

To create the embedded resource file required, you must run:

go generate ./...

And then build

go build

Once installed, clicking 'New Cluster' on the client's splash screen enables you to add a cluster to the client by filling in a few fields: a cluster name, host details, and authentication method, followed by selecting an appropriate kubeconfig file to load for cluster access. 

Future Developments

When we spoke to the project, Seabird was currently working on terminal support to enable admins to execute into containers, which became part of the 0.1 release. At this point, Jacob says, “we'll have all basic functionality covered, but it remains to be seen whether we'll add some of Open Len's advanced features, such as Prometheus or Helm integration,” Jacob told us. Jacob also says they are currently leaning towards only supporting Kubernetes-native APIs, but that it's open for discussion within the community. If you’d like to join the community around Seabird, you can keep up-to-date with developments via the official site, and you can download the latest releases, with versions for Linux, Windows and Mac, from the GitHub repository.

UPDATE - Seabird 0.2 was released at the beginning of March along with a development blog detailing the new features, which include column sorting, some responsive and platform design work and a Resources Editor providing API references.

Seabird is released under the Mozilla Public License v2.0.

GitHub: https://github.com/getseabird/seabird
Official site: https://getseabird.github.io/

Contact Us

Get expert advice on the right cloud-native technology for your specific use case—Book a call today!

Square Pulse (1) CONNECT WITH US

 

 

Comments