NTM v1.18.3
Named Tmux Manager - Orchestrate AI coding agents in tmux sessions with beautiful TUI interfaces.
Quick Install
# One-liner install (Linux/macOS)
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/ntm/main/install.sh | bash -s -- --version=v1.18.3
# Homebrew (macOS/Linux)
brew install dicklesworthstone/tap/ntm
# Source build
git clone --branch v1.18.3 --depth 1 https://github.com/Dicklesworthstone/ntm.git
cd ntm && go install ./cmd/ntmShell Integration
Add to your shell rc file:
eval "$(ntm shell zsh)" # for zsh
eval "$(ntm shell bash)" # for bash
eval "$(ntm shell fish)" # for fishChangelog
Features
- 069fe4b: feat(agentmail): classify lock-list failures with a structured reason_code (#182) (@Dicklesworthstone)
- f825931: feat(codex): goal-lifecycle action commands (#165, #168, #169) (@Dicklesworthstone)
- c8a5018: feat(codex): ntm codex palette-state + pane-state classifier (#166) (@Dicklesworthstone)
- c474c37: feat(codex): ntm codex preflight goal-readiness classifier (#167) (@Dicklesworthstone)
- 507e613: feat(sessions): save/list/resume/archive tmux sessions with agent session state (#175) (@Dicklesworthstone)
- efbae6a: feat(spawn): surface persona prompt source per-pane in JSON output (@Dicklesworthstone)
Bug Fixes
- e963db7: fix(adopt): dedup by resolved pane ID so a pane can't be adopted twice (#170) (@Dicklesworthstone)
- f997a85: fix(assign): treat --agent any|all|* as "no provider filter" (@Dicklesworthstone)
- 2efe2ac: fix(assign): wire triage classifier into getAssignOutputEnhanced (@Dicklesworthstone)
- 74f9b60: fix(bv): is_actionable uses allow-list to truly match assign classifier (@Dicklesworthstone)
- 9353cd5: fix(bv): make is_actionable status-aware in convertRecommendation (@Dicklesworthstone)
- 692ae76: fix(ci): golangci-lint v2 module path; Dockerfile go 1.26 to match go.mod (@Dicklesworthstone)
- 418fbe6: fix(cli): gate session selector on stdin TTY + actionable no-session error (@Dicklesworthstone)
- 7d53359: fix(cli): pick a non-internal session as the no-session error example (@Dicklesworthstone)
- d60bba5: fix(codex): ground palette-state markers in Codex source, not guesses (#166) (@Dicklesworthstone)
- 4ec77ee: fix(codex): preflight captures visible screen, not deep scrollback (#173) (@Dicklesworthstone)
- a7ca841: fix(codex): tighten goal-action safety after fresh-eyes review (#165/#168) (@Dicklesworthstone)
- 122d517: fix(config): preserve global config when project overlay is invalid; docs for CLI discovery on non-login shells (@Dicklesworthstone)
- 25c9cf8: fix(handoff): simplify macOS prefix detection in ensureNoSymlinkComponents (@Dicklesworthstone)
- fe7ded5: fix(hooks): raise default pre-commit scan timeout 60s -> 120s (@Dicklesworthstone)
- 4bc644b: fix(lint): exclude noisy new linter rules; gofmt -s history.go (@Dicklesworthstone)
- 6c5b159: fix(persona): parse and apply reasoning_effort from personas.toml (#171) (@Dicklesworthstone)
- ece0cc4: fix(robot): emit real window index in dashboard agent address (#172) (@Dicklesworthstone)
- d5ca3b9: fix(robot): fail loud on untargetable interrupt/restart; emit real window index (#172 safe subset) (@Dicklesworthstone)
- 0e5fbcd: fix(robot): topology-aware pane addressing for multi-window sessions (#172) (@Dicklesworthstone)
- 2e7a5a2: fix(scanner): eliminate UBS stdout pipe teardown race via bounded writer (@Dicklesworthstone)
- 0e45f11: fix(sessions): match Claude Code's project-dir encoding exactly (collapse all non-alphanumerics) (@Dicklesworthstone)
- e68d9d7: fix(sessions): resume the right Claude session and launch rendered agent commands (#175) (@Dicklesworthstone)
- 2b82732: fix(spawn): poll for pane readiness on immediate-prompt path instead of fixed 200ms sleep (@Dicklesworthstone)
- 89811b9: fix(test): normalize macOS /var→/private/var symlink in path-comparison tests (@Dicklesworthstone)
- 28da0a1: fix(test): relax TestSpringAnimationOverhead target on CI/darwin (@Dicklesworthstone)
- 84df662: fix(test): round-2 macOS CI fallout — handoff symlink check, worktree git-list canonicalisation, robust HasChildAlive (@Dicklesworthstone)
- 1ae58e8: fix(tools): correct caam/cass dependency health probes (acfs#296) (@Dicklesworthstone)
- 6615dd7: fix(tui): force full clear+repaint on terminal resize (#186) (@Dicklesworthstone)
Documentation
- 30a8f7d: docs(skill): frame checkpoints as a routine cadence + Agent Mail outage boundary (@Dicklesworthstone)
Others
- 4bb2047: fix(adopt,robot): window-aware pane addressing; stop silently dropping panes (#170) (@Dicklesworthstone)
- 44dcb9e: flip [agent_mail].supervisor_enabled default to false and refuse port fallback (@Dicklesworthstone)
Full Changelog: v1.18.2...v1.18.3
Container Image: ghcr.io/dicklesworthstone/ntm:v1.18.3