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.3.tar.gz (25.4 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.3-py3-none-any.whl (23.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: downloads_organizer-1.0.3.tar.gz
  • Upload date:
  • Size: 25.4 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.3.tar.gz
Algorithm Hash digest
SHA256 d42987b708b0e5977d717211080aaa397b3354f1188ccd67cf7def12aea65aa3
MD5 e5d0421a424d1b1eea73a3fa4487f669
BLAKE2b-256 a0faf77625fbecf8c182443d4f47d0a4f5f5106602a72be9893a7781709ad409

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for downloads_organizer-1.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 2cae36bb96103fa77ce10d463f216da3252ea1943ef5290eb65c08cd8e088e6f
MD5 211a2659e25101c22bc41b4a97ca2b48
BLAKE2b-256 7776fc9106a6950202fdc34e4d1bc7e82086e50783eb4862970106a5ad2432c5

See more details on using hashes here.

Provenance

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