<p align="center">
<h1 align="center">rasa</h1>
<p align="center">
A fast, plugin-based disk space cleaner for developers.
<br />
<a href="https://crates.io/crates/rasa"><img src="https://img.shields.io/crates/v/rasa.svg" alt="crates.io"></a>
<a href="https://github.com/hpouillot/rasa/actions"><img src="https://github.com/hpouillot/rasa/actions/workflows/ci.yml/badge.svg" alt="CI"></a>
<a href="LICENSE"><img src="https://img.shields.io/crates/l/rasa.svg" alt="License: MIT"></a>
</p>
</p>
Rasa scans your filesystem for build artifacts, caches, logs, and other space hogs left behind by development tools — then lets you interactively pick what to delete.
---
## Highlights
- **50 plugins** — languages, package managers, IDEs, browsers, system caches
- **Interactive TUI** — browse, sort by size, toggle unsafe items, filter by plugin
- **Fast** — parallel filesystem walk with SQLite cache for instant re-runs
- **Safe by default** — every target is labelled *recoverable* or *unsafe*
- **Configurable** — CLI flags or `~/.rasa/config.toml`
## Installation
```sh
cargo install rasa
```
<details>
<summary>From source</summary>
```sh
git clone https://github.com/hpouillot/rasa.git
cd rasa
cargo install --path .
```
</details>
## Quick start
```sh
# Scan home directory with defaults
rasa
# Only Node and Cargo artifacts, 500 MB minimum
rasa --only node,cargo --min-size 500MB
# Scan a specific directory, skip Docker
rasa ~/Code --skip docker
```
## CLI reference
```
rasa [OPTIONS] [PATHS]...
```
| `-m, --min-size <SIZE>` | Minimum target size to report | `100MB` |
| `-d, --max-depth <N>` | Maximum directory depth to scan | `8` |
| `--only <PLUGINS>` | Only run these plugins (comma-separated) | |
| `--skip <PLUGINS>` | Skip these plugins (comma-separated) | |
| `--exclude <PATHS>` | Exclude paths from scanning (comma-separated) | |
| `--no-global` | Skip global targets, only scan project directories | |
| `--rescan` | Ignore cache and force a full rescan | |
## TUI controls
| `j` / `k` / `↑` / `↓` | Navigate |
| `Space` | Toggle selection |
| `Enter` | Confirm and delete |
| `s` | Cycle sort order |
| `u` | Show / hide unsafe targets |
| `e` | Show / hide explanations |
| `q` / `Esc` | Quit |
## Configuration
Create `~/.rasa/config.toml` to set persistent defaults:
```toml
min_size = "200MB"
max_depth = 6
skip = ["docker", "downloads"]
exclude = ["/mnt/external"]
no_global = true
```
CLI flags always take precedence.
## Plugins
<details>
<summary>View all 50 plugins</summary>
| **Languages & runtimes** | Cargo, Go, .NET, Python, Ruby, Swift, TypeScript |
| **Package managers** | Bun, CocoaPods, Gradle, Homebrew, Maven, Nix, Node.js, node-gyp, pip, pnpm, Yarn |
| **Build tools** | CMake, sccache, Turborepo |
| **Containers & VMs** | Docker, OrbStack |
| **AI / ML** | Claude, Jupyter, Ollama |
| **Browsers** | Brave, Chrome, Firefox, Safari |
| **Apps** | Android, Electron, Flox, iTerm2, Linear, Playwright, Proton, Slack, Spotify, TablePlus, Terraform, Xcode, Zed, Zoom |
| **System** | Cypress, Downloads, Git, Images, Logs, tmp, Trash, Videos |
</details>
## License
[MIT](LICENSE)