Skip to content

erango/kompass

Repository files navigation

Kompass

Kompass

A beautiful, fast Kubernetes desktop app — built in Rust + Dioxus.

Browse, inspect, and operate any cluster with a native, keyboard-driven UI that stays responsive on clusters of any size.

Kompass - A beautiful, fast Kubernetes desktop app — built in Rust | Product Hunt

Kompass — Pods view with live metrics Kompass — command palette, live metrics, logs and exec

Why

Most Kubernetes UIs are either web dashboards that lag on large clusters or heavyweight Electron apps. Kompass is a small native binary with a strict architecture: all cluster I/O runs on a background Tokio runtime, and the Dioxus UI thread only consumes deltas over a channel and renders from in-memory state — so the interface never blocks on the network, even mid-reconnect.

Features

Browse everything

  • Generic, discovery-driven engine: every built-in kind and CRDs, grouped into a categorized sidebar (Workloads, Network, Config, Storage, Nodes, Events, Cluster, Custom Resources).
  • Live watch with stale-while-revalidate caching and self-healing reconnects (refreshes expired credentials, e.g. aws eks get-token).
  • Per-kind status mappers + a generic fallback; Lens-style per-container status squares (incl. init containers).
  • Virtualized tables, column sorting (incl. live CPU/Mem with sparklines), per-kind column selection, fast debounced search — preserved per resource type and namespace view.

Inspect

  • Resizable detail panel: Summary, YAML (syntax-highlighted, editable with search + match navigation), Logs, Events, and Exec.
  • Logs: follow, wrap, include/exclude filters, inline match highlighting, ANSI color rendering, per-container selection, and merged multi-pod streams.
  • Exec: an interactive terminal (xterm.js) into any container.

Operate

  • Delete (with force delete), rollout restart, scale, cordon / drain, port-forward (with a global indicator).
  • Confirmation for destructive actions on everything except pods.

Multi-cluster & navigation

  • Cluster switcher with pin-to-top; per-cluster namespace views that persist across restarts.
  • Detects namespace-scoped access (no cluster-wide list) and falls back to the one namespace you can read.
  • Animated, progressively-loaded Overview dashboard (live).
  • A settable default boot page.

Crafted UI

  • Dual dark/light theme, oklch color system, per-cluster accent, IBM Plex Sans + JetBrains Mono, native macOS title-band integration.

Keyboard

Shortcut Action
⌘K Command palette (kinds, clusters, resources)
⌘[ / ⌘] Navigate back / forward
⌘R Refresh
⌘F / ⌘G Focus log/YAML search / next match
⌘T New namespace view

Install (macOS)

Universal build (Apple Silicon + Intel).

brew install --cask erango/tap/kompass

Or grab the .dmg from the latest release and drag Kompass into Applications.

The build is unsigned, so on first launch macOS will warn. Either right-click the app → Open, or run:

xattr -dr com.apple.quarantine /Applications/Kompass.app

Build & run

Requires a Rust toolchain and a working kubeconfig (kubectl config current-context).

# Run against your current kube context
cargo run -p kompass-bin

# Run the test suite
cargo test

macOS app bundle

./scripts/bundle.sh                  # release Kompass.app
./scripts/bundle.sh --debug --open   # debug build + launch

Architecture

A two-crate workspace:

Crate Role
kompass-core UI-agnostic engine — connect, discover, watch, normalize into rows + deltas
kompass-bin Dioxus desktop app — Tokio↔UI bridge, all views

The engine runs on its own Tokio runtime and streams Deltas to the UI over an unbounded channel; the UI sends Cmds back. See ARCHITECTURE.md and DESIGN_SPEC.md.

Built with Rust · Dioxus · kube-rs · Tokio · xterm.js.

License

MIT.


Made with ♥ by @erango

About

A beautiful, fast Kubernetes desktop app — Rust + Dioxus

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors