Repository navigation
Version 0.29.0
New Features
- Reset Live Sessions. A Live pane created before the session host existed, or whose host has exited, keeps its own macOS permission identity, so a tool in it asks for the microphone again after every update and restarting agterm does not repair it. Agterm ▸ Reset Live Sessions… and
agtermctl zmx reset --forcereplace every such pane at once: the dialog says how many live sessions it resets, agterm quits and reopens itself with the same sessions and layout, and each captured command starts again where possible. Other work running in those sessions stops, and agent conversations may need to be resumed by hand. Sessions already under the host keep their processes. The reset runs only while Live sessions is both the configured and the launched mode, the marker is narrowed to panes that still match before anything is killed, and a partial reset posts a notification saying how many sessions it covered. The tree andzmx listread a pending reset and this launch's outcome back underliveReset#587 @umputun - step between open windows. Sessions, workspaces and panes had previous and next; windows did not, which left ⌘
or a script overwindow list.previous_windowandnext_windoware keyless keymap builtins, Navigate ▸ Previous Window and Next Window have matching palette rows, andagtermctl window go --to next|prev` does the same from the control API. The step walks the open windows in library order and wraps, so a closed window is not a stop on the way round; with fewer than two open windows the items disable and the command answers that there is no other open window #591 @umputun - a title-bar button for custom commands. Hidden by default and switched on in Settings ▸ Interface, it lists every
keymap.confcommand with its chord in a popover, the mouse form of Navigate ▸ Custom Commands. A row runs through the same modal gate as a palette pick and returns focus to the terminal. Once the file holds more than five commands, up to five of the most-run ones lead the popover above a separator; every run counts, whether by chord, palette or popover, and use changes only which commands sit on top, never their order. A secondcommandline with a name already taken is skipped with a diagnostic, since the name is the key a run count is stored under #582 #584 @umputun - choose when typing clears a blocked or completed status. Settings ▸ Agent Status ▸ Status reset picks between On first key, today's behaviour and the default, On Enter, which clears on a bare Return or keypad Enter only so a reply you started and walked away from keeps the glyph until you send it, and Disabled, which leaves the status to the agent's hooks and Clear Status. Esc and Ctrl-C still clear an
activeglyph in every mode.session typefollows the same setting, with a newline in the text counting as Return #585 @umputun - the attachment host in custom commands, and local launches from a remote session. A session attached with
agtermctl zmx attachreports a remote working directory, and a custom command, the scratch terminal, an overlay opened without--cwd, the quick terminal, a local split, Duplicate Session and a new session under the current-directory setting inherited it as if it were local. Custom commands now seeAGT_SESSION_HOST, the ssh destination the session was attached from and empty for a local session, whileAGT_SESSION_PWDkeeps the reported path. Those local launches keep an existing local directory at the reported path, which supports mirrored checkouts, and start in the local home directory otherwise #576 @umputun
Improved
- the environment reference states the
TERM_PROGRAM=agtermidentity, and documents theFORCE_HYPERLINK=1workaround for Claude Code, which prints links as plain URLs because agterm is missing from its terminal allowlist 9dd5294 @umputun - the session-host tests build their own socket client instead of copying
/usr/bin/nc, a copy of which is killed on exec on some macOS builds, seen on 26.0.1 with SIP enabled, soswift testpasses on such a Mac again #578 @p4elkin
Bug Fixes
- status sounds stalled typing in every session. Playback and the first lookup of a sound name both ran on the main thread, the one that delivers keystrokes, and a sound file on slow storage held it for seconds. Both now run on their own queues; cached names and the built-in sounds still answer at once, so an unknown name is still refused in the reply #579 #580 @umputun
- the quit alert warned that all running shells end while Live sessions mode leaves them running. It now follows the active launch mode and shows counts only in Live mode ce28343 @umputun
- the two-agent chat recipe refused to send to a Codex pane while Codex drew its idle animation, and a send with text in the composer failed because the animation kept drawing over typed characters. For the Codex pane only, animation rows count as blank and a particle stands for the cell it covers, so the prompt is found, typed text settles, and the body is verified once more before submit #588 @paskal
- the Homebrew cask seed carried a deprecated postflight block that Homebrew warns about on every install and a description
brew stylerejects. Both were fixed by hand in the tap and never came back here, so a reseed would have shipped them again c0b5a85 @umputun
Signed with a Developer ID certificate and notarized by Apple, so macOS Gatekeeper opens it with no extra steps. Apple Silicon (arm64) only, macOS 14 or later.
- Homebrew:
brew install --cask umputun/apps/agterm - Direct download: open the
.dmgand dragagterm.appinto/Applications.