Repository navigation
Version 0.30.0
New Features
- event hooks.
hooks.conf, next tokeymap.conf, runs a command for matching control events with oneon <kind> <command>line per hook, so a script reacts to status changes, notifications, sessions and the tree without a subscriber process of its own. The command runs through/bin/sh -cwith the event JSON on stdin and the event and its target inAGT_*environment variables; the docs list the kinds and variables. Events queue in order while a hook is still running, andagtermctl hooks listshows failures and dropped events.statusevents now carryprevious, and two new kinds,pane.splitandpane.scratch, fire when a split or scratch pane is shown or hidden. File ▸ Edit Hooks… opens the file in an overlay and reloads it on close, and Reload Hooks andagtermctl hooks reloadreload it. A hook that emits an event of its own kind can keep triggering itself, and nothing detects that loop #607 @umputun - remote.opened and remote.closed events. A session created by
zmx attachemits them besidesession.createdandsession.closed, with the ssh destination ashost,AGT_EVENT_HOSTin a hook andhost=on the humanagtermctl eventsline. They follow the local row, not the ssh connection: a soft close emitsremote.closed, undo emitsremote.opened, and closing only the split emits neither #610 @umputun - agtermctl terminfo install.
agtermctl terminfo install DESTINATIONcopies the bundledxterm-ghosttyentry into the remote account's~/.terminfoover one ssh connection, the fix forless,vimorapton that host warning that the terminal is not fully functional. It passes only-p,-i,-Jand-Fto ssh, shows ssh's own password and host-key prompts, and exits 3 when the host has notic. Nothing runs automatically andsshstays the realssh#609 @umputun #605 - attention list across every open window. ⌃⇧I and the title-bar bell list non-idle sessions from every open window in one blocked, active, completed order, with the window name in each row's subtitle once more than one window is open. Picking a session in another window raises that window first; a blocked or completed session reveals the pane that set its status. Rows for a closed or covered window, or a removed session, are disabled, and the bell popover scrolls past about ten rows. The Dock menu and ⌃⌥↑/↓ stay scoped to one window #596 @umputun
- workspace name in the title bar. A Workspace name toggle in Settings ▸ Interface, off by default, puts the active session's workspace in front of the identity as
workspace — session — window, cut to 24 characters, so the bar says where a session lives while the sidebar is collapsed #601 @umputun #598 - pick --select.
agtermctl pick --select IDopens the picker with that item highlighted and scrolled into view, so a picker of windows or sessions can start on the current one and Return on an untouched list stays put. A--querythat filters the item out leaves the first visible row highlighted, and an id that names no supplied item refuses the open #597 @umputun - AGT_PANE_ID for custom commands.
{AGT_PANE_ID}and$AGT_PANE_IDcarry the stable token of the pane a command fired in, the value its shell holds asAGTERM_PANE_ID, so a command keeps addressing the same terminal with--pane-idafter a swap or promotion changed whatAGT_PANEreports. A chord pressed in an overlay gets the covered pane's token, and a launcher fired with no session gets an empty value #603 @umputun
Improved
- the bundled zmx moves to v0.8.1. A Live session answers terminal identification queries again once the last terminal detaches, where the old build stopped answering after the first attach and a query sent before a responding terminal attached could time out. Scrollback rises to 10,000 lines. A Live session started by an older agterm keeps its running zmx, and with it the old behaviour, until that session is recreated; attaching to it still works #604 @umputun
docs/troubleshooting.mdcovers an Accessibility grant made for an older build, where tools are denied while Settings still shows agterm enabled, with the reset and re-grant steps. The bundled agent skill can check the stored grant against the running binary 566449f @umputun- two cookbook recipes.
window-switcherjumps to a window by its number in library order, closed windows included, or picks one from a native picker showing each window's blocked and completed sessions #599 #600 @anadale.long-commands-statuswraps a shell command inagst, which sets the session's status to active while it runs and to completed or blocked when it exits #608 @Rulexec
Bug Fixes
- the Interface and Agent Status tabs in Settings overflowed their fixed frame and scrolled after 0.29.0 added controls to both. The window is taller and the Typing hint is gone #593 @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.