Skip to content
Docs · Documentation

Using Kubyl

Logs

Follow logs from pods, workloads and services with search and level filters.

Press L on a pod, a workload (Deployment, StatefulSet, DaemonSet, ReplicaSet, Job) or a Service. For workloads and services Kubyl streams every pod of the selector, and you can edit the label selector in the view. Pods that join or leave are picked up live.

Containers

The container picker offers All containers or a single one. Enable Include init or ephemeral containers to add those.

Several pods at once

The initial backlog of all containers is merged by timestamp before live lines start, so the lines of different pods interleave in order. Each pod has a chip. A pod that is deleted leaves a marker row and its chip is dimmed and struck through, and a replacement joins when its containers start. Containers of finished pods end with "exited with code 0" instead of reconnecting. The selector is built from matchLabels and matchExpressions. Timestamps are always requested and split off the text, so level detection and JSON work with timestamps shown, and a reconnect resumes where it stopped without duplicate lines.

Where to start

The Since menu starts the stream at the last 100, 1,000 or 10,000 lines, the last 5, 15 or 60 minutes or 6 or 24 hours, everything, or Since a time… (local time such as 10:42 or 2026-09-25 10:42, or RFC 3339). logs.tail_lines sets the default (1000).

Toggles

KeysAction
SpacePause or resume
FFollow
WWrap lines
TTimestamps
PPrevious container instance (--previous)
ShiftJCycle JSON: raw, inline, pretty
  • Level chips with counts from TRACE to FATAL plus unknown. Levels are detected from JSON, logfmt, klog and plain text, and stack-trace lines take the level of the line above.
  • JSON fields are clickable to filter on them.
  • Search with regex and case-sensitivity options and a match counter such as *2 of 27*. Filter to matches hides everything else.
KeysAction
/orCtrlFSearch
MFilter to matches
NorShiftNNext / previous match
AltCtrlXToggle regex
AltCtrlCToggle case-sensitive
GGorHomeTop
ShiftGorEndBottom
CtrlRRestart the stream

Copy and download

KeysAction
CtrlCCopy the selection
CtrlShiftCCopy the visible lines
CtrlSDownload the visible lines
CtrlShiftSDownload the full log

Downloads go to your Downloads folder by default.

Clicking a row selects it, Shift-click extends the selection. With wrapping off, long lines scroll sideways with a horizontal scrollbar. Lines longer than 64 KiB are cut. Other views open logs with a filter, for example an Argo CD application's Controller logs tab and a Flux object's controller logs.

Reliability

Each stream reconnects with backoff, a Restart button is always there, and a Jump to newest chip appears when you scroll away from the tail. Kubyl keeps up to logs.ring_buffer_lines (100,000) lines per view. Log contents are never written to disk.

Something missing or wrong? Open an issue on GitHub.