OptaKube
A fast, native macOS Kubernetes client

A real Kubernetes GUI for your Mac — open a window per cluster, watch resources update live, stream logs, drop into a pod's shell, edit and apply manifests, manage Helm releases, and run everyday actions without memorising another kubectl flag. Free and open source.
Highlights
Everything you reach for, in one native window
🪟
A Window Per Cluster
Connect to several clusters at once, each in its own window with independent namespace, view, and state. JetBrains-style: a welcome hub, then a window per session.
⚡
Live Updates
Tables update in real time over the Kubernetes Watch API — every connected cluster at once. Bursts are coalesced so a 200-pod rollout stays smooth, not janky.
📊
Inline Metrics
CPU and memory usage bars right in the Pod and Node tables, per-container charts, and a cluster overview dashboard with node status and utilization gauges.
📜
Log Streaming
Aggregate logs across multiple pods, chronologically ordered with server-side timestamps. Search, filter, highlight, mark, and export — JSON and logfmt are colour-coded.
⌨️
Embedded Terminal & Exec
A real PTY in the footer — fish, zsh, bash — that inherits your kubeconfig and context. Right-click any pod to drop straight into its container shell.
🎯
One-Click Actions
Restart, scale, and roll back deployments; port-forward; attach debug containers; trigger, suspend, or resume CronJobs; cordon, drain, and evict — all from the context menu.
Manage, Not Just Browse
Operate clusters end to end, from a native window
📦
Helm Releases
Browse Helm v3 releases across your clusters; inspect values, rendered manifest, and full revision history; roll back to any revision or uninstall — all read straight from the release Secrets, no helm binary required.
✏️
Edit & Apply YAML
View any resource's live manifest, edit it in a YAML-aware editor — syntax highlighting, auto-indent, no smart-quote surprises — with a unified diff before you commit, or paste a brand-new manifest to create it via server-side apply. Works for built-in types and your CRDs alike.
🛡️
Access Review (can-i)
See exactly what your current credentials may do — a matrix of every resource type against get / list / watch / create / update / delete in the selected namespace.
☑️
Bulk Actions
Multi-select rows in any table to delete or restart many resources at once — with a confirmation step before anything destructive happens.
🔔
Cluster Events
A namespace- or cluster-wide event firehose, newest first, with a warnings-only toggle — fast triage when something's misbehaving, plus live per-resource events with a warning badge.
⭐
Saved Views & Label Filters
Filter any table by a real Kubernetes label selector (app=web,tier!=db), and pin namespace + type + filter combos to the sidebar to jump straight back.
Every Resource, Plus Your CRDs
30+ built-in types, and anything custom your cluster defines
Pods, Deployments, Services, Nodes, StatefulSets, DaemonSets, ReplicaSets, Jobs, CronJobs, ConfigMaps, Secrets, Ingresses, IngressClasses, PersistentVolumes, PVCs, NetworkPolicies, ServiceAccounts, HorizontalPodAutoscalers, Namespaces, Endpoints, Roles, RoleBindings, ClusterRoles, ClusterRoleBindings, StorageClasses, ResourceQuotas, PodDisruptionBudgets, LimitRanges, PriorityClasses, Leases, and admission webhook configurations — each with detail views, and YAML view / edit / diff / apply / delete. OptaKube also auto-discovers every Custom Resource Definition installed on the cluster and lets you edit those instances too, so your operators and platform CRDs are first-class.
⌘K
Spotlight search across every resource, namespace, type, and CRD
🔓
Reveal Secret & ConfigMap values inline, with one click
↺
Side-by-side revision diff before you roll a Deployment back
Connects to Anything
Reads your existing kubeconfig — managed or self-hosted
🔑
Every Auth Method
Bearer tokens, client certificates (EC and RSA), and exec-based auth — AWS EKS, GCP GKE, and friends. Exec commands run through your login shell, so your full PATH and env are available.
🔒
Self-Signed Welcome
Pins your cluster's certificate authority exactly like kubectl, so self-hosted clusters with private CAs just work — with clear, specific errors when a handshake fails.
Get Started in Seconds
From kubeconfig to a live cluster in under a minute
⬇️
Step 1
Download the DMG and drag OptaKube into Applications
📂
Step 2
It reads the same kubeconfig kubectl already uses — nothing to configure
🖱️
Step 3
Pick one or more clusters from the welcome window and connect
✨
Step 4
A live window opens per cluster — browse, stream, and operate right away
Who It's For
Anyone who runs workloads on Kubernetes
🧑💻
Platform & DevOps
Operate many clusters side by side — apply manifests, manage Helm releases, and keep production actions behind a confirmation.
🚨
SREs & On-Call
Live events, aggregated logs, inline metrics, and one-click restart / scale / rollback — fast triage when something's on fire at 3am.
🧰
Backend Developers
Drop into a pod's shell, stream logs, port-forward, and read Secrets & ConfigMaps inline — without memorising another kubectl flag.
Under the Hood
Native Swift, no web views, no Electron
OptaKube talks to the Kubernetes API directly over URLSession — no bundled kubectl proxy, no third-party HTTP stack. It starts instantly, sips memory, and feels like the Mac app it is.
Requirements
💻
macOS 14+
Sonoma or later
📄
A kubeconfig
The one kubectl already uses
🆓
Free & Open Source
MIT licensed