klimax is now marina. Same tool, new name since v0.3. Existing install? Migrate with marina migrate →
Documentation menu

Marina UI — the macOS app

A native SwiftUI companion app for the marina CLI. See your VM, kind clusters, and registry mirrors at a glance — live charts and reachability checks, without juggling terminals.

Marina UI home view: cluster grid, registry mirrors, and live VM CPU and memory charts in a native macOS window
The home view: cluster grid, registry mirrors, volume mounts, and live VM CPU and memory charts in one native macOS window.

Why

The CLI is great for one-off commands. But to keep an eye on what's running, how loaded it is, and which LoadBalancer services are reachable, you'd otherwise be juggling marina cluster list, kubectl get, kubectl top, ssh, and du -sh across a fistful of terminals. Marina UI rolls all of that into one app.

What it shows

PanelWhat you get
Sidebar marina runs a single VM, so it's pinned at the top; your clusters — each with its relative age (e.g. 5h ago) — and registry mirrors are listed below. Refresh everything from the window toolbar or with ⌘R.
VM dashboard Live CPU% and memory graphs, sampled every 5 s over the SSH ControlMaster socket marina already maintains.
Cluster creation Create a cluster from the sidebar's + button; it appears immediately with a live, auto-scrolling log of marina cluster create — and any marina warnings (e.g. a non-default kind node version) surface right in the sheet.
Per-cluster view Node + pod inventory, live CPU/memory time series, and top pods by CPU and memory — with one-click Helm install of metrics-server. Hover a pod in the top-pods tables to overlay its history on the cluster charts for side-by-side comparison. The detail header shows the cluster's age.
LoadBalancer service browser Lists every Service with external IPs, probes each (ip, port) over real TCP, and renders a clickable link when reachable.
Registry mirror inspector Cache disk usage and image count for each mirror in ~/.marina/registry-cache/.
Marina UI cluster view: the dev cluster with its Kubernetes version, region and zone labels, pod counts per namespace, and node details
Selecting a cluster shows its version, topology labels, pods per namespace and node detail — with tabs for Services and Metrics.

Install

The recommended path is the Homebrew cask:

$ brew tap bcollard/marina
$ brew trust --tap bcollard/marina
$ brew install --cask marina-ui

Or download the latest MarinaUI.dmg (or .zip) from the Releases page.

🔏

The release build is signed with a Developer ID and notarized, so Gatekeeper opens it without warnings.

Upgrading Marina UI

Quit the app, then pull the newest release the same way you installed it. With Homebrew:

$ brew update
$ brew upgrade --cask marina-ui
$ open -a Marina

Installed from a download instead? Grab the latest MarinaUI.dmg from the Releases page and drag it over the old copy in /Applications.

🔗

Share this section directly: marina.run/docs/marina-ui.html#upgrading. Marina UI upgrades independently of the marina CLI — no VM rebuild needed, since the app only reads marina's state.

Requirements

  • macOS 14 Sonoma or later.
  • A working marina install — at least one VM under ~/.marina/.
  • kubectl and helm on PATH (marina pulls these in).

How it works

No backend, no daemon, no new state — Marina UI reads from the same sources marina itself uses:

  • ~/.marina/<vm>/ (lima.yaml, ssh config, liveness pid) for VM discovery and SSH.
  • Cluster kubeconfigs via kubectl.
  • The Kubernetes metrics.k8s.io API for cluster metrics.
  • ~/.marina/registry-cache/ for cache sizes.

VM stats come from /proc/stat and /proc/meminfo read over SSH every 5 s. LoadBalancer reachability is an actual TCP probe (NWConnection) from the host — not a static CIDR check.

📊

If metrics-server isn't installed in a cluster, the Metrics tab offers a one-click Helm install with --set args[0]=--kubelet-insecure-tls (required for kind's self-signed kubelet).

Build from source

Clone the repo and run ./build.sh — it requires Xcode (for the Swift 6 toolchain) and swift-bundler:

$ git clone https://github.com/bcollard/marina-ui
$ cd marina-ui
$ ./build.sh

See also