Secrets you can read. Deployments you can scale. Logs that stream. K8Secret talks directly to your cluster's API — no Electron, no kubectl shim, no telemetry.
curl -fsSL https://raw.githubusercontent.com/jai-bhardwaj/k8secret/main/release/install.sh | bashTwo existing options. The CLI gives you everything but makes secrets unreadable without piping through base64. The Electron tools render fine but boot slow, hog RAM, and don't feel like macOS apps. K8Secret splits the difference.
Opaque secrets render as plain key/value pairs the moment you click them. Edit in place, reveal on click, bulk-import a .env. Stop running kubectl get secret -o yaml | base64 -d on a loop.
Written in Swift. Talks to the K8s API directly through your kubeconfig — no kubectl shell-out except for port-forwards. Boots in under a second. Cmd-tab-able. Real macOS keyboard navigation.
Open staging and production side by side. Each window remembers its context and a custom tint. Compare without flipping kubeconfig contexts. Stop holding cluster names in your head.
Opaque secrets render as readable key/value pairs the moment you select them, masked until you ask. Edit in place, staged locally and applied as one atomic merge-patch on the version you read — so either every change lands or none does, and a conflict is a conflict rather than a silent overwrite.

Every resource shows what the API server actually returns — not a rendering of what the app parsed — with managedFields dropped the way kubectl drops it. Secret values stay redacted there: base64 is not encryption, and opening a tab is not asking to see them.

⌘N opens a chooser rather than a second window onto the same place. Open ten if you like — each window keeps its own cluster, namespace, scope and selection, and the colour you give a cluster paints its whole window, so the one showing production is unmistakable from across the room.

CPU and memory against the pod's own requests, restarts, placement, containers and events. Everything kubectl describe shows, in a window you can scan at a glance — and a rollout is a ring that fills rather than a spinner that spins.

K8Secret reads your ~/.kube/config, opens a TLS connection straight to each cluster's API server, and stays there. It doesn't shell out to kubectl (except for port-forwards), doesn't proxy through an Electron sandbox, doesn't ship your credentials to anyone.
The one-liner in the hero runs a small shell script — under 100 lines, no obfuscation — that you can read on GitHub before pasting. Here's exactly what it does, in order:
release/latest.json from the repo to learn the current version + DMG URL..dmg from GitHub Releases (HTTPS, served from GitHub's CDN).hdiutil and copies K8Secret.app into /Applications.com.apple.quarantine attribute so macOS Gatekeeper doesn't prompt on first launch.codesign, unmounts the DMG, deletes the temp file.No. The DMG is ad-hoc signed and the installer strips the quarantine bit before launch, so you won't see a Gatekeeper prompt. The trade-off: no Apple-issued notarization (yet), which would require a paid developer account.
Only for port-forwarding. K8Secret talks to the Kubernetes API directly for everything else — list pods, scale deployments, view secrets, stream logs. Port-forward shells out to kubectl because re-implementing SPDY/SPDY-over-WebSocket inside the app isn't worth the bytes.
No telemetry, no crash reporting, no analytics. The only outbound calls are (1) to your own cluster API servers, and (2) to raw.githubusercontent.com to check the update manifest on launch. You can disable the update check by editing one constant in source.
Yes. Open as many windows as you have contexts. Each window remembers its cluster and an optional tint color, so prod and staging are instantly distinguishable. The sidebar shows all your contexts; switch with a dropdown or cmd-key.
Anything kubeconfig supports: bearer tokens, client certs, and exec credential plugins (AWS IAM Authenticator, gke-gcloud-auth-plugin, etc). If kubectl works against your cluster, K8Secret works.
When the macOS app has settled and the architecture has earned the right to port. The current Swift codebase has Mac-specific bits (NavigationSplitView, native menus) — porting cleanly means picking a cross-platform UI stack that doesn't feel like Electron. Updates on the GitHub repo.