search-and-destroy
Build files be gone! search-and-destroy is a CLI tool to clean up build files from all types of tech stacks. It’s like a Roomba for your project directory, but instead of dust, it sucks up those pesky node_modules/, build/, and *.egg-info/ folders.
Requirements
- Python 3.8+
Caution: It's strongly recommended to run
sadwith--dry-runfirst and add a.sadignorefile to protect any files or folders you don't want removed.
Quick start
# Run search-and-destroy to remove build files
sad
# Examples
sad list
sad list node
sad --dry-run nuke node
sad --all --yes node
sad --dry-run python
sad --dry-run dotnet
Commands
list [type]— Show project and build artifact names that would be removed fortype(default: all).nuke [type1 type2 ...]— Recursively find and remove matching targets for the named project types (default: all). Use--dry-runto preview.node,python,dotnetetc. — Run the cleaner for a single project type.
Options (common): --dry-run, --yes, --all, --force, --safe.
Aliases available: search-and-destroy
License
- MIT
Ignoring paths with .sadignore
Create a file named .sadignore in the repository root to prevent sad from listing or removing paths that would otherwise match targets. The file follows gitignore-style patterns when the pathspec package is installed; otherwise a simple glob-based fallback is used.
Examples:
-
Ignore a directory anywhere in the tree:
ignorethis/ somedir/ignorethis
-
Ignore a specific file:
node_modules package-lock.json
-
Anchor to repository root (requires
pathspecfor gitwildmatch semantics):/ignorethis/
-
Negate a pattern (allow a subfolder):
ignorethis/ !ignorethis/keep/
Run sad --dry-run to preview deletions; .sadignore entries are respected in the preview.
Changelog
All notable changes to this project will be documented in this file.
2026.0.0
- Initial release as search-and-destroy.
2026.1.0
- Added animation to menu.
2026.1.1
- Added
__init__.pyto classes package to ensure it is included in the distribution.
Metadata
Release files for search-and-destroy 2026.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| search_and_destroy-2026.1.1.tar.gz | 14.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| search_and_destroy-2026.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 29.0 kB
Release files / search_and_destroy-2026.1.1.tar.gz
| Download URL | search_and_destroy-2026.1.1.tar.gz |
|---|---|
| Size | 14.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
6b0d29b0d65cf9d019f504c0a4f0dbd093d9b78c4f0547f2d8d91a501b9752f7
|
|
BLAKE2b-256 checksum How to use checksums |
72125e56886dc8400424ad56f785707f76fba133ff7e3dc013d62005cae821b2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|
Release files / search_and_destroy-2026.1.1-py3-none-any.whl
| Download URL | search_and_destroy-2026.1.1-py3-none-any.whl |
|---|---|
| Size | 14.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
09b08161224ba11537d44b6653abf71c1e7b88f3c9cf7cee30404c4c24979633
|
|
BLAKE2b-256 checksum How to use checksums |
52ee55aad74005b290ee314dae4e234c405fdc3202d0ec3e91c03e3f60047a2b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.2.0 CPython/3.13.11
|