Loading...
Loading...
Detects and safely removes unused code (imports, functions, classes) across multiple languages. Use after refactoring, when removing features, or before production deployment. Includes safety checks and validation.
npx skill4agent add 89jobrien/steve dead-code-removalscripts/find_unused_imports.pypython scripts/find_unused_imports.py src/utils.py src/services.pyFind and remove unused imports and functions in this projectClean up dead code in src/ directory, but be conservativeCheck for unused functions in src/utils/ and remove them safelypyproject.tomlsetup.pyrequirements.txtpackage.jsontsconfig.jsonpom.xmlbuild.gradlego.modCargo.tomlmain.py__main__.pyapp.pyrun.pyindex.jsmain.jsserver.jsapp.jsMain.java*Application.java*Controller.java*.config.*settings.*setup.*test_*.py*.test.js*.spec.js# Find unused imports in Python files
python scripts/find_unused_imports.py src/utils.py src/services.py# Python: AST-based analysis
import ast
# Track: Import statements vs actual usage
# Skip: Dynamic imports (importlib, __import__)// JavaScript: Module analysis
// Track: import/require vs references
// Skip: Dynamic imports, lazy loadinggetattr()eval()globals()window[]this[]import()@Component@Servicebackup_dir="./unused_code_backup_$(date +%Y%m%d_%H%M%S)"
cp -r . "$backup_dir" 2>/dev/null || mkdir -p "$backup_dir" && rsync -a . "$backup_dir"# Python
python -m py_compile file.py
python -m pytest
# JavaScript
npx eslint file.js
npm test
# Java
javac -Xlint file.java
mvn testsrc/utils/helpers.py## Dead Code Removal: src/utils/helpers.py
### Analysis
- **File**: `src/utils/helpers.py`
- **Total imports**: 8
- **Unused imports**: 3
### Unused Imports Found
1. `import os` - Line 2 (not used anywhere)
2. `import json` - Line 3 (not used anywhere)
3. `from datetime import timedelta` - Line 5 (not used anywhere)
### Safe to Remove
✅ All 3 imports are safe to remove (no dynamic usage detected)
### Changes
```python
# Before
import os
import json
from datetime import datetime, timedelta
import requests
# After
from datetime import datetime
import requests
### Example 2: Remove Unused Functions
**Input**: Find unused functions in `src/services/`
**Output**:
```markdown
## Dead Code Removal: src/services/
### Analysis
- **Files analyzed**: 12
- **Functions found**: 45
- **Unused functions**: 2
### Unused Functions
**1. `formatOldDate()` in `src/services/utils.js`**
- **Location**: Line 34-42
- **Status**: ✅ Safe to remove
- **Reason**: No references found, not exported, not used in tests
**2. `legacyAuth()` in `src/services/auth.js`**
- **Location**: Line 78-95
- **Status**: ⚠️ Preserved (framework pattern)
- **Reason**: Referenced in route configuration (line 12)
### Summary
- **Removed**: 1 function (`formatOldDate`)
- **Preserved**: 1 function (framework usage)
- **Lines removed**: 9
- **Size reduction**: ~300 bytes