← Changelog
v0.24.0August 24, 2026

kubectl Command Compatibility

This release closes the loop between Zapkube and kubectl in both directions — copy any UI action out as the exact command, or drive the UI from CLI verbs you already know.

Copy kubectl command

📋 Copy the equivalent kubectl command

  • ⌘C anywhere copies the kubectl command for what you're looking at — a resource page, an action dialog, the Logs tab, port-forwards, exec/debug — so you always have the exact CLI equivalent of what the UI just did.
  • Action dialogs copy the command they'll actually run: delete, scale, restart, and expand-storage dialogs each expose their real kubectl invocation, not an approximation.
  • Logs commands account for multi-container and multi-pod selections, tailing every selected container and pod in one copied command.
  • Port-forwards can be copied individually, one kubectl command per forwarded port.

🖥️ CLI verbs: describe, logs, edit, delete

  • zapkube logs, edit, delete, and describe now work like their kubectl counterparts, each opening the matching view in the app: logs jumps to the Logs tab, edit to the YAML tab, delete to the resource page with the confirmation dialog open, and describe behaves like get since the resource page already is the description.
  • Accepts the same argument shapes as kubectl<type> <name>, <type>/<name>, and for logs, a bare pod name.
  • -c now means --container, matching kubectl, instead of being a shorthand for --context.

✨ Also in this release

  • Ingress and HTTPRoute hostnames are clickable, opening the resource's actual scheme (https when TLS applies, including wildcard certs) directly from the table or overview.
  • Namespace overviews show status conditions, matching what other resource types already surface.

🐛 Fixes

  • CRD printer columns backed by a scalar array (e.g. a list of strings) now render as a flattened, readable list instead of raw JSON.
  • The Logs tab seeds its container list only once the pod list has settled, avoiding a flash of the wrong container.
  • Deep links now preserve path escaping when translating between the CLI and the app, and only dispatch the action they were actually meant to trigger.

🧹 Misc / Chore

  • The CLI's argument handling was refactored into a single parse → resolve → validate → render pipeline, and kubectl command construction across exec, debug, and port-forward now shares the same helpers.