Skip to main content

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 `dist/`, `build/`, and `*.egg-info/` folders.

Project description

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.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

search_and_destroy-2026.1.1.tar.gz (14.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

search_and_destroy-2026.1.1-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file search_and_destroy-2026.1.1.tar.gz.

File metadata

  • Download URL: search_and_destroy-2026.1.1.tar.gz
  • Upload date:
  • Size: 14.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.11

File hashes

Hashes for search_and_destroy-2026.1.1.tar.gz
Algorithm Hash digest
SHA256 6b0d29b0d65cf9d019f504c0a4f0dbd093d9b78c4f0547f2d8d91a501b9752f7
MD5 1a123bbc19034fa46814ab5b7f706642
BLAKE2b-256 72125e56886dc8400424ad56f785707f76fba133ff7e3dc013d62005cae821b2

See more details on using hashes here.

File details

Details for the file search_and_destroy-2026.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for search_and_destroy-2026.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 09b08161224ba11537d44b6653abf71c1e7b88f3c9cf7cee30404c4c24979633
MD5 d2ae5a8d2dd11f4ad2a2b36b9ac74a19
BLAKE2b-256 52ee55aad74005b290ee314dae4e234c405fdc3202d0ec3e91c03e3f60047a2b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page