changelog & roadmap

Changelog & roadmap

Release notes for k4s and the public list of what's coming next. For background on the project see the FAQ or the home page.

history

Version timeline

2026-08-26

v1.1.3 — multi-pod logs: container fallback + distinct pod colours

  • per-pod container fallback — when a service selector also matches pods from other workloads (cronjobs sharing a label), those pods stream their own first container instead of dying with container X is not valid for pod Y
  • pod colours assigned by position from a hue-separated palette — neighbouring replicas never share a hue family (no more yellow-next-to-orange)
  • release notes →
2026-08-25

v1.1.2 — stability pass: time-merged multi-pod logs

  • multi-pod log history merged by timestamp — the --tail burst from several pods is sorted across pods instead of arriving pod-by-pod
  • dashboard stats via parallel Limit: 1 count queries — no more full-object fetches every 5s; per-resource error isolation
  • port-forward: service forwards resolve targetPort, context switch frees local ports, 15s SPDY upgrade timeout
  • exec passes the selected --context; list views gain busy-guard + generation fencing; footer errors auto-clear; cursor blink fixed
  • deps: Go 1.26.7, k8s.io/* v0.36.4
  • release notes →
2026-05-11

v1.1.1 — logs from :svc

  • l on a service tails every backing pod — same flow as :deploy
  • resolves via the service's label selector; container picker if > 1 container
  • selector-less services (headless / ExternalName) silently no-op
  • release notes →
2026-05-11

v1.1.0 — port-forward + logs UX

  • port-forward with persisted intentsf in services / pods / deployments opens an SPDY tunnel; ~/.local/state/k4s/portforwards.json remembers every forward; restore popup on next launch
  • logs UX overhaul — drain-batch render fixes the --tail=5000 slow-scroll; soft-wrap on w; horizontal scroll on /
  • smart default local port (80 → 8080, 443 → 8443); pre-check net.Listen with friendly bind errors
  • kubectl stderr captured into a buffer instead of smearing the TUI
  • release notes →
2026-05-08

v1.0.0 — full rewrite

  • ground-up rewrite — new architecture, new design language
  • kubeconfig auto-detected from ~/.kube/config (no flags needed)
  • Action abstraction with kubectl footer hints on every keystroke
  • multi-pod log streaming with FNV per-pod colour tags
  • live / filter, help popup on ?, context switcher (:ctx)
  • describe view with events · top via metrics.k8s.io
  • Bubble Tea + client-go v0.36 · MIT licensed
2025

v0.1.0 → v0.5.0 — original CLI/TUI

  • first iteration of the project, retired and replaced by the v1.0 rewrite
  • some features (e.g. in-pod shell on k3s) are temporarily missing in v1.0 — see roadmap below

roadmap

Coming next.

In rough order. Issues welcome on GitHub.

In-pod shell on k3s

Drop into a container without kubectl exec — via crictl against the k3s containerd socket. Returning from v0.5.

Resource actions

Delete pod, scale deployment, rollout restart.

YAML view

Raw manifest with chroma syntax highlighting.

Events view

Cluster-wide and per-resource events stream.

ConfigMaps & Secrets

Read-only list views first.

Subscribe to GitHub Releases

For machine-readable changelogs:

Atom feed

Try k4s now.

Single binary. No daemon. Works on any cluster reachable through kubeconfig.

go install github.com/LywwKkA-aD/k4s/cmd/k4s@latest