Skip to content

Native module catalog: Starship / Oh My Posh coverage audit and prioritized ports #364

Open

Description

@raiseCatError

Goal

Turn the broad #305 Native module ecosystem into a finite, evidence-backed catalog-coverage pass. Do not chase a fictional 600-module parity target or duplicate external providers.

Current baseline

On release/v0.18.0, src/context/modules.ts declares 10 built-in module IDs and seven src/context/packs/builtin/*.json packs contribute 25 module definitions (35 native/pack entries total at that ref). This is not a measurement of every fact, provider feature or optional external configuration. Recount after upstream changes.
Starship and Oh My Posh have wider catalogs; count and map meaningful functions, not aliases or formatting-only entries. Both are already supported as external prompt providers in NMSh.

Scope

  • Build a matrix: upstream module/segment → NMSh native/core capability, bundled pack, generic-toolchain coverage, external provider only, missing, intentionally excluded. Cite upstream official docs and exact NMSh implementation. Note provider/config differences and false equivalences.
  • Prioritize real gaps: additional language/runtime families (Ruby, PHP, Swift, Kotlin, Dart/Flutter, Lua, Zig, .NET, Elixir, etc.); build/package tools (Gradle/Maven/CMake/Bazel); Conda/Pixi/Nix and additional environments; useful VCS cases including Jujutsu. Choose based on use cases and safe local evidence.
  • Native capabilities must remain demand-driven, bounded, cached, private and non-executable by default. Adding a first-party capability requires source/permission review, hostile-workspace fixtures, and clear provenance. Never run repo-provided binaries or scripts merely to populate a prompt.
  • Keep native module UX focused: /modules and existing surfaces, conditional visibility, compact fallback, accurate unavailable/unknown states.
  • Evaluate upstream format/theme import as a separate feature under #304, not an automatic conversion of arbitrary templating or shell hooks.

Acceptance

  • Publish dated, sourced coverage matrix and identify what NMSh actually supports today.
  • Rank high-value, distinct additions in small coherent slices; defer lower-value duplications explicitly.
  • Add/extend capabilities with dedicated tests and documentation only after review of sources and safety; no arbitrary code execution.
  • Track implementation slices under NMSh Native module ecosystem and upstream module ports #305 rather than opening an issue for each language.
  • Preserve external Starship and Oh My Posh provider functionality and performance.

Related: #305, #304, #321 (security/performance/host QA).

Activity

  1. raiseCatError commented on Oct 18, 2026

    @raiseCatError
    OwnerAuthor

    Progress in v0.20.0: .NET, Swift, Zig, Deno, Elixir, Dart and Flutter runtimes (plus Ruby and PHP), one build module (Bazel, Gradle, Maven, CMake, Meson, Make) and Mercurial/Jujutsu state shipped (#370, #372–#374). The coverage matrix this issue asks for is not done, so it stays open.

  2. raiseCatError commented on Oct 18, 2026

    @raiseCatError
    OwnerAuthor

    v0.21: #417 adds Bun (.bun-version, package.json packageManager/engines, install location), Nix shell (IN_NIX_SHELL) and container (marker files, Codespaces/dev container variables), with hostile-workspace tests; nothing is run. The coverage matrix has a dated v0.21 review: Kotlin/Scala, Lua and Haskell stay candidates, with reasons.

  3. added a commit that references this issue on Oct 18, 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

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions