Skip to main content

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 sad with --dry-run first and add a .sadignore file 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 for type (default: all).
  • nuke [type1 type2 ...] — Recursively find and remove matching targets for the named project types (default: all). Use --dry-run to preview.
  • node, python, dotnet etc. — 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 pathspec for 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__.py to 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)

Source distribution for search-and-destroy 2026.1.1
File Size Uploaded
search_and_destroy-2026.1.1.tar.gz 14.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for search-and-destroy 2026.1.1
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

2026.1.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page