docktui is a terminal-first Docker management TUI built with Go and the Charm stack (Bubble Tea, Bubbles, Lipgloss).
It is designed as a lightweight alternative to Docker Desktop for developers who prefer keyboard-driven workflows.
docktui provides a unified terminal interface to:
- monitor containers with live CPU/memory/network stats
- inspect container details in a multi-panel view
- stream and filter logs
- run container actions (stop/restart/pause/remove)
- manage images, volumes, networks, and compose stacks
- run non-TUI helper commands (
ps,logs,images,stop,restart,prune)
- 5-tab interface: containers, images, volumes, networks, compose
- Live container stats: periodic stats stream and table updates
- Container detail view: overview + env/mounts/ports/stats panels
- Logs overlay: full-screen logs with follow/search/level controls
- Exec shell: jump into a container shell from the TUI flow
- Compose operations: detect stacks, then up/down/restart
- CLI mode: quick command usage without launching TUI
Main containers tab:
Detail view (overview with stats/ports):
- Start TUI and manage everything from one place:
./docktui
- Quick container list:
./docktui ps -a
- Tail logs from CLI:
./docktui logs <container-id-or-name>
- Go 1.22+ (project currently builds with newer Go too)
- Docker Engine running locally
- Access to Docker socket (default:
unix:///var/run/docker.sock)
go mod tidy
go build -o docktui ./cmd/docktui/./docktui./docktui ps -a
./docktui logs <container>
./docktui images
./docktui stop <container>
./docktui restart <container>
./docktui prune--config <path>: custom config file path--socket <docker-socket>: override Docker socket--debug: enable debug logging
High-level layout:
cmd/docktui/main.go- Cobra entrypoint, TUI bootstrap, CLI subcommands
internal/config/- app config loading via Viper
internal/logger/- internal debug logger setup
internal/docker/- Docker SDK wrappers (containers, stats, logs, exec, images, volumes, networks, compose)
internal/watcher/- Docker event watcher commands
internal/ui/- Bubble Tea UI root model and tab models
internal/ui/msg/contains shared message/event typesinternal/ui/logs/contains log filtering/rendering/overlay logicinternal/ui/stats/contains stats bar rendering helpers
doc/- product/implementation planning notes
If you are extending behavior, start from internal/ui/model.go (root routing), then follow into the relevant tab model and matching internal/docker/* operation.

