Skip to content

Workflow integrations: external editors, search, preview tools and shell utilities #366

Open

Description

@raiseCatError

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/$EDITOR and 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.

References: TTT, Micro, Fresh, Glow.

Activity

  1. raiseCatError commented on Oct 11, 2026

    @raiseCatError
    OwnerAuthor

    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.

  2. changed the title [-]Workflow integrations: evaluate Atuin, fzf/Television, Pueue, Yazi, delta/bat and zoxide[/-] [+]Workflow integrations: external editors, search, preview tools and shell utilities[/+] on Oct 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:executionCommand execution and lifecycletype:featureNew feature or improvement

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions