A desktop GUI for power users.

Multicluster Kubernetes — same mental model as kubectl, but live-updating, multi-tab, and clickable.

Buoy command bar with a live-updating pods table

Built for power users.

Buoy keeps the kubectl mental model but trades CLI ergonomics for a desktop surface — live tables, clickable rows, multi-tab navigation, and bulk actions across every Kubernetes resource the API exposes.

>_

kubectl-shaped command bar

Short names, -n / -A, -l / -f selectors, -L / -F extra columns. Tab-completes resources, contexts, namespaces, names, and label keys observed in the current view.

Multi-context fan-out

Run one query against one cluster, several, or every reachable context. The /contexts view is a sortable table of your whole kubeconfig with per-cluster reachability, version, and node counts.

?

Scheduling explainer

For any Pod, see which existing nodes and Karpenter NodePools could host it — with the failing rule (taint, affinity, resource fit, topology spread) called out per node.

+

Custom integrations

First-class detail views, actions, and controls for ArgoCD, Argo Rollouts, Argo Workflows, Karpenter, and Kueue — beyond what plain CRD inspection gives you.

Bulk actions with typed-confirmation

Multi-select rows and edit labels, edit annotations, delete, restart rollout, cordon / uncordon / drain. Every destructive action gated by a typed confirmation phrase.

Helm history

Release revisions, diff between revisions, rollback, and uninstall — all from one view.

{ }

Plugin SDK

Drop a .tsx file in your plugins folder to add custom detail tabs, slash commands, table columns, actions, and views.

A closer look.

Detailed views for resources.

Every resource has a focused detail view with tabs for what matters: overview, YAML, logs, events, related objects, and per-kind extras like Scheduling for Pods or Rollout for Argo Rollouts.

Detail view for a resource with tabbed sections

Autocompletion that knows your cluster.

Tab cycles through resource kinds, short names, contexts, namespaces, observed label keys, and even the names of objects already on screen. The same syntax as kubectl, with the lookups done for you.

Command bar with the tab-completion dropdown open

See why your pod won't schedule.

The Scheduling tab evaluates every node and every Karpenter NodePool against your pod's affinities, taints, topology spreads, resource requests, and scheduling gates — and tells you exactly which rule failed. Grouped by NodePool, zone, or reason for thousand-node clusters.

Scheduling explainer with grouped nodes and failing-rule callouts

One view, every cluster.

/contexts is a sortable, filterable table of your whole kubeconfig. Per-cluster reachability, server version, total and Ready node counts — all fetched in parallel with a bounded concurrency pool so a slow cluster doesn't gate the rest. Select 2+ rows to fan a query out across them.

Cross-cluster contexts view showing reachability and node counts

Custom integrations, not just CRD inspection.

Purpose-built detail views and controls for the tools you actually use: ArgoCD, Argo Rollouts, Argo Workflows, Karpenter, and Kueue. Status, history, and the right action buttons — without leaving Buoy.

Argo Rollout detail view as one example of a custom integration

Bulk actions with a safety net.

Shift-click to range-select rows, then restart, drain, cordon, or edit labels and annotations across the whole selection. Every destructive action is gated by a typed confirmation phrase.

Bulk actions bar with selected pods and the Actions menu open

YAML edits with a diff you can read.

Edit any resource in a CodeMirror YAML buffer with syntax highlighting and Cmd/Ctrl-F search. Confirm modal shows the unified diff and applies server-side with field manager "buoy".

YAML edit confirmation modal with a unified diff

Visualized history.

See every revision of a Helm release or Deployment in one timeline — diff manifests and values between any two points, jump straight to the rollback action.

Visualized history for Helm releases and Deployments

Install

Buoy is a Tauri app — build from source with bun and cargo. Pre-built bundles aren't published yet.

git clone https://gitlab.com/spruett/buoy buoy
cd buoy
./scripts/install-mac.sh

Builds the release bundle and installs Buoy.app to /Applications (or ~/Applications with --user). Flags: --open launches after install, --skip-build reuses the last build, --dmg also produces a .dmg.

Requires: bun, cargo (Rust toolchain), Xcode command-line tools.

git clone https://gitlab.com/spruett/buoy buoy
cd buoy
./scripts/install-linux.sh

Runs bun install, builds the release binary with bun run tauri build, installs to ~/.local/bin/buoy, drops icons under ~/.local/share/icons/hicolor, and writes a .desktop entry so Buoy shows up in your app menu. Make sure ~/.local/bin is on your PATH.

Requires: bun, cargo, and the usual Tauri Linux build deps (webkit2gtk, libgtk-3-dev, etc.).

bun install
bun run tauri build

No install script yet. The bundle lands in src-tauri/target/release/bundle/ (.msi / .exe).

Documentation