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 recomposable to fix this for my own workflow.
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
github.com/jesseduffield/lazydocker
40k+ GitHub stars. Written in Go. It's a general-purpose Docker manager: containers, images, volumes, networks. Has live logs, ASCII metric graphs, exec into containers, bulk commands. Docker Compose is supported but it's not the focus.
DockTUI
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
Rust + ratatui. Clean single-screen layout showing containers, logs, CPU, memory, and ports all at once. Customizable keymaps and color schemes. Sortable columns. About 900 stars. Doesn't try to do too much, but does it quite good.
Cruise
github.com/NucleoFusion/cruise
Go + Bubbletea. Containers, images, volumes, networks, logs, from one screen. Looks good too.
DockMate
Calls itself "htop for Docker". Go-based, zero-config. Single-keystroke actions: s to start, x to stop, r to restart, d to remove. Also supports Podman. Has compose lifecycle management.
DockedUp
github.com/anilrajrimal1/dockedup
Focused on monitoring. Auto-groups containers by docker-compose project. Color-coded status, health, CPU, and memory. Hotkeys for logs, restarts, shell access.
Pocker
Python + Textual. View containers and images, manage status, browse logs/env/stats. Has log keyword filtering. Install via pipx. If your stack is Python-heavy you might prefer this.
dry
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
Does one thing: real-time container resource metrics. Think top but for containers. CPU, memory, network, I/O. No compose awareness, log viewing nor container management. Good for when you just need a quick glance at resource usage.
dcv
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.

In-TUI container exec. Press e to open an inline exec panel in the bottom of the list view, or x for a full-screen command runner. cd works and the working directory is tracked across commands. Type commands, see output, navigate history with Up/Down. No need to leave the TUI or open another terminal.


What it for now doesn't do: manage images, volumes, networks, Swarm and Podman support. You can find the current issues in the repo. If you want to contribute by building this or any other feature, just submit a PR! Thanks in advance :)
Install
npm install -g recomposable
Then cd into a directory with a docker-compose.yml and run recomposable. Done.

Top comments (6)
very nice, but not all perfect for light theme)
Thanks for noticing! Will fix that today
@devflex-pro Just updated it, if you get the latest from npm (or github) it should adhere to the terminal theme. LMK if it still doesn't work!
Awesome, will try Recomposable today)
I’d like something similar to Hoppscotch, but in the terminal — a TUI for working with APIs, with solid WebSocket support, so it’s convenient for debugging and testing realtime interactions.
Some comments may only be visible to logged-in visitors. Sign in to view all comments.