Skip to main content

Organises a certain folder in a few seconds

Project description

Dirganise

A CLI tool written in Python that organises a messy folder by file type.

Python License: MIT Version Platform


Features

  • Automatic sorting — moves files into categories: Images, Videos, Audio, Documents, Code, Compressed, Installers, Fonts, and Others
  • Custom rules — define your own extension-to-folder mappings via a JSON file
  • Dry-run mode — preview what would happen without touching the filesystem
  • Undo — revert the last organization with a single command
  • Conflict handling — appends a timestamp automatically if a file with the same name already exists

Installation

pip install dirganise

Or clone and install locally:

git clone https://github.com/yourusername/dirganise.git
cd dirganise
pip install -e .

Usage

# Organize a folder
dirganise /path/to/folder

# Preview changes without moving anything
dirganise . --dry-run

# Undo the last organization
dirganise . --undo

# Use custom rules from a JSON file
dirganise . --rules custom_rules.json

Options

Flag Short Description
--dry-run -n Preview changes without modifying the filesystem
--undo Revert the last dirganise operation in this folder
--rules FILE Path to a JSON file with custom extension-to-folder rules

Default Organization Rules

Category Extensions
Images .jpg .jpeg .png .gif .webp .svg .bmp .tiff .heic
Videos .mp4 .mov .avi .mkv .wmv .flv
Audio .mp3 .wav .flac .aac .ogg .m4a
Documents .pdf .docx .xlsx .pptx .txt .odt .rtf
Code .py .js .ts .html .css .json .csv .xml .sh .bat .ps1
Compressed .zip .rar .7z .tar .gz .bz2
Installers .exe .msi .dmg .pkg .deb .rpm
Fonts .ttf .otf .woff .woff2
Others Everything else

Custom Rules

Create a .json file mapping extensions to folder names:

{
  ".psd": "Design",
  ".ai": "Design",
  ".blend": "3D",
  ".csv": "Data"
}

Custom rules override the defaults for any matching extension. All other defaults remain active.

dirganise ~/Downloads --rules my_rules.json

Undo

After every organization, dirganise saves a log file (.dirganise_op.json) in the target folder. Use it to restore the original state:

dirganise /path/to/folder --undo

The log file is automatically deleted after a successful undo.


Example

$ dirganise ~/Downloads --dry-run

 dirganise  >  /home/user/Downloads

Images/
  photo_2024.jpg
  screenshot.png

Documents/
  report.pdf
  notes.txt

Code/
  script.py

Total files to move: 5

[Preview] No changes have been made to the file system.

Development

git clone https://github.com/yourusername/dirganise.git
cd dirganise
pip install -e .

Contributions, issues, and feature requests are highly welcome. Feel free to open a issue or submit a pull request.


Compatibility

dirganise relies only on the Python standard library and has no external dependencies, so it runs on any platform that supports Python 3.10+.

OS Minimum version
Windows 8.1
macOS 10.9 (Mavericks)
Linux Any modern distribution
FreeBSD 12.0
OpenBSD 7.0
NetBSD 9.0
DragonFlyBSD 6.0
Solaris / illumos Solaris 11.4 / OpenIndiana 2021+
AIX 7.2
Android Via Termux (Python 3.10+)
iOS / iPadOS Via Pythonista or similar (limited)

[!NOTE] It is not recommended for its use on Android or iOS for stability reasons.


License

MIT © 2026

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

dirganise-1.0.1.tar.gz (7.4 kB view details)

Uploaded Source

Built Distribution

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

dirganise-1.0.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file dirganise-1.0.1.tar.gz.

File metadata

  • Download URL: dirganise-1.0.1.tar.gz
  • Upload date:
  • Size: 7.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dirganise-1.0.1.tar.gz
Algorithm Hash digest
SHA256 07ed3ab4d1f2cdf9ec305895e4279971357e9b2fab6449f05c91bc1d8250e1b1
MD5 ad690c5f613ec130902e614b34c5cfbe
BLAKE2b-256 f9a9319362074e5702bccce560a3f67fef04c1b5c24298d539da321cd219c73a

See more details on using hashes here.

Provenance

The following attestation bundles were made for dirganise-1.0.1.tar.gz:

Publisher: pypi-publish.yml on dxvampi/dirganise

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

File details

Details for the file dirganise-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: dirganise-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for dirganise-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 74bab46fea5a110320a829b5a9fc88e1ee50f239e07de5720b9ffa323a194901
MD5 8979903b54437b58b7fa2e68b257f36c
BLAKE2b-256 65dc4ce1e338d22920fb1c6904c0ea8e43bc6a6e62b93c56c9377d2cbbc80815

See more details on using hashes here.

Provenance

The following attestation bundles were made for dirganise-1.0.1-py3-none-any.whl:

Publisher: pypi-publish.yml on dxvampi/dirganise

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