You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Optional shell-tool discovery and first-run setup #9
Implemented on the v0.16 branch (PR #303, #307):/tools browser (Discover / Installed / Configure / Errors, categories, search, install previews with default-No confirmation, shared progress), truthful installed/selected-provider evidence, optional first-run browse/skip, supported Starship configuration (#83/#252), consent-based mise awareness (#253), curated catalog additions and integration/recommendation/environment/legacy distinctions (#306).
Remaining scope (why this stays open):
A small local-facts-only Relevant here group (shell scripts, Git repositories, JavaScript manifests, Kubernetes manifests) reusing existing safe context facts; it must never scan or execute project files. The catalog already carries declarative relevantTo metadata for it.
Additional package managers beyond Homebrew, and bulk selection.
Active-hook detection for shell integrations.
Goal
Extend implemented first-run prompt setup with optional shell-tool discovery. Provider selection, Native appearance, composer layout, and /prompt settings are already implemented. Starship remains optional.
First-run flow
Detect whether zoxide, fzf, and Atuin are installed and whether their zsh integration is active; show truthful status and next steps.
Offer Recommended, Choose individually, and Skip.
Explain each integration's changes before acting. Require explicit confirmation immediately before installation or setup modifies the system. Never install or edit shell configuration silently.
Do not describe zsh-autosuggestions or zsh-syntax-highlighting as required; NMSh provides their UI roles.
Do not claim native fzf-tab support.
Keep Starship optional and do not overwrite its configuration.
This issue also owns the curated shell-tool catalog UX, exposed as /tools and from /settings -> Tools. Ordinary shell tools are not plugins.
Tool browser UX
Use a terminal-native, keyboard-first tabbed browser with the shared panel shell from #90:
Tools | Discover | Installed | Configure | Errors
Tabs without backing behavior may be deferred. There is no marketplace tab or third-party plugin marketplace architecture.
Discover: curated catalog, search/filter, categories, Recommended indicator, installed/missing state, concise description, package-manager/install source, Enter for details, explicit install confirmation, useful multi-select where appropriate, package-manager-aware actions, visible progress/errors, and factual feedback via Reusable long-running task and install progress UI #91.
Installed: detected tools with ready state and version/source/integration details when safely and cheaply known. Selecting a tool opens details. Show update availability only when factual and safely inexpensive to determine.
Errors: actionable problems such as missing expected executables, invalid supported configuration, failed setup, or retained installation failure. Calm empty state: "No tool problems detected."
Keep direct commands valid. Search must not change settings or install tools. Never expose or log secret values; treat secret metadata conservatively.
Catalog categories and ordering
Search & Files
Git & Development
Navigation & History
Data / Structured Text
Environment & Secrets
Shell / Workflow
Containers / Infrastructure
Project / Language Tooling
Within each category: uninstalled first, alphabetically among uninstalled; installed afterwards, alphabetically among installed.
Conservative recommendations: zoxide, fzf, ripgrep, fd, jq; gh is useful but not required. Atuin, bat, eza, delta, lazygit, yq, direnv, Doppler, pass, stow, tmux, and cloud/Kubernetes tooling remain optional or specialized. Never silently install.
This issue remains the home for optional tool discovery and install flows. The provider framework (#134) reuses its detection and install recipes, so provider pickers show installed/missing state and offer install with the same explicit confirmation and progress UI (#91).
Tools that now back planned providers or integrations:
Unchanged rule: NMSh never installs software automatically. Every install needs explicit confirmation immediately before it runs, shows progress, and reports failure factually. Detecting a tool never changes a setting.
Status (updated at the v0.16 feature freeze)
Implemented on the v0.16 branch (PR #303, #307):
/toolsbrowser (Discover / Installed / Configure / Errors, categories, search, install previews with default-No confirmation, shared progress), truthful installed/selected-provider evidence, optional first-run browse/skip, supported Starship configuration (#83/#252), consent-based mise awareness (#253), curated catalog additions and integration/recommendation/environment/legacy distinctions (#306).Remaining scope (why this stays open):
Relevant heregroup (shell scripts, Git repositories, JavaScript manifests, Kubernetes manifests) reusing existing safe context facts; it must never scan or execute project files. The catalog already carries declarativerelevantTometadata for it.Goal
Extend implemented first-run prompt setup with optional shell-tool discovery. Provider selection, Native appearance, composer layout, and /prompt settings are already implemented. Starship remains optional.
First-run flow
Boundaries
This issue also owns the curated shell-tool catalog UX, exposed as /tools and from /settings -> Tools. Ordinary shell tools are not plugins.
Tool browser UX
Use a terminal-native, keyboard-first tabbed browser with the shared panel shell from #90:
Tools | Discover | Installed | Configure | Errors
Tabs without backing behavior may be deferred. There is no marketplace tab or third-party plugin marketplace architecture.
Keep direct commands valid. Search must not change settings or install tools. Never expose or log secret values; treat secret metadata conservatively.
Catalog categories and ordering
Within each category: uninstalled first, alphabetically among uninstalled; installed afterwards, alphabetically among installed.
Conservative recommendations: zoxide, fzf, ripgrep, fd, jq; gh is useful but not required. Atuin, bat, eza, delta, lazygit, yq, direnv, Doppler, pass, stow, tmux, and cloud/Kubernetes tooling remain optional or specialized. Never silently install.
Related: #83 supported configuration, #90 shared panel shell, #91 install/task progress.
Roadmap update: provider install state
This issue remains the home for optional tool discovery and install flows. The provider framework (#134) reuses its detection and install recipes, so provider pickers show installed/missing state and offer install with the same explicit confirmation and progress UI (#91).
Tools that now back planned providers or integrations:
Unchanged rule: NMSh never installs software automatically. Every install needs explicit confirmation immediately before it runs, shows progress, and reports failure factually. Detecting a tool never changes a setting.