npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

stackpick

v0.1.0

Published

Interactive CLI to install your dev stack (Node, pnpm, Git, VS Code, Cursor, Claude Code, Zed, Raycast…) with the right package manager for macOS, Windows & Linux.

Readme

stackpick

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.

CI npm license

npx stackpick

Un menu interactif s'affiche, regroupé par catégorie. Coche ce que tu veux, valide, c'est installé.


✨ Pourquoi

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-run affiche exactement les commandes qui seront lancées.

🚀 Installation & usage

Aucune installation requise :

npx stackpick           # menu interactif

Ou en global :

npm install -g stackpick
stackpick

Options

| 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 |

Exemples

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

📦 Catalogue (49 outils)

✅ = installation supportée · — = pas de distribution officielle pour cet OS

Runtimes & gestionnaires de paquets

| Outil | macOS | Windows | Linux | |---|:--:|:--:|:--:| | Node.js (node) | ✅ | ✅ | ✅ | | pnpm (pnpm) | ✅ | ✅ | ✅ | | Yarn (yarn) | ✅ | ✅ | ✅ | | Bun (bun) | ✅ | ✅ | ✅ | | Deno (deno) | ✅ | ✅ | ✅ | | Git (git) | ✅ | ✅ | ✅ |

Langages & gestionnaires de versions

| 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) | ✅ | ✅ | ✅ |

Éditeurs & IDE

| Outil | macOS | Windows | Linux | |---|:--:|:--:|:--:| | Visual Studio Code (vscode) | ✅ | ✅ | ✅ | | Cursor (cursor) | ✅ | ✅ | ✅ | | Zed (zed) | ✅ | ✅ | ✅ | | Windsurf (windsurf) | ✅ | ✅ | ✅ | | Sublime Text (sublime) | ✅ | ✅ | ✅ | | Neovim (neovim) | ✅ | ✅ | ✅ | | JetBrains Toolbox (jetbrains-toolbox) | ✅ | ✅ | ✅ |

Outils IA

| 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) | ✅ | ✅ | ✅ |

CLI essentiels

| Outil | macOS | Windows | Linux | |---|:--:|:--:|:--:| | GitHub CLI (gh) | ✅ | ✅ | ✅ | | jq (jq) | ✅ | ✅ | ✅ | | ripgrep (ripgrep) | ✅ | ✅ | ✅ | | fzf (fzf) | ✅ | ✅ | ✅ | | Starship (starship) | ✅ | ✅ | ✅ | | Oh My Zsh (oh-my-zsh) | ✅ | — | ✅ | | Wget (wget) | ✅ | ✅ | ✅ |

Conteneurs, lanceurs & navigateur

| Outil | macOS | Windows | Linux | |---|:--:|:--:|:--:| | Docker Desktop (docker) | ✅ | ✅ | ✅ | | OrbStack (orbstack) | ✅ | — | — | | Raycast (raycast) | ✅ | ✅ | — | | Microsoft PowerToys (powertoys) | — | ✅ | — | | Helium (helium) | ✅ | ✅ | ✅ |

Terminaux

| Outil | macOS | Windows | Linux | |---|:--:|:--:|:--:| | Warp (warp) | ✅ | ✅ | ✅ | | Ghostty (ghostty) | ✅ | — | ✅ | | WezTerm (wezterm) | ✅ | ✅ | ✅ | | Windows Terminal (windows-terminal) | — | ✅ | — |

Bases de données & API

| Outil | macOS | Windows | Linux | |---|:--:|:--:|:--:| | Postman (postman) | ✅ | ✅ | ✅ | | Bruno (bruno) | ✅ | ✅ | ✅ | | Insomnia (insomnia) | ✅ | ✅ | ✅ | | TablePlus (tableplus) | ✅ | ✅ | ✅ | | DBeaver Community (dbeaver) | ✅ | ✅ | ✅ |

⚙️ Comment ça marche

Pour chaque outil, le catalogue (src/catalog.json) décrit une stratégie d'installation par plateforme :

{
  "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" }
}

À l'exécution, stackpick :

  1. détecte ton OS/arch et les gestionnaires présents ;
  2. pour chaque outil sélectionné, lance detect pour ignorer ce qui est déjà installé ;
  3. 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 ;
  4. 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.

🛠️ Développement

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.

Ajouter un outil

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.

📄 Licence

MIT © Fazycks