Many kubeconfigs authenticate through an exec credential plugin — for example
aws eks get-token wrapped in aws-vault exec <profile>. These plugins rely on
two things that a terminal gives them but a GUI launch does not:
- a populated
PATH(so the helper binary is found), and - ambient cloud credentials / environment (so the helper can mint a token).
When you launch Klustr from Finder, the Dock, or a .desktop entry, the OS starts
it without your shell's startup files — so an exec plugin that works in your
terminal can fail in the app. Klustr fixes this in two layers.
On a GUI launch (macOS/Linux only — never on Windows, never when started from a terminal), Klustr runs your login shell once, captures its environment, and merges into its own process:
- your full
PATH, plus - an allowlist of relevant variables (
AWS_VAULT_BACKEND,AWS_CONFIG_FILE,KUBECONFIG, proxy variables, …).
This happens before the first connection attempt, so the first exec plugin run already sees the merged environment. In most setups this alone makes terminal-only kubeconfigs work from the Dock with no configuration.
If your cluster needs an aws-vault profile's credentials specifically, map the
context to a profile:
- Open the Connections screen → Credential helpers section.
- Find your context. Klustr preselects a likely profile from the kubeconfig
exec block's
--profile/AWS_PROFILEhint. - Pick the aws-vault profile to use and save the mapping.
On connect, Klustr runs aws-vault export --format=json <profile> (you may see the
macOS Keychain prompt the first time) and injects the captured keys into the exec
plugin's environment — so aws eks get-token behaves exactly as it would under
aws-vault exec <profile> -- ....
- Secrets live in memory only. They are never written to disk and never logged.
- The on-disk store (under your user config directory) holds the provider and profile names only — never credential values.
Klustr re-captures credentials about five minutes before they expire and rebuilds the context's clients automatically (the exec authenticator snapshots its environment, so a refresh needs fresh clients). If a refresh fails, you'll get an error toast with a Retry action.
- Still can't authenticate from the Dock, but it works from a terminal. Confirm
the helper binary is on the
PATHyour login shell exports (Layer 1 uses$SHELL -ilc). If you keep tools in a non-standard directory, make sure your shell rc adds it toPATH. - Keychain prompt keeps appearing. That's aws-vault unlocking its backend; it's expected on first capture and after the backend locks.
- Wrong profile picked. Re-open Connections → Credential helpers and change the mapping; the kubeconfig hint is only a default.
Other providers (granted, saml2aws, …) can slot in beside aws-vault in the future — the provider interface is generic.