Repository navigation
Version 0.23.0
New Features
- splits can run top and bottom, not only side by side.
⌘⇧Dsplits horizontally and⌘Dkeeps the vertical one, each action creating, revealing, hiding or transposing as needed, so a live split changes orientation without recreating either terminal.session.splitandagtermctltake an optionalvertical/horizontalaxis,top/bottomjoinleft/rightas pane aliases, and the axis survives restore. Dashboard moves to⌘⇧G#427 @umputun - Close Split tears a split pane down, from the palette and as
session.split.close. ⌘D only hid one:hasSplitstayed set and the shell behind it stayed alive, so the only teardown was typingexitin the pane, which does nothing for a shell inside docker, an ssh or an agent sitting past a prompt. The palette row shows whenever a split exists, so a hidden pane is reachable #421 @umputun - a
maporcommandline inkeymap.confcan carry several alternative keybinds separated by|, so a mac-native chord and a tmux-style leader sequence can both reach one action instead of forcing a choice. It also gives built-in actions their first leader sequence: they dispatch as menu key equivalents andNSMenuItemholds exactly one character, so the parser used to reject one outright #420 @umputun
Improved
- a cookbook recipe listing the SQLite databases in the session's repo in the native picker, newest first with size and age, opening the pick in tabiew. Files are matched on the SQLite magic header rather than the extension, and dependency directories are pruned as a rule #426 @umputun
- a cookbook recipe listing the repo's
docs/backlogitems in the picker and handing the pick to Claude Code as/backlog <slug>, each row carrying the item's triage call, age and location #422 @umputun - a cookbook recipe opening the pane's selection, or its last 50 lines when nothing is selected, in revdiff inside an overlay, pasting the notes back at the prompt with each one quoting the line it hangs on. Where annotate-claude-replies reads Claude's own transcript, this reads the terminal, so it works on any agent, a stack trace or a
terraform plan#419 @umputun - README is a product synopsis again rather than the full reference, with the depth it carried moved onto the site's docs page #424 @umputun
Bug Fixes
- a session created while the display was asleep never started, so a scheduled job's
--commandnever ran althoughsession newhad already answeredok.ghostty_surface_newreturns NULL for as long as the display sleeps, measured at 21 consecutive failures over 40s with a valid backing size, and nothing re-attempted, because the deck's retries ride SwiftUI layout and that does not run for an off-display window. Creation retries on display wake now, andtreereportsrealizedper session #417 @umputun session.paste,session.selectallandsession.copyanswered as though they had acted when the target pane had no terminal behind it, the state a session sits in while the display sleeps. All three checked only that the surface slot was filled, which a parked view passes, so a script branching on the error text took the wrong branch or believed a paste that never happened. All three reportsession not realizednow #425 @umputun- a second instance resolving the same socket path took the running app's control socket for good, and only a restart recovered it. Ownership is an exclusive
flocknow rather than the unconditional unlink beforebind, and a refused instance advertises<socket>.unavailable, so the shells it spawns cannot reach the owner's terminal #418 @umputun - a tool capturing system audio inside a session got silence and no permission prompt. Core Audio process taps go through TCC's audio-capture service, macOS holds agterm responsible for whatever it spawns, and the Info.plist carried no
NSAudioCaptureUsageDescription, sotccdrefused to prompt and left nothing to grant by hand in System Settings either #432 @umputun - the Install Agent Status Hooks alert could grow past the bottom of the screen, taking its OK button with it,
NSAlertsizing itself to fit text it will not scroll. The two Codex manual-merge cases embedded the full 29-line hooks block; every outcome is one short sentence now, with an Open Docs button where the printed steps used to be #430 @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.