TidyFiles is a user-friendly, lightweight CLI tool designed to bring order to your Downloads (or any other) folder! It intelligently organizes files by type and keep logs of all the sorting magic.
Project description
TidyFiles
TidyFiles is a user-friendly, lightweight CLI tool designed to bring order to your Downloads (or any other) folder! It intelligently organizes files by type and keeps logs of all the sorting magic.
๐ Features
- Smart Organization: Automatically categorizes files by type (images, documents, videos, etc.)
- Dry Run Mode: Preview changes with
--dry-runbefore actual organization - Flexible Configuration: Customize source and destination directories
- Detailed Logging: Track all operations with console and file logging
- Rich CLI Interface: Beautiful command-line interface with progress indicators
- Safe Operations: Maintains file integrity during organization
๐ง Tech Stack
-
Core Dependencies
- Python >=3.10: Modern Python features
- Typer: Elegant CLI interface
- Rich: Beautiful terminal formatting
- Loguru: Advanced logging
- Click: CLI framework (Typer dependency)
-
Development Tools
- Ruff: Fast Python linter and formatter
- Pre-commit: Automated code quality checks
- Semantic Release: Automated versioning
-
Testing Framework
- PyTest: Comprehensive test coverage
- Coverage reporting: Detailed test coverage analysis
๐ Getting Started
Installation
pip install tidyfiles
Basic Usage
tidyfiles --source-dir /path/to/your/downloads
Advanced Usage
# Dry run to preview changes
tidyfiles --source-dir ~/Downloads --dry-run
# Specify custom destination
tidyfiles --source-dir ~/Downloads --destination-dir ~/Organized
# Custom logging
tidyfiles --source-dir ~/Downloads --log-console-level DEBUG
๐ Example Organization
Before
Downloads/
โโโ photo.jpg
โโโ document.pdf
โโโ video.mp4
After
Downloads/
โโโ images/
โ โโโ photo.jpg
โโโ documents/
โ โโโ document.pdf
โโโ videos/
โ โโโ video.mp4
๐ Logging
TidyFiles generates detailed logs in:
- Console output (configurable level)
- Log file (
~/.tidyfiles/tidyfiles.log)
๐ ๏ธ Contributing
We welcome contributions! Check out our Contributing Guidelines.
๐ License
This project is licensed under the MIT License. See the LICENSE file for details.
๐ฏ Roadmap & Development
Upcoming Features (v0.7.0)
- โฉ๏ธ Reversible Operations: Easily undo recent file organizations with
--undocommand. - ๐พ History System: Browse and restore previous file organizations.
- โก Reliable Processing: Resume interrupted operations where they left off, ensuring operations can be continued or undone based on the saved history.
- ๐ Safety Checks: Verify file integrity before and after operations to ensure reliable processing.
Future Roadmap (v0.8.0+)
- ๐ Info Feature Expansion: Enhance the info feature to provide detailed metadata and file information.
- ๐ Multi-language Interface: Switch between different languages using
--langflag for global accessibility. - ๐ Custom Categories: Define your own file categories and organization rules via simple configuration.
- ๐๏ธ Smart Subdirectories: Create dynamic folder structures based on file metadata and patterns.
- ๐ Smart Deduplication: Intelligently detect and handle duplicate files while preserving the newest versions.
- โจ Advanced Renaming: Bulk rename files using patterns, dates, and custom templates.
- ๐ค AI Organization: Use AI to categorize files based on content, not just extensions.
- ๐ฅ๏ธ GUI Interface: Optional graphical interface for users who prefer visual file management.
- โ๏ธ Cloud Integration: Direct organization of Dropbox and Google Drive folders.
- โฐ Scheduled Tasks: Set up automatic organization at specified times or intervals.
- ๐๏ธ Smart Compression: Automatically compress old or large files to save space.
- ๐ Organization Presets: Save and share your favorite organization patterns.
- ๐ Usage Analytics: Track space savings and organization patterns over time.
- ๐ Silent Updates: Seamless background updates with rollback support.
- ๐จ Terminal Themes: Customize CLI appearance with modern color schemes.
- ๐ Smart Notifications: Get notified when long-running operations complete.
- ๐ฑ Remote Control: Monitor and manage operations from your mobile device.
For detailed version history and latest changes, see our CHANGELOG ๐
๐ Stats
- First Release: March 2025
- Latest Version:
- Python Compatibility:
- Platform Support: Windows, macOS, Linux
Created with โค๏ธ by Serhii Ryzhaiev
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 tidyfiles-0.7.0b1.tar.gz.
File metadata
- Download URL: tidyfiles-0.7.0b1.tar.gz
- Upload date:
- Size: 87.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
44ca3b617d8505b29d104a319ba24e479b0f851c2cba6ff152cfde2526455cf7
|
|
| MD5 |
b646c530f3dc998f2e63e12a6d10769b
|
|
| BLAKE2b-256 |
0ed32a1064552cee7842d780d224db3ab77b2354f2cac025544e739d8882e746
|
Provenance
The following attestation bundles were made for tidyfiles-0.7.0b1.tar.gz:
Publisher:
release.yaml on RYZHAIEV-SERHII/TidyFiles
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tidyfiles-0.7.0b1.tar.gz -
Subject digest:
44ca3b617d8505b29d104a319ba24e479b0f851c2cba6ff152cfde2526455cf7 - Sigstore transparency entry: 192082501
- Sigstore integration time:
-
Permalink:
RYZHAIEV-SERHII/TidyFiles@4e09ee2e15d1aee7a1d521a0572d6a90db202681 -
Branch / Tag:
refs/heads/beta/next - Owner: https://github.com/RYZHAIEV-SERHII
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@4e09ee2e15d1aee7a1d521a0572d6a90db202681 -
Trigger Event:
push
-
Statement type:
File details
Details for the file tidyfiles-0.7.0b1-py3-none-any.whl.
File metadata
- Download URL: tidyfiles-0.7.0b1-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
628cbbc2aeb1ca2fd422ce3b930e5b29b20e859fecb77428dbca8538a806cf2d
|
|
| MD5 |
f95cc98cfd8c7fca229a4e48de5867e5
|
|
| BLAKE2b-256 |
4a84f519d377111dca71ea985825612d92dc921f884298e4e993e0e9506e2f34
|
Provenance
The following attestation bundles were made for tidyfiles-0.7.0b1-py3-none-any.whl:
Publisher:
release.yaml on RYZHAIEV-SERHII/TidyFiles
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
tidyfiles-0.7.0b1-py3-none-any.whl -
Subject digest:
628cbbc2aeb1ca2fd422ce3b930e5b29b20e859fecb77428dbca8538a806cf2d - Sigstore transparency entry: 192082503
- Sigstore integration time:
-
Permalink:
RYZHAIEV-SERHII/TidyFiles@4e09ee2e15d1aee7a1d521a0572d6a90db202681 -
Branch / Tag:
refs/heads/beta/next - Owner: https://github.com/RYZHAIEV-SERHII
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yaml@4e09ee2e15d1aee7a1d521a0572d6a90db202681 -
Trigger Event:
push
-
Statement type: