

New in 2.0
Every cluster, one hub.
Every cluster from every kubeconfig and cloud account, named, sorted and checked, a keystroke away.
- Names, colours, folders and tags
- Status, version and sign-in at a click
- Open it with ⌘O or Ctrl+O
JET Pilot is a fast, native and open-source Kubernetes desktop client. Every cluster, from your kubeconfig or your cloud, in one calm app that updates live.
Free and MIT licensed · macOS, Windows and Linux




New in 2.0
Every cluster from every kubeconfig and cloud account, named, sorted and checked, a keystroke away.
New in 2.0
Connect an account and JET Pilot finds its clusters, and keeps the list current.




New in 2.0
Device codes and browser sign-ins for kubelogin, gcloud, az, AWS and OIDC plugins appear right in JET Pilot.


Tables stream changes straight from the API server, so a scale lands on screen in about 200 ms.
Open logs on a Deployment, StatefulSet, DaemonSet, Job or Service and follow all of its pods at once.




Every app gets its own lane, from Ingress to Service to Pods, and health rolls up from pods to apps.
The details you reach for every day, all in the free app.


⌘K or Ctrl+K for resources, settings and clusters, and k9s-style keys for the rest.


Pick contexts and namespaces from one switcher; tables merge them, with a Context column.


Save contexts, tabs and port forwards, switch in one keystroke, and split two tabs side by side.


YAML with your cluster’s own schemas, then a diff and a server-side dry run.


Rollout history with a diff per revision, pause, restart and a safe rollback.


Containers, conditions, labels and events in a side panel, or the full describe.


Ctrl+` opens kubectl on the current context, without touching your kubeconfig.
Type the name before anything destructive, or make a cluster read-only.
Tokens and keys stay in your system keychain, and added clusters work in kubectl and k9s.
Add clusters from a kubeconfig, or by hand with a token or client certificate.
Finds your kubeconfig files and tools, and connects your clouds in a few steps.
Every preference in one searchable place, or as settings.json with validation.
Upgrade with a values diff, read the history, roll back or uninstall.
Shells into any container, ephemeral debug containers, node shells and file copies.
Start, stop and open forwards, or save profiles that start with the app.
A strict content security policy, minimal permissions, and Secrets that stay in memory.
Pick one of 14 built-ins or bring your own. The sidebar, tables, YAML editor and terminal all follow, in light and dark.


Free for everyone, forever. Always the latest release.
Apple Silicon & Intel
Not sure which Mac you have? Apple menu → About This Mac: “Chip: Apple M…” means Apple Silicon.
Windows 10 or later · x64
SmartScreen may warn about the unsigned installer: choose More info → Run anyway.
glibc 2.35+ (Ubuntu 22.04 or newer)
ARM64 (aarch64) Linux builds arrive with the next release.
AppImage: run chmod +x on the file first.
JET Pilot isn’t notarized by Apple: it’s free and open source, and we’d rather not pay Apple’s yearly fee. So on first launch macOS may say the app is “damaged” or refuse to open it. Remove the quarantine flag once and you’re good. Auto-updates keep working.
xattr -dr com.apple.quarantine "/Applications/JET Pilot.app"Run it in Terminal after moving JET Pilot to Applications. Not needed with Homebrew: the tap does it for you.
Install from our tap in one line. It opens right away, no quarantine step.
brew install --cask unxsist/tap/jet-pilot Installed it from homebrew/cask before? Run brew uninstall --cask jet-pilot first: Homebrew’s main repository only carries notarized apps now. Older versions are on GitHub Releases.
MIT licensed and developed on GitHub since December 2023. No paid tier, no feature gates, no account wall: a tool made by people who use Kubernetes every day.
Something else? Open a GitHub issue and we’ll take a look.
xattr -dr com.apple.quarantine "/Applications/JET Pilot.app" once. Auto-updates keep working afterwards. Installing with Homebrew (brew install --cask unxsist/tap/jet-pilot) takes care of this for you.chmod +x JET.Pilot_*.AppImage, then run it. Prefer packages? Use the .deb (Debian, Ubuntu) or .rpm (Fedora, RHEL) instead.kubectl (plus helm for the Helm views); if you don’t have them, Settings › Advanced downloads checksum-verified copies. It works with any conformant cluster you can reach, including exec-plugin and SSO sign-ins such as kubelogin, AWS IAM Identity Center, gcloud and az.~/.kube/config, $KUBECONFIG, ~/.kube/*.yaml and ~/.kube/config.d, and the Clusters hub lists every context in them. Select several contexts and namespaces together: tables aggregate everything and show Context and Namespace columns so you always know where a resource lives.kubectl. Changes show up in a fraction of a second — about 200 ms from scaling a Deployment to the update on screen in our tests against a real kube-apiserver — and coming back to a view is instant.include chains too) and .tmTheme-style colour schemes. Drop the file on Settings › Appearance, or install a theme from an open theme gallery inside the app. The theme’s interface colours become JET Pilot’s palette, its syntax colours the YAML editor and its terminal colours the terminal. Want to see it first? Preview your theme on the website: it’s converted in your browser.MIT OR Apache-2.0). That still covers most popular themes. A theme under another licence isn’t blocked: you can import a file you already have yourself.~/.kube/jet-pilot/config, with their tokens and keys in your system keychain. The built-in terminal uses a temporary, owner-only kubeconfig that contains just the current context.jetpilot-auth, so KUBECONFIG=~/.kube/config:~/.kube/jet-pilot/config kubectl get pods works, and so does k9s. Settings › Advanced shows the line to copy.brew upgrade --cask unxsist/tap/jet-pilot.