If you run more than a couple of containers locally, you know the hassle. Countless terminal tabs, just to be able to rebuild your services and inspect the logs.
I built
Before building it, I searched for existing tools to see if one would fit my needs. Below is a feature comparison of every Docker TUI I could find which I deemed relevant for my development workflow.
Here's what I found:
The Tools
See the table below for a quick comparison. The table is followed by a short summary of which features each package has or doesn't have. The comparison is biased, as Recomposable ticks almost all the boxes, but that's because i've made it to solve my own specific docker development hassles.
How They Compare
| lazydocker | DockTUI | oxker | Cruise | DockMate | DockedUp | Pocker | dry | ctop | dcv | recomposable | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Language | Go | Python | Rust | Go | Go | Python | Python | Go | Go | Rust | Node.js |
| Compose-first | No | Yes | No | No | Partial | Yes | No | No | No | Yes | Yes |
| Rebuild | No | Limited | No | No | No | No | No | No | No | No | Yes |
| No-cache rebuild toggle | No | No | No | No | No | No | No | No | No | No | Yes |
| Dep-aware rebuild | No | No | No | No | No | No | No | No | No | No | Yes |
| Compose Watch | No | No | No | No | No | No | No | No | No | No | Yes |
| Log pattern scanning | No | No | No | No | No | No | No | No | No | No | Yes |
| Log search | No | Clipboard | No | No | No | No | Keyword filter | No | No | No | Yes (/, n/N) |
| CPU/Memory | ASCII graphs | Yes | Yes | No | Yes | Yes | Yes | No | Yes | No | Yes (color thresholds) |
| Port display | Yes | Yes | Yes | Yes | No | No | No | No | No | No | Yes |
| Vim keybindings | Partial | No | Custom | No | No | No | No | No | No | No | Full (j/k/gg/G) |
| Container exec | Yes | No | Yes | Yes | Yes | Yes | No | No | No | No | Yes (in-TUI) |
| Image/volume mgmt | Yes | No | No | Yes | No | No | Images | Yes | No | No | No |
| Zero dependencies | Single binary | Docker container | Single binary | Single binary | Single binary | pip | pipx | Single binary | Single binary | Single binary | Node.js (already on your machine) |
lazydocker
Actually built for Docker Compose specifically. Real-time CPU/memory dashboard, grouped by compose stacks. Interesting choice: it runs as a Docker container itself. Clipboard integration for copying log snippets. The downside is that it can't monitor remote daemons.
oxker
Go + Bubbletea. Containers, images, volumes, networks, logs, from one screen. Looks good too.
DockMate
Focused on monitoring. Auto-groups containers by docker-compose project. Color-coded status, health, CPU, and memory. Hotkeys for logs, restarts, shell access.
Pocker
One of the older tools in this space. Go-based. Covers Docker and Docker Swarm. Gives you inspect, history, logs, and the usual start/stop/remove. More of a Docker CLI replacement with a visual layer on top than a monitoring dashboard.
ctop
Minimal TUI viewer for docker-compose. Rust-based. Lightweight by design.
Where Recomposable Fits
Most of these tools are general Docker managers that happen to support compose. They're built for people who manage Docker infrastructure.
Recomposable is built for the developer workflow: you have one or more docker-compose.yml files, and you spend your day rebuilding services, restarting them and checking logs for errors. You occasionally look for port numbers and want to make sure your services don't take up too much CPU and memory. If this sounds recognizable, Recomposable will help you out.
Things it does that no package in the list does:
Rebuild with no-cache toggle. Press b to rebuild. Press n to toggle --no-cache --force-recreate on and off. Other tools only support restart. When your Dockerfile changes or a dependency breaks, restart doesn't help you. You need a clean rebuild.
Dependency-aware rebuild. Press d to rebuild a service and automatically restart everything that depends on it, in topological order. No more manually restarting five services because you changed a shared library.
Docker Compose Watch integration. Press w to toggle docker compose watch per service. Watch output streams to the bottom log panel. The service list shows a cyan W indicator next to watched services.
Log pattern scanning. It continuously scans logs across all your services and counts matches for configurable patterns (warnings, errors, whatever you care about). You see the counts right in the service list without opening any log view.
Full log view with search. Scrollable, full-screen, with / to search, n/N to jump between matches, and live auto-scroll when you're at the bottom.
| npm
SOCIAL SHARE CARD GENERATOR