A powerful disk usage analyzer with iCloud support
Project description
reclaimed ♻️
reclaimed is a cross-platform, ultra-lightweight, and surprisingly powerful command-line tool for analyzing disk usage — with special handling for iCloud storage on macOS.
Quickly find your largest files and directories with a beautiful, color-coded interface, and manage them through an interactive terminal UI.
Fully supports Linux, macOS, and Windows.
✨ Features
- 🚀 Legitimately Performant: Fast recursive directory scanning with ultra-efficient progress updates.
- Carefully tuned repaint frequency — optimized to avoid slowing results by even 5ms.
- Separate thread for the clock to keep real-time updates buttery smooth.
- ☁️ iCloud Smartness: Detects and handles iCloud Drive symlink files vs local storage (macOS).
- 📊 Beautiful UI: Powered by Textualize/rich and Textualize/textual.
- Full keyboard navigation, mouse support, and customizable themes.
- 🖥️ Interactive Terminal UI: Browse, manage, and delete files/directories with ease.
- 🗑️ Safe Deletion: Remove large files and directories directly from the interface — with confirmation prompts.
- 💾 Export to JSON: Save scan results for further analysis or batch operations.
- ⚡ Real-Time Feedback: Live progress indicators and graceful handling of permission issues.
- 🛡️ Actual Privacy: 100% offline. No telemetry, no analytics, no tracking - can't even check for updates.
https://github.com/user-attachments/assets/1aae04e7-3201-414d-a1e3-6ea5d55bd691
📦 Installation
Prerequisites
- Python 3.8+
- pip (Python package installer)
- (Optional but recommended) Use a virtual environment
Install via pip (preferred)
pip install reclaimed
Install via Homebrew (macOS)
brew install taylorwilsdon/tap/reclaimed
Install from Source
git clone https://github.com/taylorwilsdon/reclaimed.git
cd reclaimed
pip install -e .
For development:
pip install -r requirements.txt
🚀 Usage
Basic
reclaimed ~/Documents
Advanced
# Show more results
reclaimed ~/Documents --files 20 --dirs 15
# Save results to JSON
reclaimed ~/Documents --output results.json
Options
| Option | Description |
|---|---|
PATH |
Directory to scan (default: current directory) |
-f, --files N |
Number of largest files to show (default: 10) |
-d, --dirs N |
Number of largest directories to show (default: 10) |
-o, --output FILE |
Save results to a JSON file |
-i, --interactive |
Launch the interactive Textual UI |
📊 Output
CLI Mode
- Real-time progress indicator (files scanned, total size)
- Tables of largest files and directories
- iCloud vs local storage clearly indicated
- Summary of any access issues
Interactive Mode
- Tabbed interface: switch between Files and Directories
- Keyboard navigation (arrow keys) and mouse support
- Sort items by size, name, or path
- Delete files/directories with confirmation
- Refresh scan results
🎛️ Interactive Mode
Launch automatically or with -i / --interactive:
reclaimed ~/Documents -i
Non-interactive mode (minimal output) can be forced with:
reclaimed ~/Documents --no-interactive
Keyboard Shortcuts
| Key | Action |
|---|---|
F |
Switch to Files view |
D |
Switch to Directories view |
S |
Sort items |
R |
Refresh scan |
Delete |
Delete selected item |
? |
Show help |
Q |
Quit application |
| Arrow keys | Navigate through items |
🛠️ Development
This project uses UV for building/publishing and Hatch for workflow management.
Setup Development Environment
pip install -r requirements.txt
hatch shell
Common Commands
# Run tests
hatch test
# Build distribution packages
uv build --sdist --wheel
# Create a new release
./release.sh
# Run interactively
python -m reclaimed /path/to/scan
🤝 Contributing
Contributions are welcome!
Please see the Contributing Guide for details.
📜 License
This project is licensed under the MIT License.
See the LICENSE file for full details.
Built with ❤️ for those who love clean disks and clean code.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file reclaimed-0.2.6.tar.gz.
File metadata
- Download URL: reclaimed-0.2.6.tar.gz
- Upload date:
- Size: 40.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
4ee6cf2af28e04237939ba0fd14071394b640399dcedff5da8aac6e9e403c991
|
|
| MD5 |
766662aebb20b8efb179ed5b0575fc00
|
|
| BLAKE2b-256 |
3902630a970fb7e4f30b77409d2039bec72cb55a732f58d5c63c676fc940482d
|
File details
Details for the file reclaimed-0.2.6-py3-none-any.whl.
File metadata
- Download URL: reclaimed-0.2.6-py3-none-any.whl
- Upload date:
- Size: 44.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.7.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
72184065f68f91facd79263b10cd29dd9de276a7cf8d46c318e1df37be855af4
|
|
| MD5 |
1f06b599b7123f15e44b5e7e83834902
|
|
| BLAKE2b-256 |
f3cca782a3ed7380b694a840d93757ebe46b59148b63d8e3ee0a81b2d09f0c30
|