Releases: sofired/composemux
Release list
v0.1.0
composemux v0.1.0
First public release.
Six services, one interleaved stream, and the stack trace you actually needed
has already scrolled off the top. docker compose logs -f shows you everything
at once and gives you no way to say "keep the API in front of me while I poke at
the others." composemux does exactly that one thing: your services down the
left with live status, and up to two log panes you can pin open.
Highlights
- See what each service is doing at a glance — a live list with running,
exited clean, exited non-zero, unhealthy, and paused states, plus health and
uptime columns. - Keep the ones that matter in front of you — pin one or two services to
output panes while you browse the rest. - Trust the statuses and exit codes — they're read straight from the Docker
Engine API, not scraped out ofdocker compose logs. When a container
restarts under a new ID, composemux reattaches on its own. - Logs that render instead of smear — ANSI colour,
\rprogress bars, and
forty-line Java stack traces all pass through a vt100 emulator first, so they
behave. (It's also a safety property: untrusted container output never reaches
your terminal verbatim.) - Copy that survives SSH —
ccopies the focused pane via OSC 52, so it
works even when composemux is running on a remote box with nothing installed
at that end. - Sensible behaviour when nobody's watching — piped or in CI, it drops the
UI and streams plain prefixed lines instead of a screenful of escape codes.
Read-only, on purpose
composemux attaches to containers something else already started and never
starts, stops, restarts, or execs into anything. That's the deliberate
differentiator: it's safe to drop into the middle of a script that owns
compose up and compose down. It reports clean exit codes (0 on a
deliberate quit or a clean stack exit, 130 on ctrl+c, non-zero on any
error), restores your terminal on every exit path, and gets out of the way
once every service has exited cleanly — so a wrapper can block on it and tear
down afterward.
Install
On Linux or Apple Silicon macOS:
curl -fsSL https://raw.githubusercontent.com/sofired/composemux/main/install.sh | shOr, with a Rust toolchain (MSRV 1.88):
cargo install composemuxPrefer a file you can check first? Prebuilt archives are attached to this
release — Linux x86-64 (gnu and musl), Linux aarch64 (gnu), Apple Silicon
macOS, and Windows x86-64 — each with a matching .sha256.
Known limitation
A tty: true service that writes without a trailing newline can look stalled;
set tty: false and it streams as it should. The mechanism is upstream, in how
Docker frames tty log output —
#38 has the detail.
More
The README has the screencast,
the full key map, the .composemux.yaml config, and the script-integration
contract.
composemux's terminal UI — its layout, pinning model, colours, and keys — is
adapted from the Nx terminal UI, which
is MIT licensed and copyright 2017-2026 Narwhal Technologies Inc. composemux is
an independent project, not affiliated with, endorsed by, or sponsored by
Nrwl / Nx.
MIT licensed.