Siz
Simpler package zearch — a smarter npm package search and management CLI.
[!IMPORTANT] Refactoring may be performed from time to time.
Siz is a command-line tool for discovering, installing, and organizing npm packages. Open a live search box, multi-select what you need, then install it with your package manager of choice — or favorite packages for later. Everything you organize is stored locally and stays safe across upgrades.
Inspired by @rizumu/nai: Siz keeps nai's interactive search-and-install flow, and adds a discovery and organization layer (favorites and categories) around it. It also borrows ideas from antfu's ni (package-manager detection and a unified install experience) and taze (ceiling-based dependency upgrades).
Features
A check mark means the feature ships today; an empty box is planned, tagged Next (actively planned), Later (committed, unscheduled), or Maybe (exploratory).
Siz is a unified package-management workflow layer: an interactive interface over your package manager (in the spirit of ni) plus taze-style dependency upgrades. It spans three complementary layers of one experience — Discover what to use, Organize what you keep, Manage what's installed — and is interactive by default and scriptable today (via --json / --list and direct add / rm), with full --yes coverage of every mutating command on the way. It builds on antfu's package-manager-detector (part of the ni project) and borrows taze's ceiling-based upgrade semantics.
Discover
- [x] Live interactive npm search with type-as-you-go multi-select
- [x] Full-text search across name and description (siz search)
- [x] GitHub-style qualifiers in queries (keyword: author: scope: category: tag:)
- [x] Trust-aware discovery: deprecation, publish age, and provenance shown inline on each result, before install
- [x] Download-trend signal — ↑/↓ download-count momentum inline on each result (scoped packages excepted)
- [x] Replacement suggestions for deprecated packages — → replaced by …, parsed from the deprecation message (the successor the maintainer named)
- [x] Package-size signal — install size shown inline on every result (and bundle size on the focused row), before install
- [x] License signal — the declared license shown inline on every result (a legal/compatibility fact, distinct from the health-oriented trust signals), with ⚖ when it can't be resolved from registry metadata
- [ ] Later — Ships-types signal — flag whether a package bundles its own TypeScript types or needs a separate @types/
- [ ] Later — Lighter-alternative suggestions for heavy packages — a curated map of leaner swaps (e.g. moment → dayjs), leaning on the package-size signal
- [ ] Later — AI-assisted search: opt-in LLM query expansion and result reranking
- [ ] Maybe — Comparison view — mark 2–3 packages in interactive search and compare them side by side (downloads, size, last publish, license)
Organize
- [x] Favorites — a lightweight curated shortlist of packages you reach for, and the empty-box front door
- [x] Heuristic auto-categorization when you favorite a package
- [x] Bundles — named recipes that record versions, dep types, and preferred PM, installable together in one step
- [x] Peer/optional bundle install — a bundle's peer/optional deps install as their true type via the manager's save flag (npm / pnpm / yarn / bun; deno falls back to a regular dependency)
- [ ] Later — Export / import favorites & bundles — shareable JSON, the concrete basis for team-shared presets
- [ ] Later — Local search and install history
- [ ] Maybe — Seed a bundle from the current project — snapshot the current package.json deps into a named bundle
- [ ] Maybe — Team-shared presets — built on export / import
Manage
Install & run
- [x] Install via your package manager (npm / pnpm / yarn / bun / deno) — pick it at install time, with a per-package dependency vs devDependency toggle
- [x] Direct project install / uninstall by name — siz add <pkg installs, siz rm <pkg uninstalls; favoriting moves to --fav
- [ ] Next — Non-interactive mode — --yes on every mutating command, for CI and scripts
- [ ] Later — Interactive uninstall picker — siz rm with no args opens a picker over installed deps, making removal as interactive as install
- [ ] Later — Run scripts — siz run <script through the detected package manager
- [ ] Later — Execute without installing — siz x <pkg (npx / pnpm dlx / bunx)
- [ ] Later — Clean / frozen install — lockfile-exact, reproducible installs (npm-ci style)