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.1.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.1-py3-none-any.whl (22.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: downloads_organizer-1.0.1.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.1.tar.gz
Algorithm Hash digest
SHA256 a91cc58e157d150f1aba237f7459fdf11f5b4f6f225c4b9715b4ccf127d7dd75
MD5 cb9f5934c0834a897f5150c112c07815
BLAKE2b-256 b822753e970e5a719f6be8bcbc2295f6146c431f32e1c4695040276648cd0ef6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for downloads_organizer-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e031082238f81210fb965dfbd80927a657ea35c9873b9724348769c8128686f4
MD5 5f0154f0a18c414962d866fdd2648ab2
BLAKE2b-256 dddbc70b68cce3ff236352764d4359a7ea4663a14691a63c6079fca711806dfc

See more details on using hashes here.

Provenance

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