Repository navigation
Workflow integrations: external editors, search, preview tools and shell utilities #366
Description
Goal
Give the #359 terminal workflow initiative a single decision-and-integration tracker for tools that genuinely improve copying, searching, previewing and reusing command results.
Audit first
NMSh already supports some of Atuin, fzf/Television, zoxide, bat, delta, and other curated tools/providers. Read current /tools, /providers, /watch, /open, Theme Bridge, clipboard and command queue integration before proposing anything. Separate existing support from planned features.
| Candidate | Question to answer |
|---|---|
| Atuin | Does project/session-aware history enrich existing native search without stealing shell-history authority? |
| fzf / Television | Can providers power consistent preview/select actions without inventing another picker subsystem? |
| Pueue | Where is durable detached background processing genuinely useful? Never replace NMSh's native same-shell queue with independent child processes. |
| Yazi | Can a supported file-selection handoff return paths to the composer safely, without a second file manager? |
| delta / bat | When do diff/source previews gain something over native Compare and existing supported rendering? |
| zoxide | Does integration improve directory routing beyond existing /dirs? |
| Gum | Preserve terminal input ownership and external interactive prompt interoperability; do not imitate a second forms framework. |
Defaults and safety
Every integration is optional, absent-dependency-safe, user-controlled and truthfully described. Never auto-install, mutate external configs, run AI/clipboard-sourced commands, or transmit clipboard contents. Reuse host/shell capability detection, ScreenPlan and the existing provider registry. Keep PTY/passthrough and password/single-key input semantics correct.
Acceptance
- Document baseline support and per-candidate use case, dependency, risk and decision (adopt / defer / reject) with links.
- Implement only high-return integrations in focused PRs, with honest fallback and confirmation.
- Real-shell/PTY and narrow/NO_COLOR/Safe tests for adopted slices.
- Document explicitly why native queue, native Compare and existing tools are retained.
Related: #359, #304 Theme Bridge, #305 Context Engine; no wholesale terminal/multiplexer replacement.
2026-10-16 addition — external terminal editors and presentation tools
Motivation: TTT Editor feels more GUI-like than many terminal editors: discoverable menu bar, tabs, mouse and keyboard operation, in-editor Git/diffs, LSP, familiar shortcuts. Rather than rebuild this in NMSh, offer reliable external editor invocation and discovery alongside existing native source/output navigation.
Candidates to audit: TTT, Fresh, Micro, Helix, Neovim/Vim, and existing Zed/VS Code host open. For read-only viewing also assess Glow for Markdown and the already curated bat, delta, and less. Distinguish installed/verified tools from recommendations, and do not duplicate current /tools, Theme Bridge, Actions → Open in pager, /open, or external editor functionality.
Possible /editor / /edit [file[:line[:col]]] picker:
- Resolve explicit
$VISUAL/$EDITORand supported user preferences; allow a per-invocation choice and truthful missing-tool states. - Launch TUI editors via the actual managed PTY/alternate-screen passthrough, preserving terminal size, keyboard/mouse modes, cwd, file/line arguments and exit-to-composer/focus restoration. Launch GUI editors with existing reviewed host actions where appropriate.
- Shell-safe argument vectors, trustworthy cwd/path resolution, quote/escape file names with Unicode/spaces/metacharacters; never execute a filename as shell code. Never silently overwrite editor settings or create/modify source files just to preview.
- For supported tools, prefer optional theme/environment adaptations through Theme Bridge and semantic terminal integration #304 only after verifying their native theme formats. Never promise TTT/Fresh/Micro integration or synchronized theme modes before a capability audit.
- Use familiar TTT interaction patterns as design references for NMSh pickers/actions but not editor reimplementation.
- Keep opt-in/absent-dependency-safe behavior, no silent installation, no new editor-owned PTY implementation. Test real Ghostty/Terminal.app, macOS/Linux, resized and detached scenarios.
Boundaries/related: Native read-only /view has its own focused issue #397 (including a decision whether improving the existing pager is preferable); semantic-output transforms stay #386; contextual shortcut UI stays #335. No editor implementation, LSP, filesystem tree or integrated IDE is authorized by this tracker. Preserve this issue's earlier workflow-tool audits and decisions.
Activity
Docs: external tool decisions for #366
raiseCatError commentedon Oct 11, 2026
Code audit and decisions are recorded in docs/design/external-tool-decisions.md on local additive #368 candidate 5e45e87.
Adopt the existing optional Atuin history source, fzf/Television picker providers, zoxide directory routing through a private bounded database copy, and bat/delta Theme Bridge slices. Their registries, runtime adapters and absent-dependency fallbacks were inspected; no new external adapter is claimed.
Retain the native sequential same-shell queue and stored-output Compare. Pueue background handoff is deferred until durable output-capture semantics are designed; it cannot replace this queue. Yazi chooser handoff is deferred pending a bounded path-return contract. Reject an embedded Gum forms adapter; ordinary external interactive passthrough remains supported, with real Gum physical interoperability unvalidated.
The audit preserves deliberate deferrals and avoids duplicate picker/file-manager/theme engines. Provider availability tests now supply a fixture installer instead of assuming host Homebrew; product installation remains optional, explicitly confirmed and restricted to verified typed argv.
Existing provider/bridge tests and real-PTY queue, fullscreen ownership and report/diff regressions cover the retained paths. Final cross-feature canonical/Actions are running. Host-specific picker visuals and physical terminal behavior remain human QA. No automatic install, clipboard transmission or external-config mutation was introduced.
[-]Workflow integrations: evaluate Atuin, fzf/Television, Pueue, Yazi, delta/bat and zoxide[/-][+]Workflow integrations: external editors, search, preview tools and shell utilities[/+]