DEV Community

Cover image for Every Docker Compose TUI I Could Find (And Why I Built My Own)
Jan van Dorth
Jan van Dorth

Posted on

Every Docker Compose TUI I Could Find (And Why I Built My Own)

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

github.com/dialmaster/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

github.com/mrjackwills/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

github.com/shubh-io/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

github.com/pommee/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

github.com/moncho/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

github.com/bcicen/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

github.com/tokuhirom/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
Enter fullscreen mode Exit fullscreen mode

Then cd into a directory with a docker-compose.yml and run recomposable. Done.

GitHub | npm

Top comments (6)

Collapse
 
devflex-pro profile image
Pavel Sanikovich

very nice, but not all perfect for light theme)

Collapse
 
janvandorth profile image
Jan van Dorth

Thanks for noticing! Will fix that today

Collapse
 
janvandorth profile image
Jan van Dorth

@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!

Collapse
 
devflex-pro profile image
Pavel Sanikovich

Awesome, will try Recomposable today)

Collapse
 
devflex-pro profile image
Pavel Sanikovich

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.