Skip to main content

Smart downloads folder organizer powered by local AI (Ollama)

Project description

PyPI version Python versions License: MIT CI Downloads

Downloads Organizer

Smart downloads folder organizer powered by local AI (Ollama). Compatible with macOS and Linux. Installs with pipx and runs as a system service.

Your files never leave your machine — all AI classification happens locally via Ollama.


Demo

~/Downloads/
├── 📥 Recién Descargado/      ← files from today
└── 📁 Organizado/
    ├── 🔴 Urgente/
    │   ├── Trabajo/
    │   │   └── documento/
    │   └── Finanzas/
    │       └── hoja_de_calculo/
    ├── 🟡 Normal/
    │   └── Personal/
    │       └── imagen/
    └── 📦 Archivo/

Requirements

  • Python ≥ 3.10
  • pipx — to install the CLI
  • Ollama — local AI engine

Installation

macOS

# 1. Install Ollama
brew install ollama
ollama serve &
ollama pull llama3.2

# 2. Install pipx (if needed)
brew install pipx
pipx ensurepath

# 3. Install Downloads Organizer
pipx install downloads-organizer

# 4. Enable system service
dorg install

Linux

# 1. Install Ollama
curl -fsSL https://ollama.ai/install.sh | sh
ollama pull llama3.2

# 2. Install pipx (if needed)
pip install pipx --user && pipx ensurepath

# 3. Install Downloads Organizer
pipx install downloads-organizer

# 4. Enable systemd service
dorg install

Usage

Command Description
dorg install Install and enable system service
dorg uninstall Remove system service
dorg status Service status + statistics
dorg classify Classify pending files now
dorg watch Start in foreground (debug mode)
dorg logs View service logs
dorg logs -n 200 View last N log lines
dorg config Edit configuration file
dorg config --set ollama.model=mistral Change Ollama model
dorg projects List approved projects
dorg projects --add Trabajo Add project manually

Configuration

File: ~/.config/downloads-organizer/config.yaml

downloads_folder: ~/Downloads
recent_folder_name: Recién Descargado   # staging folder for new files
organized_folder_name: Organizado        # destination for classified files
classify_time: "06:00"                   # daily classification time

ollama:
  base_url: http://localhost:11434
  model: llama3.2
  timeout: 60
  confidence_threshold: 0.65             # below this → ask user

projects:                                # approved project names
  - Trabajo
  - Personal
  - Finanzas
  - Estudio

Recommended Ollama Models

Model Size Speed Quality Best for
llama3.2 2 GB Fast Good Default, everyday use
mistral 4 GB Medium Very good More nuanced classification
phi3 2 GB Fast Good Low-RAM machines
gemma2 5 GB Slow Excellent Best accuracy

Change model:

ollama pull mistral
dorg config --set ollama.model=mistral

How It Works

New file detected
      │
      ▼
[watchdog event]
      │
      ▼
_should_move()? ──No──► ignore
      │
     Yes
      │
      ▼
wait for file ready (download complete)
      │
      ▼
move → Recién Descargado/
+ native notification
      │
      ▼
      (daily at 06:00)
      │
      ▼
[Ollama classification]
      │
      ├─ confidence ≥ 0.65 + known project
      │         └─► move automatically
      │
      ├─ confidence < 0.65
      │         └─► show interactive dialog
      │
      └─ new project suggested
                └─► ask user to approve/rename/reject
                          └─► move to Organizado/

Contributing

See CONTRIBUTING.md for development setup, commit conventions, and the pull request process.


License

MIT — see LICENSE. Copyright (c) 2025 Jarsa Sistemas

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

downloads_organizer-1.0.2.tar.gz (24.5 kB view details)

Uploaded Source

Built Distribution

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

downloads_organizer-1.0.2-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

Details for the file downloads_organizer-1.0.2.tar.gz.

File metadata

  • Download URL: downloads_organizer-1.0.2.tar.gz
  • Upload date:
  • Size: 24.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for downloads_organizer-1.0.2.tar.gz
Algorithm Hash digest
SHA256 b030f34d8a9043dc144ce1947ce7acf13c332359af84d80dd77fdc0f1e2985bf
MD5 21c620861f33e97868c5a76ad9595daa
BLAKE2b-256 68780f0529155700b28d92a205a28ddf8e6921f6bee74de53400cf2ba3317907

See more details on using hashes here.

Provenance

The following attestation bundles were made for downloads_organizer-1.0.2.tar.gz:

Publisher: release.yml on Jarsa/downloads-organizer

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

File details

Details for the file downloads_organizer-1.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for downloads_organizer-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 a7104b2f7e604bf28b551275bea42ead2a7b822743c34610d5b983bd98737cfd
MD5 58e9abf9b23431b93c2c7c3a7d570857
BLAKE2b-256 45b4420b25eb339a3a1496a0c5867a7e05f4c9a2f0fbecd213b13590e7bff0a7

See more details on using hashes here.

Provenance

The following attestation bundles were made for downloads_organizer-1.0.2-py3-none-any.whl:

Publisher: release.yml on Jarsa/downloads-organizer

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