knip
SKILL.md
Knip Code Cleanup
Run knip to find and remove unused files, dependencies, and exports from this codebase.
Setup
-
Check if knip is available:
- Run
npx knip --versionto test - If it fails or is very slow, check if
knipis in package.json devDependencies - If not installed locally, install with
npm install -D knip(or pnpm/yarn equivalent based on lockfile present)
- Run
-
If no
knip.jsonorknip.jsoncconfig exists and knip reports many false positives, consider creating a minimal config based on the frameworks detected in package.json
Execution
- Run
npx knipto get initial report - Review the output categories:
- Unused files - files not imported anywhere
- Unused dependencies - packages in package.json not imported
- Unused devDependencies - dev packages not used
- Unused exports - exported functions/variables not imported elsewhere
- Unused types - exported types not used
Cleanup Strategy
Auto-delete (high confidence):
- Unused exports that are clearly internal (not part of public API)
- Unused type exports
- Unused dependencies (remove from package.json)
- Unused files that are clearly orphaned (not entry points, not config files)
For these, proceed with deletion without asking. Use --fix --allow-remove-files for automated fixes, or manually delete/edit as needed.
Ask first (needs clarification):
- Files that might be entry points or dynamically imported
- Exports that might be part of a public API (index.ts, lib exports)
- Dependencies that might be used via CLI or peer dependencies
- Anything in paths like
src/index,lib/, or files with "public" or "api" in the name
Use the AskUserQuestion tool to clarify before deleting these.
Workflow
- Run knip, capture full output
- Categorize each issue as auto-delete or needs-clarification
- Ask about uncertain items in a single batch question
- Perform all deletions (use Edit tool to remove exports, Bash to remove files/deps)
- Re-run knip to verify cleanup is complete
- Repeat until no issues remain or only intentionally-ignored items exist
Common Commands
# Basic run
npx knip
# Production only (ignore test files)
npx knip --production
# Auto-fix what's safe
npx knip --fix
# Auto-fix including file deletion
npx knip --fix --allow-remove-files
# JSON output for parsing
npx knip --reporter json
Notes
- If knip config exists, respect its ignore patterns
- Watch for monorepo setups - may need
--workspaceflag - Some frameworks need plugins enabled in config
- Re-run after each batch of fixes to catch newly-exposed unused code
Weekly Installs
52
Repository
brianlovin/claude-configInstalled on
claude-code51
codex46
opencode9
antigravity8
gemini-cli8
windsurf7