Skip to main content

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 Logo

PyPI version GitHub release (latest by date) Python 3.10-3.13 uv Ruff codecov Tests GitHub last commit License: MIT Contributions Welcome

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-run before 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)

  • ๐ŸŒ Multi-language Interface: Switch between different languages using --lang flag for global accessibility
  • โ†ฉ๏ธ Reversible Operations: Easily undo recent file organizations with --undo command
  • ๐Ÿ“ 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

Future Roadmap (v0.8.0+)

  • ๐Ÿ” 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
  • ๐Ÿ’พ History System: Browse and restore previous file organizations
  • ๐ŸŽจ Terminal Themes: Customize CLI appearance with modern color schemes
  • ๐Ÿ”” Smart Notifications: Get notified when long-running operations complete
  • โšก Reliable Processing: Resume interrupted operations where they left off
  • ๐Ÿ” Safety Checks: Verify file integrity before and after operations
  • ๐Ÿ“ฑ 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: PyPI version
  • Python Compatibility: Python 3.10-3.13
  • Platform Support: Windows, macOS, Linux

Created with โค๏ธ by Serhii Ryzhaiev

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

tidyfiles-0.6.13rc1.tar.gz (71.6 kB view details)

Uploaded Source

Built Distribution

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

tidyfiles-0.6.13rc1-py3-none-any.whl (12.5 kB view details)

Uploaded Python 3

File details

Details for the file tidyfiles-0.6.13rc1.tar.gz.

File metadata

  • Download URL: tidyfiles-0.6.13rc1.tar.gz
  • Upload date:
  • Size: 71.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tidyfiles-0.6.13rc1.tar.gz
Algorithm Hash digest
SHA256 7360812c4ae1c1d7cb74f7f833e88746fdc37523d786a0506d7b44d0bc5d6076
MD5 1e948126bcd232b4fe22397615c5f6eb
BLAKE2b-256 93f49e4c5b60cd2e85fbfd3030a287ec43fe9144ef240b8d4b6606dee1838c9e

See more details on using hashes here.

Provenance

The following attestation bundles were made for tidyfiles-0.6.13rc1.tar.gz:

Publisher: release.yaml on RYZHAIEV-SERHII/TidyFiles

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file tidyfiles-0.6.13rc1-py3-none-any.whl.

File metadata

  • Download URL: tidyfiles-0.6.13rc1-py3-none-any.whl
  • Upload date:
  • Size: 12.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for tidyfiles-0.6.13rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 2efc3724db0795d06cc00fa16d8ef9a9b960d467797406ff7dd198b8751c17d5
MD5 7b3bdd4dbdb475fb75951470b76b4113
BLAKE2b-256 c79956fc84e50adb32dbe281f40ec6b57fab70de1e0c051a29e39e0f3e5da0e4

See more details on using hashes here.

Provenance

The following attestation bundles were made for tidyfiles-0.6.13rc1-py3-none-any.whl:

Publisher: release.yaml on RYZHAIEV-SERHII/TidyFiles

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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