Skip to content

INSTALL.ts should detect and propose recommended CLI utilities (fd, rg, bat, eza, dust) #630

Description

@virtualian

Summary

The AI Steering Rules (skills/PAI/USER/AISTEERINGRULES.md) recommend fast Rust-based CLI utilities over legacy POSIX tools:

Task Legacy Recommended Brew Package
File search find fd fd
Text search grep rg ripgrep
File view cat bat bat
Directory list ls eza eza
Disk usage du dust dust

However, INSTALL.ts does not check whether these tools are installed or suggest installing them. The steering rules tell the AI to prefer these tools, and fd is actively used in statusline-command.sh (lines 251-253), but a fresh install gives no indication that any of these should be present.

Relation to #549

Issue #549 covers the fd dependency specifically for the statusline bug. This issue is broader — the installer should detect all recommended CLI utilities from the steering rules and propose installing any that are missing.

Proposed Change

Add a checkCliTools() step to INSTALL.ts (alongside the existing installBun()) that:

  1. Checks if each recommended tool is available via command -v
  2. Reports which are installed and which are missing
  3. Suggests a single install command for any missing tools:
    • macOS: brew install fd ripgrep bat eza dust
    • Linux: cargo install fd-find ripgrep bat eza du-dust (or distro-specific)
  4. Does not auto-install — just informs and suggests

Example output:

Checking Recommended CLI Tools
─────────────────────────────────────────────────
  ✓ fd (file search)
  ✓ rg (text search)
  ✗ bat (file viewer)
  ✓ eza (directory listing)
  ✗ dust (disk usage)

  ! 2 recommended tools missing. Install with:
    brew install bat dust

Why This Matters

  • fd is a runtime dependency (statusline breaks without it)
  • The other tools are used by the AI when it shells out via Bash
  • New users following the install guide have no way to know these are expected
  • The steering rule becomes a dead letter if the tools aren't present

Environment

  • macOS (Darwin 25.3.0)
  • PAI v2.5

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions