CLI interactif pour installer ton environnement de dev — choisis tes outils, stackpick s'occupe d'utiliser le bon gestionnaire de paquets selon ton OS (macOS, Windows, Linux) et la dernière version.
npx stackpickUn menu interactif s'affiche, regroupé par catégorie. Coche ce que tu veux, valide, c'est installé.
Réinstaller sa machine de dev, c'est une heure perdue à copier-coller des commandes brew install / winget install / curl … | sh. stackpick rassemble 49 outils avec, pour chacun, la meilleure méthode d'installation officielle vérifiée sur chaque plateforme, et te laisse choisir d'un clic.
- 🖱️ Sélection interactive par catégories (propulsée par @clack/prompts).
- 🧠 Détection de l'OS et de l'architecture (Intel / Apple Silicon, x64 / arm64).
- 📦 Hybride « gestionnaire d'abord » : Homebrew sur macOS, winget/Scoop sur Windows, apt/dnf/pacman sur Linux, avec repli automatique sur les scripts officiels ou le téléchargement direct.
- ⚡ Rapide : les outils déjà présents sont détectés et ignorés ; installations parallélisées quand c'est sûr.
- 🧪 Sans surprise :
--dry-runaffiche exactement les commandes qui seront lancées.
Aucune installation requise :
npx stackpick # menu interactifOu en global :
npm install -g stackpick
stackpick| Option | Description |
|---|---|
-a, --all |
Installe tout le catalogue compatible avec ton OS |
-o, --only <ids> |
IDs séparés par des virgules (ex : node,git,vscode) |
-c, --category <noms> |
Filtre par catégories (ex : editeurs,ia) |
-y, --yes |
Pas de confirmation |
--dry-run |
Affiche les commandes sans rien installer |
--force |
Réinstalle même si déjà présent |
--concurrency <n> |
Nombre d'installations en parallèle |
--no-detect |
Ne pré-détecte pas les outils déjà installés |
-l, --list |
Affiche le catalogue puis quitte |
-v, --version |
Version |
stackpick --only node,pnpm,git,vscode,claude-code # une stack précise
stackpick --category "Outils IA" --yes # toute une catégorie
stackpick --all --dry-run # voir ce qui serait installé
stackpick --list # lister le catalogue✅ = installation supportée · — = pas de distribution officielle pour cet OS
| Outil | macOS | Windows | Linux |
|---|---|---|---|
Node.js (node) |
✅ | ✅ | ✅ |
pnpm (pnpm) |
✅ | ✅ | ✅ |
Yarn (yarn) |
✅ | ✅ | ✅ |
Bun (bun) |
✅ | ✅ | ✅ |
Deno (deno) |
✅ | ✅ | ✅ |
Git (git) |
✅ | ✅ | ✅ |
| Outil | macOS | Windows | Linux |
|---|---|---|---|
Python (CPython) (python) |
✅ | ✅ | ✅ |
Go (Golang) (go) |
✅ | ✅ | ✅ |
Rust (rustup) (rust) |
✅ | ✅ | ✅ |
Java JDK (Temurin) (java) |
✅ | ✅ | ✅ |
fnm (fnm) |
✅ | ✅ | ✅ |
nvm (nvm) |
✅ | — | ✅ |
pyenv (pyenv) |
✅ | ✅ | ✅ |
Volta (volta) |
✅ | ✅ | ✅ |
| Outil | macOS | Windows | Linux |
|---|---|---|---|
Visual Studio Code (vscode) |
✅ | ✅ | ✅ |
Cursor (cursor) |
✅ | ✅ | ✅ |
Zed (zed) |
✅ | ✅ | ✅ |
Windsurf (windsurf) |
✅ | ✅ | ✅ |
Sublime Text (sublime) |
✅ | ✅ | ✅ |
Neovim (neovim) |
✅ | ✅ | ✅ |
JetBrains Toolbox (jetbrains-toolbox) |
✅ | ✅ | ✅ |
| Outil | macOS | Windows | Linux |
|---|---|---|---|
OpenAI Codex CLI (codex) |
✅ | ✅ | ✅ |
Claude Desktop (claude) |
✅ | ✅ | — |
Claude Code CLI (claude-code) |
✅ | ✅ | ✅ |
Aider (aider) |
✅ | ✅ | ✅ |
Ollama (ollama) |
✅ | ✅ | ✅ |
LM Studio (lm-studio) |
✅ | ✅ | ✅ |
GitHub Copilot CLI (copilot-cli) |
✅ | ✅ | ✅ |
| Outil | macOS | Windows | Linux |
|---|---|---|---|
GitHub CLI (gh) |
✅ | ✅ | ✅ |
jq (jq) |
✅ | ✅ | ✅ |
ripgrep (ripgrep) |
✅ | ✅ | ✅ |
fzf (fzf) |
✅ | ✅ | ✅ |
Starship (starship) |
✅ | ✅ | ✅ |
Oh My Zsh (oh-my-zsh) |
✅ | — | ✅ |
Wget (wget) |
✅ | ✅ | ✅ |
| Outil | macOS | Windows | Linux |
|---|---|---|---|
Docker Desktop (docker) |
✅ | ✅ | ✅ |
OrbStack (orbstack) |
✅ | — | — |
Raycast (raycast) |
✅ | ✅ | — |
Microsoft PowerToys (powertoys) |
— | ✅ | — |
Helium (helium) |
✅ | ✅ | ✅ |
| Outil | macOS | Windows | Linux |
|---|---|---|---|
Warp (warp) |
✅ | ✅ | ✅ |
Ghostty (ghostty) |
✅ | — | ✅ |
WezTerm (wezterm) |
✅ | ✅ | ✅ |
Windows Terminal (windows-terminal) |
— | ✅ | — |
| Outil | macOS | Windows | Linux |
|---|---|---|---|
Postman (postman) |
✅ | ✅ | ✅ |
Bruno (bruno) |
✅ | ✅ | ✅ |
Insomnia (insomnia) |
✅ | ✅ | ✅ |
TablePlus (tableplus) |
✅ | ✅ | ✅ |
DBeaver Community (dbeaver) |
✅ | ✅ | ✅ |
Pour chaque outil, le catalogue (src/catalog.json) décrit une stratégie d'installation par plateforme :
À l'exécution, stackpick :
- détecte ton OS/arch et les gestionnaires présents ;
- pour chaque outil sélectionné, lance
detectpour ignorer ce qui est déjà installé ; - exécute la stratégie principale (gestionnaire natif), avec repli automatique sur la stratégie secondaire (script officiel ou téléchargement) si le gestionnaire est absent ou échoue ;
- les ProductId du Microsoft Store (ex. Raycast) sont automatiquement routés vers
--source msstore.
Les installations qui requièrent
sudo(apt/dnf/pacman) ou une interaction GUI (.dmg, AppImage) sont gérées au mieux ; stackpick t'indique clairement ce qui reste à finaliser à la main.
git clone https://github.com/Fazycks/stackpick.git
cd stackpick
npm install
npm run dev -- --list # exécuter en TS sans build (tsx)
npm run typecheck # tsc --noEmit
npm test # vitest
npm run build # bundle ESM via tsup -> dist/Stack : TypeScript · tsup · vitest · @clack/prompts · commander · execa.
Ajoute une entrée dans src/catalog.json en suivant le type Tool de src/types.ts, puis npm test pour valider la structure. PRs bienvenues.
MIT © Fazycks
{ "id": "cursor", "detect": "cursor --version || test -d /Applications/Cursor.app", "macos": { "manager": "brew", "ref": "cursor", "cask": true }, "windows": { "manager": "winget", "ref": "Anysphere.Cursor" }, "linux": { "manager": "download", "ref": "https://www.cursor.com/download" } }