ntm v1.22.1
Patch release. Raises the default reasoning effort for both Claude and Codex panes to xhigh.
Changes
DefaultCodexReasoningEffort was ultra; it is now xhigh. The Claude template previously emitted --effort only when an effort was explicitly supplied, so Claude panes ran at whatever the CLI's own default was and there was no way to raise the house default from config. It now mirrors the Codex template and defaults to a new DefaultClaudeReasoningEffort, also xhigh.
Both constants live together in internal/config/config.go, so the house default has one obvious place to change. This is what ACFS needed: it generates ~/.config/ntm/config.toml and had no key it could set for this. Expressing it from ACFS instead would have meant copying NTM's full command templates into that generated config — the duplicated-contract pattern that has already caused real drift bugs here.
Explicit efforts still win. An agent spec (--cod=1:model:effort), persona, or recipe value overrides the default exactly as before. Only the unset case changes.
Verified against the live CLIs
Both values were confirmed end-to-end rather than assumed:
claude --helpdocuments--effort <level>as(low, medium, high, xhigh, max).- Codex was checked by running a real session. A deliberately invalid value returns a 400 naming the enum:
Supported values are: 'none', 'minimal', 'low', 'medium', 'high', 'xhigh', and 'max'. A realxhighrun againstgpt-5.6-solcompleted normally.
Install
curl -fsSL https://raw.githubusercontent.com/Dicklesworthstone/ntm/main/install.sh | bashBuilt locally with CGO_ENABLED=0 (pure-Go modernc.org/sqlite), so every target cross-compiles reproducibly. Platforms: darwin_amd64, darwin_arm64, linux_amd64, linux_arm64, linux_armv7, freebsd_amd64, windows_amd64. Checksums in SHA256SUMS.