Skip to main content

A powerful disk usage analyzer with iCloud support

Project description

reclaimed ♻️

PyPI Downloads License Privacy Shield Commit Activity PyPI Version


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


Download files

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

Source Distribution

reclaimed-0.2.6.tar.gz (40.1 kB view details)

Uploaded Source

Built Distribution

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

reclaimed-0.2.6-py3-none-any.whl (44.5 kB view details)

Uploaded Python 3

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

Hashes for reclaimed-0.2.6.tar.gz
Algorithm Hash digest
SHA256 4ee6cf2af28e04237939ba0fd14071394b640399dcedff5da8aac6e9e403c991
MD5 766662aebb20b8efb179ed5b0575fc00
BLAKE2b-256 3902630a970fb7e4f30b77409d2039bec72cb55a732f58d5c63c676fc940482d

See more details on using hashes here.

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

Hashes for reclaimed-0.2.6-py3-none-any.whl
Algorithm Hash digest
SHA256 72184065f68f91facd79263b10cd29dd9de276a7cf8d46c318e1df37be855af4
MD5 1f06b599b7123f15e44b5e7e83834902
BLAKE2b-256 f3cca782a3ed7380b694a840d93757ebe46b59148b63d8e3ee0a81b2d09f0c30

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