Muxly v0.3.0 Stream mode · Profiles · Command palette

Local command center

Every dev process.
One window.

Muxly replaces a sprawl of terminal windows with one surface — services on the left, live logs in the centre, controls on the right. Define your dev servers, watchers, and scripts once, then run the whole stack from a single window.

Windows · source-available
Muxly · by diethos

the app

One surface for the whole stack.

Services and their status on the left, live terminal panes in the centre, the focused service's details and actions on the right.

screenshot screenshots/overview.png Full three-pane window with several services running — sidebar status dots, two split log panes, details inspector.
Muxly main window

The full window — sidebar, split terminal panes, and the details inspector.

the problem → the fix

Six terminals. One window.

Most dev workflows fan out into a mess of tabs: a dev server here, a watcher there, a queue worker behind it, a Docker stack underneath. Muxly defines them once and runs the whole set from a single surface.

// before

web · npm run dev
api · pnpm dev
worker · python worker.py
db · docker compose up
docs · npm run docs
tests · vitest --watch

// after

Start, stop, and watch every service from one window. Opt-in auto-restart brings crashed services back, logs stay searchable across all of them, and child processes die with their parent — no orphans, no zombie ports.

features

Built for juggling processes.

New in 0.3 the latest additions — read the release notes →
  • Stream modeOne command masks the names of services you mark sensitive — across the sidebar, pane headers, and search — so the window is safe to screen-share or record.
  • ProfilesGroup services into named profiles (Day job, Personal) and switch the view to one at a time. Hidden services keep running.
  • Interactive panesRun dev servers in a real pseudo-terminal and type straight into the pane — answer Vite's r·u·q prompts and drive other CLIs in place.
  • Port-conflict recovery"Port in use" → kill the offending process and restart, or adopt the running instance as the service. One click, either way.
  • Command paletteCtrl/Cmd+P runs named actions — toggles, new service, new profile, Stream mode — without leaving the keyboard.
  • Auto-roll busy portsMake a port a preference: if it's taken, Muxly starts on the next free one and injects it as PORT so the two never disagree.
  • Pre-run preludeRun a setup command in the same shell first — nvm use, source .venv/bin/activate, npm ci — before the service starts.
  • Built-in shellA drawer with a real interactive shell (Ctrl/Cmd+↓) for ad-hoc commands without leaving the app.
The foundation there since day one
  • Split viewOpen services side by side in resizable terminal panes, each with its own controls.
  • Live logsReal stdout / stderr with ANSI colour, per-line timestamps, and clickable URLs — searchable across every service.
  • Auto-restartCrash → respawn. Opt-in per service and capped per minute so a bad build never crash-loops.
  • Process-tree killStop a service and every child dies with it. No orphans, no zombie ports.
  • One-click importScan a repo's package.json scripts and Procfile — long-running ones pre-selected.
  • Run historyTotal runs, failures, and timing — persisted in SQLite across sessions.
  • Live config reloadEdit services.json from anywhere — an editor, a script, an AI agent — and Muxly picks it up instantly.
  • Custom icons & groupsEmoji, built-in, or image icons and drag-reorderable groups keep larger workspaces easy to scan.

safe to share

Screen-share without leaking names.

Mark the services that carry client or internal names as sensitive, then flip on Stream mode from the command palette. Names are masked everywhere at once; icons stay so you can still navigate.

screenshot screenshots/stream-off.png Sidebar with real service names visible.
Stream mode off

Stream mode off — real names.

screenshot screenshots/stream-on.png Same sidebar with names masked to their last few characters.
Stream mode on

Stream mode on — masked, safe to share.

# built with tauri · react · xterm.js github.com/dmelim/muxly // PolyForm Noncommercial 1.0.0

Muxly · by diethos