Skip to main content

knip-dead-code

Knip dead-code detector for JS/TS: unused files, deps, exports, types. Use when cleaning up codebases, finding dead exports, or enforcing dependency hygiene in CI.

Informações da origem

Repositório
laurigates/claude-plugins
Última atividade na origem
3 de setembro de 2026 às 06:51
Idioma detectado do SKILL.md
inglês
Estrelas
58
Forks
6

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Explorador de arquivos
2 arquivos

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
created
2025-12-16T00:00:00.000Z
modified
2026-07-28T00:00:00.000Z
reviewed
2025-12-16T00:00:00.000Z
name
knip-dead-code
description
Knip dead-code detector for JS/TS: unused files, deps, exports, types. Use when cleaning up codebases, finding dead exports, or enforcing dependency hygiene in CI.
user-invocable
false
allowed-tools
Glob, Grep, Read, Bash, Edit, Write, TodoWrite, WebFetch, WebSearch
# Knip Dead Code Detection Knip is a comprehensive tool for finding unused code, dependencies, and exports in JavaScript and TypeScript projects. It helps maintain clean codebases and catch dead code before it accumulates. Knip finds *statically* unreachable code. Reach for a different tool for unused CSS (PurgeCSS), runtime dead code paths, bundle-size trimming (bundler tree-shaking), or duplicate dependencies (npm-dedupe). ## Core Expertise **What is Knip?** - **Unused detection**: Files, dependencies, exports, types, enum members - **Plugin system**: Supports 80+ frameworks and tools - **Fast**: Analyzes large codebases in seconds - **Actionable**: Clear reports with file locations - **CI-ready**: Exit codes for failing builds ## Installation ```bash # Project-local (recommended) bun add --dev knip # Verify installation bunx knip --version ``` ## Basic Usage ```bash # Run Knip (scans entire project) bunx knip # Show only unused dependencies bunx knip --dependencies # Show only unused exports bunx knip --exports # Show only unused files bunx knip --files # Production mode (only check production dependencies) bunx knip --production # Exclude specific issue types bunx knip --exclude-exports-used-in-file # Output JSON (for CI) bunx knip --reporter json # Debug mode (show configuration) bunx knip --debug ``` ## Configuration ### Auto-detection (Zero Config) Knip automatically detects: - Entry points (package.json `main`, `exports`, `bin`) - Frameworks (Next.js, Vite, Remix, etc.) - Test runners (Vitest, Jest, Playwright) - Build tools (ESLint, TypeScript, PostCSS) **No configuration needed for standard projects.** ### knip.json (Explicit Configuration) ```json { "$schema": "https://unpkg.com/knip@latest/schema.json", "entry": ["src/index.ts", "src/cli.ts"], "project": ["src/**/*.ts"], "ignore": ["**/*.test.ts", "scripts/**"], "ignoreDependencies": ["@types/*"], "ignoreBinaries": ["npm-check-updates"] } ``` ### knip.ts (TypeScript Configuration) ```typescript // knip.ts import type { KnipConfig } from 'knip'; const config: KnipConfig = { entry: ['src/index.ts', 'src/cli.ts'], project: ['src/**/*.ts', 'scripts/**/*.ts'], ignore: ['**/*.test.ts', '**/*.spec.ts', 'tmp/**'], ignoreDependencies: [ '@types/*', // Type definitions 'typescript', // Always needed ], ignoreExportsUsedInFile: true, ignoreWorkspaces: ['packages/legacy/**'], }; export default config; ``` ## Common Patterns ### Check Only Unused Dependencies ```bash # Fastest check - only dependencies bunx knip --dependencies # Exit with error if any unused dependencies bunx knip --dependencies --max-issues 0 ``` **Use in CI to enforce strict dependency hygiene.** ### Check Only Exports (Library Development) ```bash # Check for unused exports bunx knip --exports # Allow exports used in same file bunx knip --exports --exclude-exports-used-in-file ``` **Use for libraries to ensure clean public API.** ### Production vs Development Dependencies ```bash # Check production code only bunx knip --production # Check everything (including dev dependencies) bunx knip ``` ## Interpreting Results ### Example Output ``` No unused files No unused dependencies 2 unused exports src/utils.ts: - calculateTax (line 42) - formatDate (line 58) src/types.ts: - UserRole (line 12) ``` ### Issue Types | Type | Description | Action | |------|-------------|--------| | Unused file | File not imported anywhere | Delete or add to entry points | | Unused dependency | Package in package.json not used | Remove from dependencies | | Unused export | Exported but never imported | Remove export or make private | | Unused type | Type/interface exported but unused | Remove or make internal | | Unused enum member | Enum member never referenced | Remove member | | Duplicate export | Same export from multiple files | Consolidate exports | ## Agentic Optimizations | Context | Command | |---------|---------| | Quick scan | `bunx knip` | | Dependencies only | `bunx knip --dependencies` | | Exports only | `bunx knip --exports` | | CI strict mode | `bunx knip --max-issues 0` | | Production check | `bunx knip --production` | | JSON output | `bunx knip --reporter json` | | Debug config | `bunx knip --debug` | | Changed files | `bunx knip --changed --base main` | ## Quick Reference | Flag | Description | |------|-------------| | `--dependencies` | Check only unused dependencies | | `--exports` | Check only unused exports | | `--files` | Check only unused files | | `--production` | Production dependencies only | | `--max-issues N` | Fail if more than N issues | | `--reporter json` | JSON output for CI | | `--reporter compact` | Compact output | | `--debug` | Show configuration details | | `--changed` | Check only changed files | | `--changed --base main` | Changed files since main | | `--workspace NAME` | Check specific workspace | | `--exclude-exports-used-in-file` | Ignore same-file exports | For detailed examples, advanced patterns, and best practices, see [REFERENCE.md](REFERENCE.md). ## References - Official docs: https://knip.dev - Configuration: https://knip.dev/reference/configuration - Plugins: https://knip.dev/reference/plugins - CLI reference: https://knip.dev/reference/cli - FAQ: https://knip.dev/reference/faq
Ver no GitHub