mcpField
V
vulture-dead-code

vulture-dead-code

github.com/laurigatesDevelopment59323 installsUpdated 1d ago
Repository

About vulture-dead-code

A reference skill for Python developers using Vulture and deadcode to find unused code. It explains their detection approaches, configuration, commands, and options for CI checks.

Key features

  1. 01Detect unused functions, classes, and variables
  2. 02Compare Vulture and deadcode
  3. 03Configure exclusions and whitelists
  4. 04Identify unreachable code

Use cases

  1. 01Remove unused code from a project
  2. 02Run code hygiene checks in CI
  3. 03Create a false-positive whitelist for dynamic code

Install

Copy the command and run it in a terminal.

$npx skills add https://github.com/laurigates/claude-plugins --skill vulture-dead-code

After installing, type/vulture-dead-codein Claude Code to confirm it loaded.

Bundled filesREFERENCE.md

Details

From the project README

Vulture and deadcode - Dead Code Detection

Tools for finding unused Python code including functions, classes, variables, imports, and attributes.

When to Use This Skill

Use this skill when...Use another tool instead when...
Detecting unused functions, classes, variablesFinding unused imports only (use ruff --select F401)
Cleaning up dead code in a codebaseChecking type correctness (use basedpyright)
Enforcing code hygiene in CIFormatting code (use ruff format)
Generating whitelists for false positivesRunning general linting (use ruff check)

Overview

Vulture (mature, confidence-based) and deadcode (newer, AST-based) both detect unused code but with different approaches:

FeatureVulturedeadcode
ApproachStatic analysis + confidence scoresAST-based detection
AccuracyConfidence scores (60-100%)High accuracy, fewer false positives
SpeedFastVery fast
ConfigurationWhitelist filesTOML configuration
MaturityMature (2012)Newer (2023+)
Best ForLarge codebases, gradual cleanupNew projects, strict enforcement

Installation

# Install vulture
uv add --dev vulture

# Install deadcode (newer alternative)
uv add --dev deadcode

# Install both for comparison
uv add --dev vulture deadcode

Vulture - Confidence-Based Detection

Basic Usage
# Check entire project
vulture .

# Check specific files/directories
vulture src/ tests/

# Minimum confidence threshold (60-100%)
vulture --min-confidence 80 .

# Exclude patterns
vulture . --exclude "**/migrations/*,**/tests/*"

# Sort by confidence
vulture --sort-by-size .

# Generate whitelist of current issues
vulture . --make-whitelist > vulture_whitelist.py
Configuration (pyproject.toml)
[tool.vulture]
min_confidence = 80
paths = ["src", "tests"]
exclude = [
    "**/migrations/*",
    "**/__pycache__/*",
    ".venv/*"
]
ignore_decorators = [
    "@app.route",
    "@pytest.fixture",
    "@property",
    "@staticmethod",
    "@classmethod"
]
ignore_names = [
    "test_*",
    "setUp*",
    "tearDown*",
]

deadcode - AST-Based Detection

Basic Usage
# Check entire project
deadcode .

# Check specific files/directories
deadcode src/

# Verbose output
deadcode --verbose .

# Dry run (show what would be removed)
deadcode --dry-run .

# Show unreachable code
deadcode --show-unreachable .

# Generate configuration
deadcode --init
Configuration (pyproject.toml)
[tool.deadcode]
paths = ["src"]
exclude = [
    "tests/*",
    "**/__pycache__/*",
    "**/migrations/*",
]
ignore_names = [
    "test_*",
    "setUp",
    "tearDown",
    "main",
]
ignore_decorators = [
    "app.route",
    "pytest.fixture",
    "property",
    "staticmethod",
    "classmethod",
    "abstractmethod"
]
show_unreachable = false

Choosing Between Tools

Choose Vulture when...Choose deadcode when...
Large, mature codebasesNew projects
Need confidence-based filteringWant fewer false positives
Need whitelist file approachPrefer TOML configuration
Dynamic code (getattr, exec)Need unreachable code detection
Hybrid Approach
# Run both for comprehensive detection
vulture --min-confidence 80 .
deadcode .

Agentic Optimizations

ContextCommand
Quick vulture checkvulture --min-confidence 90 .
Quick deadcode checkdeadcode .
Generate whitelistvulture . --make-whitelist > vulture_whitelist.py
CI enforcementvulture --min-confidence 80 . vulture_whitelist.py
Unreachable codedeadcode --show-unreachable .
Combined checkvulture --min-confidence 80 . && deadcode .

Quick Reference

Vulture Flags
FlagDescription
--min-confidence NMinimum confidence (60-100%)
--exclude PATTERNExclude glob patterns
--sort-by-sizeSort results by size
--make-whitelistGenerate whitelist file
deadcode Flags
FlagDescription
--verboseVerbose output
--dry-runShow without modifying
--show-unreachableDetect unreachable code
--initGenerate configuration
--strictStrict enforcement mode

For detailed examples, advanced patterns, and best practices, see REFERENCE.md.

Comments

Markdown supported