This release is a pre-release and may not be stable for production use.
fo-core
Local AI file organizer. Point it at a directory — it categorizes and moves your files using a model running on your own machine. Local by default: Ollama runs on-device, no API key required. Cloud providers are optional extras.
Prerequisites
-
Python 3.11 or later — check with
python3 --version -
Ollama — install from ollama.ai, then start it:
ollama serve
Install
pip install fo-core
Then pull the default AI model (first-time only, ~3 GB):
ollama pull gemma3:4b
Verify optional deps for your files:
fo doctor ~/Downloads
Quick Start
# Preview what would happen — no files are moved
fo organize ~/Downloads ~/Organized --dry-run
# Run it for real
fo organize ~/Downloads ~/Organized
# Changed your mind?
fo undo
Commands
| Command | What it does |
|---|---|
fo organize [SRC] [DEST] |
Organize files using AI categorization |
fo preview [SRC] |
Dry-run preview without moving files |
fo search [QUERY] |
Full-text search across files |
fo analyze [DIR] |
File statistics and analysis |
fo dedupe |
Find and remove duplicate files |
fo suggest |
AI-powered organization suggestions |
fo autotag |
Auto-tag files based on content |
fo copilot |
Natural-language assistant |
fo rules |
Manage organization rules (YAML) |
fo config show|list|edit |
View or update configuration |
fo doctor [DIR] |
Scan a directory and recommend optional deps |
fo daemon start|stop |
Background file watcher |
fo undo / redo / history |
Operation history and rollback |
fo model |
Select or inspect AI models |
fo benchmark |
Performance benchmarks |
fo setup |
Interactive setup wizard |
Full flag documentation: docs/cli-reference.md
AI Providers
Default: Ollama — runs entirely on your machine, no API key needed.
Cloud providers are optional extras:
| Provider | Install | Works with |
|---|---|---|
| OpenAI-compatible | pip install "fo-core[cloud]" |
OpenAI, LM Studio, vLLM, Groq |
| Anthropic Claude | pip install "fo-core[claude]" |
Claude text + vision models |
| llama.cpp | pip install "fo-core[llama]" |
GGUF models — no Ollama required |
| MLX (Apple Silicon) | pip install "fo-core[mlx]" |
MLX-optimized local models |
Optional Feature Packs
Core file types (PDF, DOCX, XLSX, PPTX, EPUB, ZIP) work out of the box. RAR also works but requires a system-level unrar or unar binary. Install extras for additional capabilities:
| Pack | Install | Adds |
|---|---|---|
media |
pip install "fo-core[media]" |
Audio transcription (faster-whisper) + video scene detection. Use fo organize --transcribe-audio for content-aware audio categorization, or verify the install with fo benchmark run --suite audio --transcribe-smoke. |
dedup-text |
pip install "fo-core[dedup-text]" |
TF-IDF/cosine text deduplication |
dedup-image |
pip install "fo-core[dedup-image]" |
Image similarity deduplication |
scientific |
pip install "fo-core[scientific]" |
HDF5, NetCDF, MATLAB formats |
cad |
pip install "fo-core[cad]" |
DXF/DWG CAD files |
search |
pip install "fo-core[search]" |
BM25 + vector search |
all |
pip install "fo-core[all]" |
All of the above |
Configuration
Config lives in ~/.config/fo/config.yaml. Override the location with the FO_CONFIG environment variable.
fo config show # view all settings
fo config edit --text-model gemma3:4b # change text model
fo config edit --device auto # change device
Full configuration reference: docs/CONFIGURATION.md
Documentation
| Doc | Contents |
|---|---|
| Getting Started | Installation options, first run, platform notes |
| CLI Reference | Every command and flag |
| Configuration | All config keys explained |
| FAQ | Common questions and troubleshooting |
| Troubleshooting | Diagnosing connection and model issues |
Contributing / Development
See DEVELOPER.md for architecture, local setup, testing, and contribution guidelines.
Releases
Currently 2.0.0-beta.7. The acceptance criteria that were required for this
promotion and the contract with public pre-release testers are documented in
docs/release/beta-criteria.md.
License
MIT OR Apache-2.0
Metadata
Release files for fo-core 2.0.0b8
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fo_core-2.0.0b8.tar.gz | 748.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fo_core-2.0.0b8-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 1.6 MB
Release files / fo_core-2.0.0b8.tar.gz
| Download URL | fo_core-2.0.0b8.tar.gz |
|---|---|
| Size | 748.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
b3de908dd360b342bf1a15bb4f8645dc8a5e5918efab0f7af3cce8cf4584b66e
|
|
BLAKE2b-256 checksum How to use checksums |
bc9d42ac6ee05ec8c06bbd17d74c3693380f9d681a5d402e8688763831bf9142
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 24, 2026.
Transparency logRelease files / fo_core-2.0.0b8-py3-none-any.whl
| Download URL | fo_core-2.0.0b8-py3-none-any.whl |
|---|---|
| Size | 864.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
d309599e806724037f89ccaadfae76501840f888a985306105f804fefa013d9f
|
|
BLAKE2b-256 checksum How to use checksums |
5b59c5922a77b218321f059e4f82b2a4228a7320a2f289e32cefcd88a63822db
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.13
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 24, 2026.
Transparency log