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.0.tar.gz (24.2 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.0-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: downloads_organizer-1.0.0.tar.gz
  • Upload date:
  • Size: 24.2 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.0.tar.gz
Algorithm Hash digest
SHA256 cc7168d8a2e8dbf491e4c44c9269aece5997f8334070db1c14cc560592c240ee
MD5 1f3092e5f11d5bb126a5c688a46fd735
BLAKE2b-256 9a5d8f0b9a4c73f203a265de70eac0e806916e89d8029c53e2a3e31f0bbf3754

See more details on using hashes here.

Provenance

The following attestation bundles were made for downloads_organizer-1.0.0.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.0-py3-none-any.whl.

File metadata

File hashes

Hashes for downloads_organizer-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3b281160560d05b1f76d6f3ff0c937d0ecba0e710eec993995f4ffcded9527ed
MD5 bcf7512b6c873863efe6af1d87c281fc
BLAKE2b-256 7f75de737923269a858ce237c50c48db6bad90061bbac3455e38da7ba999d90e

See more details on using hashes here.

Provenance

The following attestation bundles were made for downloads_organizer-1.0.0-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