Smithery Logo
MCPsSkillsDocsPricing
Login
Smithery Logo

Accelerating the Agent Economy

Resources

DocumentationPrivacy PolicySystem Status

Company

PricingAboutBlog

Connect

© 2026 Smithery. All rights reserved.

    laurigates

    vulture-dead-code

    laurigates/vulture-dead-code
    Coding
    5
    1 installs

    About

    SKILL.md

    Install

    Install via Skills CLI

    or add to your agent
    • Claude Code
      Claude Code
    • Codex
      Codex
    • OpenClaw
      OpenClaw
    • Cursor
      Cursor
    • Amp
      Amp
    • GitHub Copilot
      GitHub Copilot
    • Gemini CLI
      Gemini CLI
    • Kilo Code
      Kilo Code
    • Junie
      Junie
    • Replit
      Replit
    • Windsurf
      Windsurf
    • Cline
      Cline
    • Continue
      Continue
    • OpenCode
      OpenCode
    • OpenHands
      OpenHands
    • Roo Code
      Roo Code
    • Augment
      Augment
    • Goose
      Goose
    • Trae
      Trae
    • Zencoder
      Zencoder
    • Antigravity
      Antigravity
    ├─
    ├─
    └─

    About

    Vulture and deadcode tools for detecting unused Python code (functions, classes, variables, imports). Use when cleaning up codebases, removing unused code, or enforcing code hygiene in CI. Triggered...

    SKILL.md

    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, variables Finding unused imports only (use ruff --select F401)
    Cleaning up dead code in a codebase Checking type correctness (use basedpyright)
    Enforcing code hygiene in CI Formatting code (use ruff format)
    Generating whitelists for false positives Running general linting (use ruff check)

    Overview

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

    Feature Vulture deadcode
    Approach Static analysis + confidence scores AST-based detection
    Accuracy Confidence scores (60-100%) High accuracy, fewer false positives
    Speed Fast Very fast
    Configuration Whitelist files TOML configuration
    Maturity Mature (2012) Newer (2023+)
    Best For Large codebases, gradual cleanup New 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 codebases New projects
    Need confidence-based filtering Want fewer false positives
    Need whitelist file approach Prefer TOML configuration
    Dynamic code (getattr, exec) Need unreachable code detection

    Hybrid Approach

    # Run both for comprehensive detection
    vulture --min-confidence 80 .
    deadcode .
    

    Agentic Optimizations

    Context Command
    Quick vulture check vulture --min-confidence 90 .
    Quick deadcode check deadcode .
    Generate whitelist vulture . --make-whitelist > vulture_whitelist.py
    CI enforcement vulture --min-confidence 80 . vulture_whitelist.py
    Unreachable code deadcode --show-unreachable .
    Combined check vulture --min-confidence 80 . && deadcode .

    Quick Reference

    Vulture Flags

    Flag Description
    --min-confidence N Minimum confidence (60-100%)
    --exclude PATTERN Exclude glob patterns
    --sort-by-size Sort results by size
    --make-whitelist Generate whitelist file

    deadcode Flags

    Flag Description
    --verbose Verbose output
    --dry-run Show without modifying
    --show-unreachable Detect unreachable code
    --init Generate configuration
    --strict Strict enforcement mode

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

    Recommended Servers
    Vercel Grep
    Vercel Grep
    Context7
    Context7
    Bright Data
    Bright Data
    Repository
    laurigates/claude-plugins
    Files