Usage#
Creating a new Kubernetes Exec connection#
Open Tabby and choose New tab → Kubernetes Exec.
Fill in the profile settings:
Field |
Description |
|---|---|
Kubeconfig Path |
Path to the kubeconfig file. Defaults to |
Context |
Kubeconfig context to use. Populated from the local kubeconfig file
(no cluster connection needed for this one); leave unset to use the
file’s |
Namespace |
Namespace containing the target pod. Click Refresh to list namespaces from the cluster using the selected context. |
Pod |
Pod to exec into. Click Refresh to list pods in the selected
namespace; each entry shows its current phase, e.g. |
Container |
Container within the pod. Auto-selected if the pod has exactly one
container; otherwise pick one from the pod’s actual
|
Command |
Shell or command to run on connect. Defaults to |
Shell fallback |
Only shown when Command is |
Note
Selecting a context does not automatically load its namespaces — click the Refresh button next to Namespace explicitly. This avoids firing off a cluster API call every time you’re just browsing contexts.
Save the profile and connect.
Note
If the selected pod isn’t actually running (already exited, crashed, still pending, …), the plugin detects this before attempting to connect and shows a clear message naming the pod’s current phase, instead of a raw transport error. See Troubleshooting & FAQ.
What happens behind the scenes#
Kubeconfig load — the selected kubeconfig file and context are parsed, and credentials are resolved using the same logic
kubectluses (static token, client certificate, or anexec-based auth plugin).Pod status check — the target pod’s phase is read once via the Kubernetes API before connecting.
Exec — an interactive session is opened directly against the cluster’s exec WebSocket endpoint (the
pods/execsubresource), running the configured command with a TTY attached.I/O — terminal input/output, resizing, and teardown are all driven over that same WebSocket — no local
kubectlprocess is involved at any point.
See Architecture for how these stages map onto the plugin’s source files.
Tab recovery#
If Tabby restarts (or you quit and reopen it), any kube-exec tabs that were open get reopened automatically and reconnect to the same pod, with the terminal scrollback restored. No manual reconnection is needed.
Development workflow#
If you are working on the plugin itself (see Installation), you can iterate with:
npm run watch # rebuild on file change
npm run install-plugin # then restart Tabby
Open Tabby’s developer console (View → Toggle Developer Tools) to see the plugin’s log output while you work.