Multi-context & aggregated mode

June 15, 2026 · View on GitHub

Klustr can drive two or more contexts at once and present them as a single virtual cluster. This is useful for comparing environments, or for operating a fleet of clusters that share workloads.

Aggregated mode

On the Connections screen, check two or more contexts instead of one. When you connect:

  • Every list view fans out across all selected contexts and adds a Context column so you can tell rows apart.
  • Cluster overviews aggregate CPU / memory / pod counts across the whole set.
  • Detail dialogs, logs, exec and the rest operate on the specific context of the row you opened.

A single selected context behaves exactly as before — aggregation kicks in only at two or more.

Saved groups

A recurring multi-context selection can be saved as a named group with its own color:

  • Save the current selection as a group from the Connections screen.
  • Activate a saved group with one click — it sets the active context set in a single step.
  • Groups also appear at the top of the in-session context switcher dropdown, so you can jump between groups mid-session without returning to the Connections screen.

Per-context health

The status bar pings every active context roughly every 25 seconds (a /version call with a short timeout). Each context gets a dot:

  • green — healthy,
  • amber — slow ping,
  • red — failed; hover for the actual error.

Context tags and the color stripe

You can attach up to three colored tags to a context (and define your own tag colors). The top bar paints a thin stripe matching the context's primary tag — or the active group's color — so you always have a constant visual reminder of which environment you're touching.

Today the stripe (plus per-context read-only mode) is the main guardrail against running a destructive action on the wrong cluster, so it's worth tagging production distinctly.

Namespace selection across a set

The namespace filter is remembered per active-context set: a single cluster keeps its own filter, and each distinct multi-cluster set keeps its own. Namespaces that don't exist in a given context are simply ignored for that context.