Skip to content

Repository files navigation

DeadCode

GitHub stars

Detect and remove unused exports, dead routes, orphaned CSS, and unreferenced components in TypeScript/React/Next.js projects.

Star this repo if you care about bundle size — it helps other devs find DeadCode!

PythonLicenseCIOpen Source Alternative

Installation

# Install from source (PyPI publishing pending)
pip install git+https://github.com/Coding-Dev-Tools/deadcode.git
# Scan current project
deadcode scan
# Scan a specific project
deadcode scan -p /path/to/project
# Preview removable dead code
deadcode remove --dry-run
# Remove confirmed dead code
deadcode remove

Commands

deadcode scan

Scan a TypeScript/React/Next.js project for all categories of dead code.

deadcode scan # Scan current directory
deadcode scan -p /path/to/project # Scan specific project
deadcode scan --json-output # Machine-readable JSON
deadcode scan -c unused_export # Filter by category
deadcode scan -i "generated/"# Ignore paths

deadcode remove

Remove dead code after previewing. Always preview with --dry-run first.

deadcode remove --dry-run # Preview changes (no writes)
deadcode remove # Apply removals
deadcode remove -c orphaned_css # Remove only orphaned CSS

deadcode stats

Quick overview of dead code in your project.

deadcode stats

Categories

CategoryDescriptionExample
unused_exportExported names never imported elsewhereexport function oldHelper() with zero consumers
dead_routeNext.js routes with no internal linksapp/legacy/page.tsx no longer linked from navigation
orphaned_cssCSS classes not referenced in JSX.oldClass in styles.module.css with zero usages
unreferenced_componentReact components defined but never importedA <LegacyWidget> component with no import sites

Features

  • Unused export detection — finds functions, types, classes, interfaces, enums, and consts that are exported but never imported within your project
  • Dead route detection — detects unreachable page components in Next.js App Router projects
  • Orphaned CSS detection — finds CSS module classes that are defined but never referenced in TSX/JSX files
  • Safe auto-removal--dry-run preview shows exactly what will be deleted first; remove only blanks self-contained single-line findings and skips (with a warning) anything spanning multiple lines, so it never leaves half-deleted, broken code
  • Full-project scanning — fast regex-based scanning covers export/import patterns, route detection, CSS class usage, and component references across your entire codebase (no AST/tree-sitter — deliberately dependency-free and quick)
  • Monorepo support — handles large projects efficiently with ignore patterns
  • CI integration — JSON output for automated pipelines and gating

Ignore / Include Patterns

# Ignore specific paths
deadcode scan -i "generated/" -i "**/*.generated.ts"# Include only matching paths (whitelist)
deadcode scan --include "src/"# Only scan src/
deadcode scan --include "src/" --include "lib/"# Multiple dirs
deadcode remove --dry-run --include "packages/"# Works with remove
deadcode stats --include "app/"# Works with stats

--include accepts gitignore-style patterns and is repeatable (specify multiple targets). When both --include and -i/--ignore are used, --include is applied first, then --ignore excludes any matches within the included paths.

Default ignores: node_modules/, .git/, .next/, dist/, build/, public/, static/

Pricing

DeadCode is one of 11 tools in the Revenue Holdings suite. One license covers all CLI tools.

PlanPriceBest For
Free$0Individual devs, OSS — CLI only, rate-limited
DeadCode Individual$12/mo ($10 billed annually)Professional devs — unlimited scans, auto-removal, CI integration
Suite (all 11 tools)$49/mo ($39 billed annually)Full Revenue Holdings toolkit — 40% savings
Team$79/mo ($63 billed annually)Up to 5 devs — trend analytics, shared baselines, alerts
EnterpriseCustomSSO, RBAC, compliance reports, dedicated support

🔹 No lock-in: CLI works fully offline on the free tier — no telemetry, no phone-home. 🔹 Annual billing: Save 20%.

Per-Tier Features

FeatureFreeIndividualSuiteTeamEnterprise
CLI: scan, stats
All 4 scanner categories
Auto-removal (deadcode remove)
Unlimited file scanning
CI/CD integration (JSON output)
Project trend baselines
Dashboard & analytics
Compliance reports
RBAC / SSO / SAML / OIDC
Priority supportCommunity24h24h8hDedicated

Part of Revenue Holdings — CLI tools built by autonomous AI.

CI/CD Integration

# Generate report for CI
deadcode scan --json-output > deadcode-report.json
# Fail CI if any dead routes found
deadcode scan -c dead_route --fail 1
# Fail CI if total findings exceed threshold
deadcode scan --fail 10
# Track dead code trends over time
deadcode scan --json-output > baseline-$(date +%Y-%m-%d).json

Configuration (.deadcode.yml)

Create a .deadcode.yml file in your project root:

# .deadcode.ymlignore:
- "generated/"
- "**/*.generated.ts"
- "src/legacy/"categories:
- unused_export
- dead_route
- orphaned_css
- unreferenced_component# Exit with code 1 if findings >= this number (for CI gating)fail_threshold: 10

CLI flags override config file settings.

Storage

  • .deadcode.yml — project configuration (ignore patterns, categories)
  • deadcode-baseline.json — saved scan results for trend tracking

Roadmap

  • VS Code extension with inline decorations showing dead code
  • ESLint plugin integration with auto-fix
  • Webpack/Rollup bundle analysis hooks
  • MCP server for AI-assisted cleanup
  • Incremental scanning with cache
  • GitHub Actions annotator for PR comments

License

MIT — see LICENSE