A fast, keyboard-driven TUI for tailing logs from files, Docker, Kubernetes, and SSH servers.
cargo install barklog
# Opens picker to select containers
barklog
# Or specify sources directly
barklog /var/log/syslog
barklog --docker nginx
barklog --k8s my-pod -n productionSources - Tail logs from local files, Docker containers, Kubernetes pods, or remote files via SSH. Mix and match multiple sources into a single merged view.
Filtering - Type / to filter with live preview. Supports substring and regex modes. Filter history with ↑/↓.
Navigation - Vim-style keys (j/k, g/G, Ctrl+u/Ctrl+d). Click lines to select, y to yank to clipboard.
Split View - Ctrl+W,v for vertical split, Ctrl+W,s for horizontal. Each pane has independent filters and scroll.
Display Options - JSON pretty-printing (J), relative timestamps (t), line numbers (#), line wrap (w), log level coloring (c).
11 Themes - default, dracula, nord, gruvbox, catppuccin, tokyo_night, solarized, matrix, cyber, kawaii, monochrome.
# From crates.io
cargo install barklog
# From source
git clone https://github.com/lance0/barklog.git
cd barklog && cargo build --releasePre-built binaries available at GitHub Releases.
# Auto-discovery (opens picker)
barklog # Discover Docker containers
barklog --docker # Discover all Docker containers
barklog --k8s # Discover all Kubernetes pods
barklog --all # Discover all sources
# Direct sources
barklog /var/log/syslog
barklog --docker nginx
barklog --k8s my-pod
barklog --k8s my-pod -n namespace -c container
barklog --ssh user@host /var/log/app.log
# Multiple sources (merged timeline)
barklog --docker nginx --docker redis
barklog /var/log/app.log --docker nginx| Key | Action |
|---|---|
j/k |
Scroll down/up |
g/G |
Top/bottom |
Ctrl+u/Ctrl+d |
Half page up/down |
/ |
Filter (regex with r) |
n/N |
Next/prev match |
m |
Toggle bookmark |
[/] |
Prev/next bookmark |
y |
Yank line to clipboard |
p |
Pause/resume follow |
? |
Help overlay |
q |
Quit |
| Key | Action |
|---|---|
Ctrl+W,v |
Vertical split |
Ctrl+W,s |
Horizontal split |
Ctrl+W,q |
Close pane |
Ctrl+W,w |
Cycle panes |
Tab |
Cycle focus |
| Key | Toggle |
|---|---|
w |
Line wrap |
c |
Level colors |
t |
Relative time |
J |
JSON pretty-print |
# |
Line numbers |
b |
Side panel |
S |
Settings |
| Key | Action |
|---|---|
D |
Docker picker |
K |
Kubernetes picker |
In picker: j/k navigate, Space toggle, Enter confirm.
~/.config/barklog/config.toml:
max_lines = 10000
level_colors = true
line_wrap = false
show_side_panel = true
export_dir = "/tmp"
theme = "default"Environment variables override config: BARK_MAX_LINES, BARK_THEME, BARK_LEVEL_COLORS, etc.
- Rust 1.85+
- Docker:
dockerCLI (for container logs) - Kubernetes:
kubectlconfigured (for pod logs) - SSH: Key-based auth recommended
Docker not working? Check docker ps works and container exists.
K8s not working? Verify kubectl cluster-info and pod exists in namespace.
SSH not working? Ensure key auth works: ssh user@host "tail -1 /path/to/log"
High memory? Reduce buffer: BARK_MAX_LINES=5000
MIT OR Apache-2.0
