Skip to content

v0.18.0 — Context Engine, Managed Agents & Workspaces

Latest

Choose a tag to compare

@raiseCatError raiseCatError released this 13 Oct 03:26
9ec0676

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/v1 is strictly parsed data that cannot carry commands or code. nmsh packs installs, enables, disables and removes local packs with integrity checks and optional --sha256 pinning.
  • Claude Code agent context: nmsh agent-status setup applies one reviewed change to Claude Code's status line so modules can show model, effort, context use and rate limits; remove undoes 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. /modules opens 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, stage cd into 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 own gh login: 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; /zsh still switches shells.
  • /copy copies only the command's own output, never NMSh's completion row.
  • After clear or 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: tmux from 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 install

The 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 link

Requires 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 (without ESC[2J) empties NMSh's whole transcript; clear and clear -x are unaffected.
  • Type-ahead while a fish read is still running can still be dropped by fish itself.
  • Managed targets are Claude Code only; other agents' sessions are shown, not controlled.
  • /worktrees and /github are 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