cli-tool.md 3.3 KB


name: cli-tool category: cli public: false database: none hosting_hints:

  • npm-registry
  • pypi
  • crates-io
  • homebrew
  • github-releases audit_stack:
  • analyze
  • code-clean
  • cso
  • doc plugins: context7: optional ui-ux-pro-max: no gstack: no ---

CLI Tool

Outil en ligne de commande — distribué via un registry (npm, PyPI, crates.io, Homebrew) ou binaire.

Detection signals

Strong signals (×3)

  • STRING_IN_FILE: package.json contient "\"bin\":" (entry point CLI)
  • STRING_IN_FILE: setup.py OR pyproject.toml contient "console_scripts" OR "[project.scripts]"
  • STRING_IN_FILE: Cargo.toml contient "[[bin]]"
  • FILE: cmd/*/main.go (convention Go CLI)

Medium signals (×2)

  • DEP: "commander", "yargs", "clap" (Rust), "click" (Python), "typer", "cobra" (Go), "argparse"
  • FILE: bin/* executable
  • FILE: src/cli.ts OR src/cli.py OR src/cli.rs OR src/main.rs

Weak signals (×1)

  • DEP: "chalk", "kleur", "colorama", "termcolor" (output coloré)
  • DEP: "inquirer", "prompts", "questionary" (prompts interactifs)
  • FILE: README.md AVEC STRING "Usage:" OR "Installation:"
  • FILE: CHANGELOG.md

Counter-signals (exclusion)

  • DEP: react, next, vue, fastapi, express → web, pas CLI
  • FILE: index.html → web

Implications

  • Distribution : npm / PyPI / crates.io / Homebrew / binaires GitHub Releases
  • Base de données : aucune (sauf outil qui manipule une DB externe)
  • SEO/GEO : N/A
  • Surface sécurité : MOYENNE — deps externes, exécution locale, parfois privilèges élevés
  • UI/UX : N/A (interface texte)

Typical pain points

  • Pas de versioning semver strict (breaking changes silencieux)
  • CHANGELOG absent ou pas à jour
  • Tests des commandes absents (pytest-click, oclif-test, etc.)
  • Pas de help text cohérent (--help incomplet)
  • Exit codes incohérents (0 toujours, même en erreur)
  • Output pas parseable (pas de --json)
  • Pas de shell completion (bash/zsh/fish)
  • Deps avec failles (npm audit / cargo audit / pip-audit non exécuté)
  • Pas de cross-platform test (Win/macOS/Linux)
  • Logs vers stdout au lieu de stderr (casse les pipes)
  • Pas de gestion des signaux (SIGINT → cleanup ?)
  • Installation instructions incomplètes dans README

Interview questions (adaptive)

En plus du set minimum business :

  • Langage : Node.js / Python / Rust / Go / autre ?
  • Framework CLI : Commander / Clap / Click / Cobra / argparse / autre ?
  • Distribution : npm / PyPI / crates.io / Homebrew / binaires GitHub / multiple ?
  • OS cibles : Linux / macOS / Windows / WSL ?
  • Interactivité : prompts interactifs / pure arguments CLI ?
  • Output : texte formaté / JSON / les deux (--json) ?
  • Shell completion fournie ? (oui / non / souhaité)
  • Tests : couverture actuelle / cible ?
  • Releases : manuelles / CI (goreleaser, semantic-release, release-please) ?
  • Deps externes binaires requis ? (git, docker, ffmpeg, etc.)

Plugin recommendations

  • context7 : OPTIONAL — ON si framework CLI récent
  • ui-ux-pro-max : OFF (pas d'UI graphique)
  • gstack : OFF

Example project layout

package.json          OR   pyproject.toml       OR   Cargo.toml
src/
  cli.ts              OR   cli.py               OR   main.rs
  commands/
    init.ts
    build.ts
bin/
  my-tool
tests/
README.md (Usage + Installation)
CHANGELOG.md