Skip to content

Releases: sofired/composemux

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 14 Sep 15:08
Immutable release. Only release title and notes can be modified.
307f6fa

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 of docker compose logs. When a container
    restarts under a new ID, composemux reattaches on its own.
  • Logs that render instead of smear — ANSI colour, \r progress 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 SSHc copies 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 | sh

Or, with a Rust toolchain (MSRV 1.88):

cargo install composemux

Prefer 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.