Skip to content

TUI tool picker: interactive keyboard-driven install menu (Phase 2 of #468) #495

Description

@primetimetank21

Summary

Track a future enhancement: turn the installer into a TUI-style tool picker — an interactive, keyboard-driven menu (arrow keys / space to toggle, enter to confirm) where the user selects which tools to install/skip, similar to a checkbox prompt.

This is the deferred interactive-prompt leg of the #468 "customizable install" design. #468 ships flags-first (--only=, --skip=, --list) because flags are CI-safe and build the underlying selection engine. This issue captures the interactive menu as Phase 2, layered on top of that same engine once it exists.

Why deferred from #468

  • A blocking interactive prompt hangs headless CI — flags remain the CI-native path, so any TUI must be gated behind a --non-interactive / auto-detect fallback.
  • Out-GridView is absent on PS 5.1 in some Server Core / CI runner images, so a PS 5.1-safe ASCII menu is non-trivial and needs its own design.
  • The primary dev-setup audience (Codespaces / CI / fresh-machine) rarely benefits from a prompt — but it is a nice first-run UX for a human on a personal box.

Scope (rough, to refine later)

  • Thin interactive frontend over the Customizable install: pick-and-choose tools (flags vs prompt vs manifest) #468 selection engine (parse → validate → filter ordered DefaultTools → dispatch).
  • Auto-skip the menu when non-interactive (no TTY / CI env / explicit flag) and fall back to defaults or passed flags.
  • Cross-platform: bash menu (e.g. select loop or a lightweight key-driven picker) + a PS 5.1 ASCII-safe equivalent (no Out-GridView dependency).
  • Preserve opt-out defaults (squad-cli stays default-on) and the tool dependency order (nvm→npm, gh→auth).

Blocked by

Captured from a session idea by @primetimetank21 while reviewing the #468 approach proposal.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions