Kubyl merges all your kubeconfigs into one sidebar. You don't import anything: it watches the files and reloads them when they change.
Where clusters come from
~/.kube/config, when Load ~/.kube/config is on (kubernetes.load_default_kubeconfig, default on).- Every file in the
$KUBECONFIGpath list, for example~/.kube/a:~/.kube/b(kubernetes.load_kubeconfig_env, default on). - Extra files or folders you add (
kubernetes.kubeconfigs). A folder means every file in it. - A file dropped onto the window.
- Pasted YAML via Clusters: Paste Kubeconfig YAML…. It is saved to
kubeconfigs/in the config directory with mode 0600.
Use Clusters: Reload Kubeconfigs to force a reload. If two files define the same context name, Kubyl suffixes the later one with @<file-stem>.
Context grouping
Contexts in one file that differ only by namespace, the oc project pattern, are shown as a single cluster entry. This is on by default (kubernetes.group_contexts). Use Show Contexts Separately in a row's context menu to split one out, or Show as One Cluster to merge it again.
Connection state
A cluster connects when you expand it, switch to it or open a favorite. Kubyl then pings it every 30 seconds (kubernetes.health_check_interval). The status dot shows one of:
| State | Meaning |
|---|---|
| Disconnected | Not connected yet, or you disconnected it. |
| Connecting | Handshake in progress. |
| Connected | Healthy. The tooltip shows latency and server version. |
| Auth required | Credentials are missing or expired. Kubyl offers to sign in. |
| Unreachable | The API server doesn't answer. Kubyl retries with a countdown. |
| Forbidden | The server rejected your credentials' permissions. |
Kubyl also detects the distribution (EKS, GKE, AKS, OpenShift, k3s, RKE2, kind, minikube, Docker Desktop or plain Kubernetes) and uses it to enable the right features. Namespaces are watched, and if your account may not list namespaces you can name the ones to offer in kubernetes.contexts.<id>.namespaces.
The Clusters & Kubeconfigs tab
Open it with Clusters: Open Clusters & Kubeconfigs or Manage kubeconfigs… in the cluster switcher.
- Left: your kubeconfig sources, New… and Add buttons, a drop zone and the toggles for
~/.kube/config,$KUBECONFIGand One entry per cluster and user. - Right: a table of contexts and a card for the selected one. The card has Switch to, Connect or Disconnect, Sign in…, Edit context… and per-context settings.
| Per-context setting | Effect | Settings key |
|---|---|---|
| Production cluster | Red PROD badge and typed confirmations. See Production and read-only. | production |
| Read-only mode | Blocks mutating actions. | read_only |
| Hide context | Removes it from the sidebar. | hidden |
| Default namespace | Namespace selected when you switch to the cluster. | default_namespace |
| Color | Tints the cluster icon. Red, orange, yellow, green, cyan, blue, purple or gray. | color |
These live under kubernetes.contexts.<cluster-id> in settings.json. The cluster id is <context>@<kubeconfig path>. A TLS verification disabled warning appears on contexts that turn verification off.
Organising the sidebar
- Folders: click New group and drag clusters in, for example “Prod” and “Staging”. Right-click a folder to rename, reorder or delete it.
- Filter: the Filter kinds… box narrows the resource tree. Show connected clusters only hides idle clusters.
- Order:
explorer.cluster_orderisname(default) orconnected_first. - Favorites: star a namespace, or favorite any tab. A favorite is matched to its context by name, server and file, so it survives moving a kubeconfig. Right-click a favorite for Open Namespace Overview, Open Namespace Network Flows and Open Favorites Workspace, a merged multi-cluster table with a cluster column.
Proxies
HTTPS_PROXY, HTTP_PROXY and NO_PROXY (and SOCKS5) are honoured when connecting to clusters.