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.4.tar.gz (24.8 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.4-py3-none-any.whl (23.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: downloads_organizer-1.0.4.tar.gz
  • Upload date:
  • Size: 24.8 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.4.tar.gz
Algorithm Hash digest
SHA256 482ee11e68372e69f23dcf7446b9c3b48f53a36e186d824dae7c00570e340541
MD5 37e7daa6b7ed71fc88f098facb0b2bba
BLAKE2b-256 3853a260533826f6976fe9d981ea6d9d1d556e065a3ce3067d2eeb57b5717aef

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for downloads_organizer-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 2404c45b47f27a9a27031ab9c3aae825f06251906247af04c11323b6123144a4
MD5 b9f384596e0e6f6a782486f6d90b678b
BLAKE2b-256 bf9fe0c8282ade6ee8fc1bdaa85a90b1c5724aa7357b5de606e35bbfb74aa15e

See more details on using hashes here.

Provenance

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