sidekick-docker
v0.4.1
Published
Interactive Docker dashboard (TUI), plus scriptable ps, logs, images, volumes, networks, stats, df and inspect commands
Maintainers
Readme
Sidekick Docker CLI
A terminal dashboard for Docker. Manage containers, Compose projects, images, volumes, and networks — all from a single, keyboard-driven TUI. Includes scriptable ps, logs, images, volumes, networks, stats, df and inspect commands for non-interactive use.
Install
npm install -g sidekick-dockerPrerequisites: Node.js >= 22.12, Docker running.
Usage
# Launch the interactive dashboard
sidekick-docker
# List containers (non-interactive)
sidekick-docker ps
sidekick-docker ps --all
sidekick-docker ps --format json | jq # machine-readable output
sidekick-docker ps -q # container IDs only
# Stream container logs
sidekick-docker logs <container>
sidekick-docker logs <container> --no-follow --tail 50
# Inventory (all support --format json; images also supports -q)
sidekick-docker images
sidekick-docker volumes
sidekick-docker networks
# One-shot resource usage, like `docker stats --no-stream`
sidekick-docker stats
# Disk usage, including build cache — like `docker system df`
sidekick-docker df
# Raw inspect payload for a container (name, full ID, or ID prefix)
sidekick-docker inspect <container> | jq .State.HealthOptions
| Flag | Description |
|------|-------------|
| --socket <endpoint> | Docker endpoint: socket path, unix:// or tcp://host[:port] URL |
| --no-color | Disable colored output (also honors NO_COLOR / FORCE_COLOR) |
| --verbose | Show full error details |
| --version | Show version |
| --help | Show help |
Dashboard
The dashboard has 5 panels, each mapped to a number key:
| # | Panel | Shows | Detail Tabs | |---|-------|-------|-------------| | 1 | Containers | All containers with state, image, ports, uptime | Logs, Stats, Env, Config, Labels, Files, Patterns | | 2 | Services | Compose projects and their services | Info, Logs | | 3 | Images | Local images with tags, size, age | Info, Layers | | 4 | Volumes | Named volumes with driver, mount path, usage status | Info | | 5 | Networks | Docker networks with driver, scope, connected containers | Info |
Services show running/total replica counts. Lifecycle actions use the project's recorded Compose files in override order and report missing files before running.
Partial refresh failures retain the last successful resource data and identify the affected resources in the status bar. Refresh to try again.
When node-pty is unavailable, Exec temporarily hands the terminal to docker exec. Exit the shell with exit or Ctrl+D to return to the same dashboard selection and view. Ctrl+] detaches only from the embedded PTY session.
Keybindings
Navigation
| Key | Action |
|-----|--------|
| j / Down | Move down |
| k / Up | Move up |
| g | Jump to top |
| G | Jump to bottom (resumes log follow) |
| PgUp / PgDn | Page up / down |
| Ctrl+U / Ctrl+D | Half page up / down |
| Tab | Toggle focus between side list and detail pane |
| Enter / l / Right | Focus detail pane |
| Esc | Back to side list / close overlay / clear filter |
| h / Left | Back to side list (when in detail pane) |
Panels & Tabs
| Key | Action |
|-----|--------|
| 1-5 | Switch to panel |
| [ / ] | Cycle detail tab left / right |
Actions
| Key | Action |
|-----|--------|
| x | Open context menu (actions for selected item) |
| f | Open log filter (when on Logs tab) |
| / | Open filter |
| a | Toggle all/running containers (Containers panel) |
| o | Open sort menu (Containers panel) |
| R | Reverse sort direction (Containers panel) |
| m | Pin/unpin item for log comparison (Containers/Services) |
| J / K | Scroll compare pane (when in detail focus) |
| z | Cycle layout (Normal → Wide → Expanded) |
| ? | Show help overlay |
| V | Show version |
| q / Ctrl+C | Quit |
Container Actions (via context menu)
| Key | Action |
|-----|--------|
| s | Start |
| S | Stop |
| r | Restart |
| p / u | Pause / Unpause |
| d | Remove (with confirmation) |
| e | Exec into container |
| P | Prune — remove all stopped containers (with confirmation), reporting space reclaimed |
| c | Copy logs to clipboard |
Compose Actions (via context menu)
| Key | Action |
|-----|--------|
| u | Up (start project) |
| D | Down (stop project, with confirmation) |
| r | Restart |
| S | Stop |
| c | Copy logs to clipboard |
Mouse
Click to select items, switch panels/tabs, and press overlay buttons; right-click
opens the actions menu; wheel scrolls (scrolling up in logs pauses follow — jump
to the bottom or press G to resume).
Features
- Real-time log streaming — follows container logs with token-level syntax highlighting (HTTP methods, status codes, URLs, IPs, timestamps, JSON keys)
- Dual-log compare — pin a second container or service with
mto view both log streams side by side - Log search & filter — press
fon the Logs tab to search within log output with exact or fuzzy matching and match highlighting - Log analytics — severity count badges, severity sparkline over time, and pattern clustering that groups similar logs into templates with
<*>wildcards - Live stats with sparklines — CPU, memory, network I/O, block I/O, and log severity charted as inline sparklines (60-sample history)
- Filesystem inspector — view all filesystem changes inside containers (added/changed/deleted files)
- Image layer explorer — inspect image layer history with sizes and Dockerfile instructions
- Interactive exec — open a shell inside any running container
- Compose detection — automatically discovers projects from container labels, merges with compose file config
- Filter — press
/to filter any list by name - Confirmation modals — destructive actions always ask before executing
- Mouse support — click items to select, scroll to navigate
- Toast notifications — non-blocking feedback for actions
Configuration
Custom Docker Endpoint
--socket accepts a socket path, a unix:// URL, or a tcp://host[:port] URL (port defaults to 2375; TLS is used for https:// URLs or tcp:// on port 2376, while an explicit http:// stays plain HTTP):
sidekick-docker --socket /var/run/docker.sock
sidekick-docker --socket unix:///run/user/1000/docker.sock
sidekick-docker --socket tcp://192.168.1.100:2375When --socket is not given, the standard DOCKER_HOST environment variable is honored (including ssh:// endpoints), along with DOCKER_TLS_VERIFY and DOCKER_CERT_PATH:
DOCKER_HOST=tcp://192.168.1.100:2375 sidekick-docker ps
DOCKER_HOST=ssh://user@remote-host sidekick-dockerDocumentation
Full documentation is available at the docs site.
See Also
Sidekick Agent Hub — Multi-provider AI coding agent monitor. Real-time visibility into Claude Code, OpenCode, and Codex CLI sessions with token tracking, context management, and session intelligence. Available as a TUI on npm and a VS Code extension.
Contributing
Contributions are welcome! See CONTRIBUTING.md for setup instructions and guidelines.
