TidyBox is a command-line file organizer built in Python that helps keep your directories clean and organized.
Instead of manually sorting files every week, TidyBox can automatically group files by type, move them into organized folders, preview changes before they happen, and even undo previous operations.
Perfect for managing Downloads folders, school projects, screenshots, archives, and other file collections.
- Organize files by extension
- Dry-run mode for safe previews
- Undo previous operations
- Recursive directory scanning
- Custom organization rules
- Detailed logging
- Cross-platform support (Linux, Windows, macOS)
- Watch mode for automatic organization
Clone the repository:
git clone https://github.com/strpowkno/tidybox.git
cd tidyboxCreate a virtual environment:
python -m venv .venv
source .venv/bin/activateInstall dependencies:
pip install -r requirements.txtpython tidybox.py scan ~/Downloadspython tidybox.py clean ~/Downloads --dry-runpython tidybox.py clean ~/Downloadspython tidybox.py undopython tidybox.py watch ~/DownloadsAfter building with PyInstaller, move the binary to a directory on your PATH so you can run tidybox from anywhere.
mkdir -p ~/.local/bin
cp dist/tidybox ~/.local/bin/tidyboxThen add this to your ~/.bashrc or ~/.zshrc:
export PATH="$HOME/.local/bin:$PATH"Apply it:
source ~/.bashrcMove dist/tidybox.exe to a folder like C:\Users\YourName\bin\, then add that folder to PATH:
- Search "Environment Variables" in the Start menu
- Click "Environment Variables"
- Under "User variables", select
Path→ Edit - Click New and paste the folder path
- Click OK and restart your terminal
which tidybox # Linux/macOS
where tidybox # WindowsBefore:
Downloads/
├── image.png
├── archive.zip
├── homework.pdf
├── script.py
└── screenshot.jpg
After:
Downloads/
├── Images/
│ ├── image.png
│ └── screenshot.jpg
├── Archives/
│ └── archive.zip
├── Documents/
│ └── homework.pdf
└── Code/
└── script.py
tidybox/
├── tidybox/
│ ├── cli.py
│ ├── organizer.py
│ ├── logger.py
│ ├── undo.py
│ ├── rules.py
│ └── watcher.py
├── logs/
├── tests/
├── requirements.txt
├── README.md
└── LICENSE
Most file organizers are either too simple or too heavy. TidyBox aims to provide a fast, lightweight, and transparent solution that users can trust.
Every operation can be previewed before execution, logged for later review, and reversed if needed.
Contributions, feature requests, and bug reports are welcome.
Feel free to open an issue or submit a pull request.
Licensed under the MIT License.