You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Native terminal adapters — strategy-pattern layer that picks the most precise channel each terminal offers
Apple Terminal / iTerm2 via AppleScript (tty of selected tab / tty of current session of current window)
kitty via kitten @ ls over its remote-control socket
WezTerm via wezterm cli list-clients + list
Ghostty continues on AXDocument cwd + process-tree heuristic
Warp falls through a descendant heuristic — limited because Warp does not yet expose tabs to the AX tree (tracked upstream as warpdotdev/warp#11160)
Settings polish — drag-and-drop reordering for App Rules and Terminal Rules (only the new grip column initiates a drag, so adjusting a popup never triggers an accidental reorder), centered checkbox / drag-handle cells, and an open-hand cursor on hover
Debug logging — toggle a persistent log at `~/Library/Logs/TermIMS/termims.log` from Settings → General → Debug, with a Clear button
macOS 15 deprecation fix — String(contentsOfFile:) now passes an explicit encoding
Behavioural fixes
Don't flap to ABC mid-cc-session: rule matching now scans every process on the focused tty (not just the foreground process group), so transient tool subprocesses (`bash`, `grep`, …) don't hide `claude`
Don't misclassify cc's spinner / summary titles as shell prompts in the Ghostty cwd-multi path
Detect cwd display in the title (basename / absolute / `~` / Ghostty's `…/` truncation) instead of any `/`, so titles like "Running zsh in ~/foo" don't misroute the cc tab
Subscribe to `kAXTitleChangedNotification` only where it carries signal (currently kitty) — Ghostty would otherwise re-resolve on every cc spinner frame
Multi-instance support: prefer the `isActive` running app and pass per-event PID to adapters so multiple kitty windows or WezTerm GUI clients route correctly
Tooling
Bundled `uninstall.sh` removes the app, launch agent (if any), UserDefaults, logs, and caches in one go — see the new "Uninstall" section in the README
README documents the full Terminal Support matrix, required Automation prompts, and the kitty config setup