Repository navigation
NMSh remains a terminal frontend around a real persistent zsh, Bash or Fish session. v0.18.0 turns the Context Engine into a module platform, adds Status Strip 2.0, runs Claude Code as a managed target inside NMSh, and delivers the first slices of /worktrees and a read-only /github workspace, along with a round of passthrough, tmux, transcript and Fish fixes.
Physical-terminal QA was not performed for this release. It passed the full automated CI gate, but none of the new surfaces or fixes has had a hands-on pass in Ghostty or Terminal.app. The physical QA checklist remains open as follow-up.
Highlights
- Context Engine platform: context is collected only for visible modules, by bounded capabilities with timeouts, cancellation and stale-while-revalidate caching, from the live shell's allowlisted environment. A first-party catalog (project, runtimes, mise/asdf/direnv, Terraform/Helm/Pulumi, AWS/GCP/Azure from local config, system, Git extras) ships as bundled declarative packs. Discovery never runs what it finds.
- Context Packs:
nmsh.context-pack/v1is strictly parsed data that cannot carry commands or code.nmsh packsinstalls, enables, disables and removes local packs with integrity checks and optional--sha256pinning. - Claude Code agent context:
nmsh agent-status setupapplies one reviewed change to Claude Code's status line so modules can show model, effort, context use and rate limits;removeundoes it. - Status Strip 2.0 and
/strip: Top or Bottom edge, Left/Center/Right groups, deterministic width fitting, Plain or Powerline styles, any module routable to the strip, and a Studio with previewed presets and undo./modulesopens the module manager directly. - Managed Claude Code (
/claude): launch profiles, a target shelf above the composer, and a full-height agent view. Tool permissions and AskUserQuestion prompts are answered in NMSh through Claude Code's structured interface, never by scraping a terminal. /mods: one keyboard-first inventory of portable mods, provider plugins, settings hooks and Context Packs, with execution and provenance records. Discovery reads files only./worktrees: list worktrees with their state, stagecdinto one, and create or remove worktrees only after an explicit plan; removal is never forced./github,/prs,/issues: a read-only PR and issue workspace through your ownghlogin: search, overview, checks, reviews, comments, files, diff and a merge preview. NMSh writes nothing to GitHub.- Terminal and shell: opt-in terminal title, Open in pager, Bash/Fish typo correction, and Theme Bridge colors that work on 16- and 8-color terminals.
Notable fixes
- Absolute executable paths (
/bin/zsh -c …,/usr/bin/env …) run in the shell instead of being refused as NMSh commands;/zshstill switches shells. /copycopies only the command's own output, never NMSh's completion row.- After
clearor tmux, fold rows no longer appear inside the next command's output; older saved transcripts are repaired when opened. - Fish no longer loses keys typed quickly around a
read. - Passthrough programs get their bytes exactly as written, and terminal queries they send before taking the screen reach the host.
- Inside tmux:
tmuxfrom the composer opens ordinary panes, the mouse wheel scrolls the transcript, and the cursor no longer jumps.
Security
- Escape sequences are removed whole on every NMSh display path, and retained control sequences are bounded (8 KiB parser, 1 MiB shell markers, 256-byte key decoder).
- Ctrl+C discards keys held behind a terminal answer, so a cancelled line cannot still run.
- Hostile-workspace coverage for the Context Engine: control and bidi payloads, malicious files, PATH entries, Git metadata and packs.
Install and update
brew install raiseCatError/tap/nmsh # new install
brew upgrade raiseCatError/tap/nmsh # existing Homebrew installThe tap's own automation moves its formula to 0.18.0; until it does, Homebrew still offers 0.17.0. Source checkouts update with /update, or install with:
git clone --branch v0.18.0 https://github.com/raiseCatError/notMyShell.git
cd notMyShell && npm install && npm run build && npm linkRequires Node.js 22+ and zsh, Bash 4.4+ or Fish. Settings carry over, and nothing new is turned on by the upgrade. /github needs gh logged in with a github.com origin; managed targets need Claude Code installed.
Known limitations
- Physical-terminal QA has not been performed (see above). Checks in iTerm2, Kitty, WezTerm, Linux and WSL 2 also remain open.
- A lone
ESC[3J(withoutESC[2J) empties NMSh's whole transcript;clearandclear -xare unaffected. - Type-ahead while a fish
readis still running can still be dropped by fish itself. - Managed targets are Claude Code only; other agents' sessions are shown, not controlled.
/worktreesand/githubare first slices: no session or tmux focus for worktrees, and no remote actions on GitHub.- Context Packs install from local files only; there is no remote registry or executable extension tier.
Validation
The full CI workflow passed on the final release-branch commit 8efcc14 (run 38340968905) and on the master merge commit 9ec0676 that this tag points at (run 38341365669): macOS and Ubuntu test suites, Node 22 and Node 26, the Fedora portability subset, build and type checks, and the timing smoke with Context Engine budgets. Automated tests and headless recordings are evidence, not physical acceptance; physical-terminal QA is still pending.
Full changelog: CHANGELOG.md → 0.18.0 · Compare v0.17.0...v0.18.0