DEV Community

Cover image for umux 1.6.2: ping me when you're stuck
Crystal Studio
Crystal Studio

Posted on

umux 1.6.2: ping me when you're stuck

umux is a free, open-source terminal workspace manager for Linux, Windows and macOS. One workspace per project, tabs inside it, and every tab splits into as many panels as you need. The feature the app is built around: umux reads the OSC 9;9, 99 and 777 escape sequences that AI CLIs like Claude Code emit when a long task finishes, and turns them into a desktop notification.

Landing: https://umux.pages.dev
GitHub: https://github.com/CrystalPlatforms/umux

v1.6.0 taught the app to ask which shell you use. v1.6.2 teaches it to notice when your agent stops mid-task and waits for you. The release hangs on one gap: until now the bell rang only at the finish line, and agents spend much of their time before it, parked on a permission prompt nobody announced.

The ping for waiting agents

umux tracks a status per panel: working, needs-attention, or nothing. The flip from working to needs-attention used to be a silent one. In 1.6.2 it rings the same bell a finished task does, under the same single Desktop notifications switch.

A gate keeps it to one ping per waiting session. Terminal UIs repaint on a cycle, and the flip can happen every ten seconds during a repaint. Without the gate you would get rung every ten seconds. With it you get rung once, and the next ping waits for a genuinely new wait.

Click through to the panel

A notification that tells you something happened is good. A notification that takes you there is better. The banner carries its workspace, tab and panel, and clicking it navigates straight to the panel the agent sits in. Linux hangs an Open action on the banner. macOS and Windows route a focus heuristic that stays valid for 60 seconds after the ping.

Quiet is an answer too

The end of a wait is not always announced. CLIs without completion escapes never say they are done; they stop talking. After you answer, a reply that streams and then goes quiet now drops the panel back to needs-attention after 10 seconds of silence, down from about 60.

Windows: folder lines go live

The sidebar's folder lines work on Windows now, live. Reading another process's working directory there means reading its PEB. And PowerShell never syncs its own process cwd when you cd, so umux chains a prompt hook that syncs the working directory and emits the OSC 9;9 report, without ever overwriting the prompt you see. cmd gets the same through a PROMPT override. The parser surfaces those reports with the byte stream untouched, and the sidebar folds a folder change in instantly, ahead of the 20-second snapshot. SSH panels ignore the reports: a remote path is not a local cwd.

A tooltip that answers in time

The ports tooltip on Windows used to spawn a PowerShell query per hover, about 0.6 seconds, and the answer landed after your cursor had left the row. It reads a Toolhelp32 snapshot now, about 10 ms. The answer arrives while you are still looking at it.

One more from daily use: a new tab inherits the folder of the tab you were on. SSH tabs and session restore keep their own rules.

The sidebar keeps its width

The honest list in the last post said drag-to-resize worked on macOS only. This release closes that line. The width persists across restarts on all three operating systems, saved on drag release and again 400 ms after the last move, because release events do not always arrive. A restored width clamps to the live window's limits.

Folder lines learned to merge in the same pass. With agent status on, every tab keeps its own line and its own chip. With agent status off, tabs sharing a folder share one line, drawn at the first of them. Lines without a folder never merge.

Small things

The app boots behind a splashscreen now, and the main window appears with a two-second beat so the splash is actually seen.

The numbers

The app-side diff is 26 files: about 2,600 lines added and 240 removed. The frontend suite sits at 739 passing tests, up from 700 at v1.6.1. The growth is mostly new suites: the waiting-ping gate and its decay, notification routing, folder-line merging, and the new-tab inheritance.

The honest list

Import from cmux still does not work on Windows. X11 sessions are untested; Wayland is the reference platform. Agent status took its biggest step in this release and still has edges to sand.

The installers: .deb, .AppImage and .rpm on Linux, a universal .dmg on macOS 11+, an NSIS installer on Windows 10+. MIT licensed, no accounts. The in-app updater picks 1.6.2 up on its own.

Landing: https://umux.pages.dev
GitHub: https://github.com/CrystalPlatforms/umux

Top comments (0)