Skip to content

Evaluate Rust + ratatui for the CLI, TUI and MCP server #15

Open

Description

@rdlu

The terminal app, the nms CLI and the MCP server are Python + Textual today. Shipping them means uv, Python or a container. A single static binary would be much easier to distribute (GitHub Releases via cargo-dist, AUR, Homebrew, winget, scoop).

This issue is a serious evaluation of moving them to Rust + ratatui, not a decision yet. It should cover:

  • Distribution: what each route takes to install, against uv / pipx / podman today
  • Parity: the TUI screens (recipes, nanites, cooking, multi-tools, portals with glyphs, storage, inventory, search) and the MCP server on the official Rust SDK (rmcp)
  • Themes: out of scope. The target is the web's two themes, one light and one dark, not the TUI's current theme catalogue
  • Data: the JSON dataset stays the contract. The extraction pipeline (hgpaktool, MBINCompiler, scripts/extract_game.py) can stay Python, since it only produces that JSON
  • Tests: the suite that pins the numbers the guides rely on has to carry over
  • Shared core: whether one Rust crate could power the TUI, the MCP server and the Tauri desktop app (Desktop app with Tauri v2 #14)
  • Costs: binary size, startup time, contributor friction, migration effort

Deliverable: a written comparison plus a small spike (one screen and nms mcp in Rust). The maintainer decides after that.

Activity

  1. added
    enhancementNew feature or request
    roadmapPlanned work; see the README Roadmap
    area: tuiThe terminal app (nms)
    area: mcpThe MCP server and AI client installers
    on Oct 17, 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: mcpThe MCP server and AI client installersarea: tuiThe terminal app (nms)enhancementNew feature or requestroadmapPlanned work; see the README Roadmap

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions