Skip to main content

AI-powered local file management with state-of-the-art models

Project description

File Organizer v2.0

CI Docs Python 3.11+ License: MIT Version

AI-powered local file management. Local-first by default (Ollama, no cloud required) -- or connect any OpenAI-compatible endpoint or Anthropic Claude when you need it.

840 tests | 408 modules | 39 file types

TUI overview

Contents

Features

AI and Analysis

  • AI-Powered Organization: Qwen 2.5 3B (text) + Qwen 2.5-VL 7B (vision) via Ollama — or any OpenAI-compatible endpoint (OpenAI, LM Studio, vLLM) — or Anthropic Claude
  • Audio Transcription: Local speech-to-text with faster-whisper (GPU-accelerated)
  • Video Analysis: Scene detection and keyframe extraction
  • Intelligence: Pattern learning, preference tracking, smart suggestions, auto-tagging

Interfaces

  • Terminal UI: 8-view Textual TUI (Files, Analytics, Audio, History, Copilot, and more)
  • Web UI: Browser-based interface via FastAPI and HTMX
  • Desktop App: Native OS window via pywebview — single Python process, no Electron, no Rust
  • Full CLI: Organize, rules, suggest, dedupe, daemon, analytics, update, api-keys
  • Copilot Chat: Natural-language assistant -- "organize ./Downloads", "find report.pdf", "undo"

Organization

  • Organization Rules: Automated sorting with conditions, preview, and YAML persistence
  • PARA + Johnny Decimal: Built-in organizational methodologies
  • Deduplication: Hash and semantic duplicate detection
  • Undo/Redo: Full operation history
  • Auto-Update: GitHub Releases checks with verified downloads and rollback
  • Cross-Platform: macOS (DMG), Windows (installer), Linux (AppImage) executables

How It Works

 Source Directory          AI Analysis              Organized Output
┌──────────────┐     ┌──────────────────┐     ┌──────────────────┐
│  ./Downloads │     │  Content         │     │  ./Organized     │
│              │     │  Extraction      │     │                  │
│  report.pdf  │────>│  (text, vision,  │────>│  Work/           │
│  photo.jpg   │     │   audio, video)  │     │    Reports/      │
│  meeting.mp3 │     │                  │     │  Photos/         │
│  clip.mp4    │     │  AI Categorize   │     │    Vacation/     │
│  notes.txt   │     │  (Ollama/OpenAI/ │     │  Audio/          │
│              │     │   Claude)        │     │    Meetings/     │
└──────────────┘     └──────────────────┘     └──────────────────┘
                              │
                     ┌────────┴────────┐
                     │  Learn & Adapt  │
                     │  (patterns,     │
                     │   preferences,  │
                     │   rules)        │
                     └─────────────────┘
  1. Scan — Reads files from a source directory, extracting text, metadata, and visual content per file type (80+ formats supported)
  2. Analyze — Sends extracted content to an AI model (Ollama, OpenAI, or Claude) for categorization and naming
  3. Organize — Moves or copies files into a structured folder hierarchy with AI-generated names
  4. Learn — Tracks your patterns and preferences over time for smarter future suggestions

Screenshots

TUI demo

Quick Start (Essentials)

With Ollama (local, default)

pip install -e .

# 1) Configure defaults
fo setup

# 2) Preview a folder before changing anything
fo preview ~/Downloads

# 3) Run organization
fo organize ~/Downloads ~/Organized

# 4) Roll back the most recent organize run if needed
fo undo

Prefer a browser?

file-organizer serve --reload

Then visit http://localhost:8000/ui/.

Need cloud providers instead of the default local flow?

Use the AI Provider Setup guide for OpenAI-compatible endpoints and Claude.

# OpenAI-compatible providers
export FO_PROVIDER=openai

# Anthropic Claude
export FO_PROVIDER=claude

Web UI

Start the FastAPI server and open the UI:

file-organizer serve --reload

Then visit http://localhost:8000/ui/ for the HTMX interface.

Documentation

Essentials

Advanced / Admin / Developer

Optional Feature Packs

Canonical extras matrix:

Common installs:

pip install -e ".[parsers,web]"
pip install -e ".[cloud,claude]"
pip install -e ".[all]"

Audio system dependencies

For full audio format support, the [audio] pack uses FFmpeg (all platforms) and optionally CUDA + cuDNN (NVIDIA GPU users).

FFmpeg — required for non-.wav formats (MP3, M4A, FLAC, OGG); optional if you only transcribe raw .wav:

# macOS
brew install ffmpeg

# Ubuntu / Debian
sudo apt install ffmpeg

# Windows (winget)
winget install ffmpeg

CUDA + cuDNN — optional, for significantly faster transcription (see faster-whisper benchmarks for hardware-specific numbers):

# Install CUDA Toolkit from https://developer.nvidia.com/cuda-downloads
# Install cuDNN from https://developer.nvidia.com/cudnn

# Verify the full transcription backend (not just PyTorch)
python3 -c "from faster_whisper import WhisperModel; print('faster-whisper OK')"
python3 -c "import torch; print('CUDA:', torch.cuda.is_available())"

Fallback behavior: without FFmpeg, only .wav files are transcribed; other formats are organized by filename/metadata but not content-analyzed. Without CUDA, transcription runs on CPU (slower but fully functional).

See the Installation Guide for troubleshooting and advanced configuration.

Project Structure

Click to expand
src/file_organizer/
├── api/              # FastAPI web backend
├── cli/              # CLI commands and entry points
├── client/           # HTTP client utilities
├── config/           # Configuration management
├── core/             # Organization engine and business logic
├── daemon/           # Background file watcher daemon
├── deploy/           # Deployment helpers
├── desktop/          # Native desktop app (pywebview)
├── events/           # Event system
├── history/          # Operation history and undo/redo
├── integrations/     # External service integrations
├── interfaces/       # Abstract interfaces and protocols
├── methodologies/    # PARA, Johnny Decimal implementations
├── models/           # Data models
├── optimization/     # Performance optimization
├── parallel/         # Parallel processing
├── pipeline/         # File processing pipeline
├── plugins/          # Plugin system (audio, video, archives, etc.)
├── review_regressions/ # Code quality detectors
├── services/         # Core services (analytics, dedup, text, etc.)
├── tui/              # Textual terminal UI (8 views)
├── undo/             # Undo/redo infrastructure
├── updater/          # Auto-update from GitHub Releases
├── utils/            # Shared utilities
├── watcher/          # File system watcher
└── web/              # HTMX web UI templates and assets

Development

# Run tests
pytest

# Lint
ruff check src/

Contributing

See CONTRIBUTING.md for development setup, coding standards, and how to submit changes.

Configuration

Configuration is stored in platform-appropriate locations using platformdirs:

  • macOS: ~/Library/Application Support/file-organizer/
  • Linux: ~/.config/file-organizer/ (or $XDG_CONFIG_HOME/file-organizer/)
  • Windows: %APPDATA%/file-organizer/

See Configuration Guide for details.

License

This project is licensed under the MIT License.


Status: Beta 1 | Version: 2.0.0-beta.1 | Last Updated: 2026-07-04

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

local_file_organizer-2.0.0b1.tar.gz (1.0 MB view details)

Uploaded Source

Built Distribution

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

local_file_organizer-2.0.0b1-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file local_file_organizer-2.0.0b1.tar.gz.

File metadata

  • Download URL: local_file_organizer-2.0.0b1.tar.gz
  • Upload date:
  • Size: 1.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for local_file_organizer-2.0.0b1.tar.gz
Algorithm Hash digest
SHA256 bcf7ade4ecd32661f373d01b69ae021ca7ca50e92250a7c21772e99dfaa53d67
MD5 cb9f74ff5ffdf4174e874e41313f8419
BLAKE2b-256 be5983147b7ddb1fcce1c470da54358da2497f27ddab2ae641dacf7c38b410a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for local_file_organizer-2.0.0b1.tar.gz:

Publisher: release.yml on curdriceaurora/Local-File-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 local_file_organizer-2.0.0b1-py3-none-any.whl.

File metadata

File hashes

Hashes for local_file_organizer-2.0.0b1-py3-none-any.whl
Algorithm Hash digest
SHA256 b03b1901cbae21377abc72e11e85d26ddc4b93ce4d0c5b143d5110c187bf74e1
MD5 bb8c89fdb5395940090a8b2cd967e692
BLAKE2b-256 92121126c6ceff27050c63cd8485b8f3a37335f0154862acec88e4fb7e9bfb37

See more details on using hashes here.

Provenance

The following attestation bundles were made for local_file_organizer-2.0.0b1-py3-none-any.whl:

Publisher: release.yml on curdriceaurora/Local-File-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