MCPInstall

knip

Run knip to find and remove unused files, dependencies, and exports. Use for cleaning up dead code and unused dependencies.

Installs
3.9K
Last 24h
—
Trending rank
—
Security
Pass

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/brianlovin/agent-config --skill knip
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads knip automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

Security audits

Independent scans of the skill's instructions and bundled files.

Gen Agent Trust Hub PassSAFE ·The skill provides instructions for the agent to use Knip, a popular static analysis tool, to clean up unused code and dependencies. It utilizes standard Node.js commands for analysis and maintenance, including guided workflows for safe file deletion and configuration management.
Socket PassNo alerts
Snyk PassLOW ·Risk: LOW · No issues
Runlayer PassNONE ·1 file scanned · No issues
ZeroLeaks PassNONE ·Score: 93/100 · 2 sections analyzed

SKILL.md

The instructions your agent reads when the skill is triggered.

Knip Code Cleanup

Run knip to find and remove unused files, dependencies, and exports from this codebase.

Setup

  1. Check if knip is available:

    • Run npx knip --version to test
    • If it fails or is very slow, check if knip is in package.json devDependencies
    • If not installed locally, install with npm install -D knip (or pnpm/yarn/bun equivalent based on lockfile present)
  2. Knip does NOT remove unused imports/variables inside files — that's a linter's job. Knip finds unused files, dependencies, and exports across the project.

Workflow

Always follow this configuration-first workflow. Even for simple "run knip" or "clean up codebase" prompts, configure knip properly before acting on reported issues.

Step 1: Understand the project

  • Check what frameworks and tools the project uses (look at package.json)
  • Check if a knip config exists (knip.json, knip.jsonc, or knip key in package.json)
  • If a config exists, review it for improvements (see Configuration Best Practices below)

Step 2: Run knip and read configuration hints first

npx knip

Focus on configuration hints before anything else. These appear at the top of the output and suggest config adjustments to reduce false positives.

Step 3: Address hints by adjusting knip.json

Fix configuration hints before addressing reported issues. Common adjustments:

  • Enable/disable plugins for detected frameworks
  • Add entry patterns for non-standard entry points
  • Configure workspace settings for monorepos

Step 4: Repeat steps 2-3

Re-run knip after each config change. Repeat until configuration hints are resolved and false positives are minimized.

Step 5: Address actual issues

Once the configuration is settled, work through reported issues. Prioritize in this order:

  1. Unused files — address these first ("inbox zero" approach removes the most noise)
  2. Unused dependencies — remove from package.json
  3. Unused devDependencies — remove from package.json
  4. Unused exports — remove or mark as internal
  5. Unused types — remove, or configure ignoreExportsUsedInFile (see below)

Step 6: Re-run and repeat

Re-run knip after each batch of fixes. Removing unused files often exposes newly-unused exports and dependencies.

Configuration Best Practices

When reviewing or creating a knip config, follow these rules:

  • Never use ignore patterns — ignore hides real issues and should almost never be used. Always prefer specific solutions. Other ignore* options (like ignoreDependencies, ignoreExportsUsedInFile) are fine because they target specific issue types.
  • Many unused exported types? Add ignoreExportsUsedInFile: { interface: true, type: true } — this handles the common case of types only used in the same file. Prefer this over broader ignore options.
  • Remove redundant patterns — Knip already respects .gitignore, so ignoring node_modules, dist, build, .git is redundant.
  • Remove entry patterns covered by defaults — Auto-detected plugins already add standard entry points. Don't duplicate them.
  • Config files showing as unused (e.g. vite.config.ts) — Enable or disable the corresponding plugin explicitly rather than ignoring the file.
  • Dependencies matching Node.js builtins (e.g. buffer, process) — Add to ignoreDependencies.
  • Unresolved imports from path aliases — Add paths to knip config (uses tsconfig.json semantics).

Production Mode

Use --production to focus on production code only:

npx knip --production

This excludes test files, config files, and other non-production entry points. Do NOT use project or ignore patterns to exclude test files — use --production instead.

Cleanup Confidence Levels

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)

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.

Auto-fix

Once configuration is settled and you're confident in the results:

# Auto-fix safe changes (removes unused exports and dependencies)
npx knip --fix

# Auto-fix including file deletion
npx knip --fix --allow-remove-files

Only use --fix after the configuration-first workflow is complete.

Error Handling

If knip exits with code 2 (unexpected error like "error loading file"):

  • Check if a config file exists — if not, create knip.json in the project root
  • Check for known issues at knip.dev
  • Review the configuration reference for syntax/option errors
  • Run knip again after fixes

Common Commands

# Basic run
npx knip

# Production only (excludes test/config entry points)
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

  • Watch for monorepo setups — may need --workspace flag
  • Some frameworks need plugins enabled in config
  • Knip does not handle unused imports/variables inside files — use ESLint or Biome for that

FAQ

What does the knip skill do?

Run knip to find and remove unused files, dependencies, and exports. Use for cleaning up dead code and unused dependencies.

How do I install knip?

Run npx skills add https://github.com/brianlovin/agent-config --skill knip in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/knip/ (personal) or .claude/skills/knip/ (project).

Which AI agents can use knip?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is knip safe to install?

Security partners have reviewed it: Gen Agent Trust Hub passed; Socket passed; Snyk passed; Runlayer passed; ZeroLeaks passed. As with any skill, read the SKILL.md and bundled scripts before installing.

Who maintains knip?

It is published by brianlovin in brianlovin/agent-config. It has 3,915 recorded installs.

More from brianlovin/agent-config

View all →

simplify

brianlovin/agent-config

Simplify and refine recently modified code for clarity and consistency. Use after writing code to improve readability without changing functionality.

Docs & Writing20.3K installs

deslop

brianlovin/agent-config

Remove AI-generated code slop from the current branch. Use after writing code to clean up unnecessary comments, defensive checks, and inconsistent style.

Docs & Writing5.6K installs

rams

brianlovin/agent-config

Run accessibility and visual design review on components. Use when reviewing UI code for WCAG compliance and design issues.

find-skills

brianlovin/agent-config

Helps users discover and install agent skills when they ask questions like "how do I do X", "find a skill for X", "is there a skill that can...", or express interest in extending capabilities. This skill should be used when the user is looking for functionality that might exist as an installable skill.

Backend & APIs2.9K installs

agent-browser

brianlovin/agent-config

Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction.

favicon

brianlovin/agent-config

Generate a complete set of favicons from a source image and update HTML. Use when setting up favicons for a web project.

Frontend & Design2.8K installs

Popular other skills

View category →

hyperframes-cli

heygen-com/hyperframes

The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.

1.3M installs

triage

mattpocock/skills

Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.

1M installs

ask-matt

mattpocock/skills

Ask which skill or flow fits your situation. A router over the skills in this repo.

778.4K installs

to-questionnaire

mattpocock/skills

Turn a decision you can't fully answer into a questionnaire for someone else to fill in.

508.9K installs

wait-what

mattpocock/skills

Stop. That last message did not land: re-pitch it.

459.7K installs

loop-me

mattpocock/skills

Grill me about specs for the workflows I want to build, within this workspace.

447.9K installs