Skip to content
Open Sourceen
script-scan

Interactive CLI to discover and run npm/bun/make scripts with fuzzy search, multi-select, and monorepo support.

script-scan is a terminal tool that replaces the tedious cycle of opening package.json, reading through dozens of scripts, and typing the right command. Just run script-scan and start typing — it finds the script you need instantly.

Why I Built It

As projects grow, package.json scripts multiply fast. Between build variants, test modes, lint configs, database migrations, and deploy targets, it becomes genuinely hard to remember what exists and what each does. script-scan solves that with a searchable, interactive list that shows the actual command next to each script name.

Features

Fuzzy search — type any part of a script name or its command content. Multi-term AND logic: test watch matches test:watch, vitest watch, etc.

Multi-select mode (-m) — select multiple scripts with space, confirm with enter, and they run sequentially in the order you picked them.

Monorepo support (-w) — scans all packages in a workspace, groups scripts by package name, and runs each from its own directory. Detects both workspaces in package.json and pnpm-workspace.yaml.

Makefile targets — discovers and runs make targets alongside npm scripts, with the same interactive UI.

Auto package manager detection — detects bun, pnpm, yarn, or npm from lockfiles. No configuration needed.

Script categorization — 80+ keyword-based categories with color-coded icons (build, dev, test, lint, deploy, docs, database, and more).

Smart caching — results are cached for 24 hours with mtime-based invalidation. Re-scans only when files actually change.

Usage

script-scan           # interactive search
script-scan -m        # multi-select mode
script-scan -w        # workspace/monorepo mode
script-scan -wm       # multi-select across all packages
script-scan --limit 5 # show only 5 results

Install

npm install -g script-scan
# or
bun add -g script-scan

Built with TypeScript, Commander, and Enquirer.