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
| Keys | Action |
|---|---|
| Space | Pause or resume |
| F | Follow |
| W | Wrap lines |
| T | Timestamps |
| P | Previous container instance (--previous) |
| ShiftJ | Cycle JSON: raw, inline, pretty |
Filter and search
- 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.
| Keys | Action |
|---|---|
| /orCtrlF | Search |
| M | Filter to matches |
| NorShiftN | Next / previous match |
| AltCtrlX | Toggle regex |
| AltCtrlC | Toggle case-sensitive |
| GGorHome | Top |
| ShiftGorEnd | Bottom |
| CtrlR | Restart the stream |
Copy and download
| Keys | Action |
|---|---|
| CtrlC | Copy the selection |
| CtrlShiftC | Copy the visible lines |
| CtrlS | Download the visible lines |
| CtrlShiftS | Download 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.