Skip to content

watfile

CLI that classifies documents with a Jev Choice and moves them into category folders, with a pluggable backend for local models.

Projectbeta

Overview

watfile sorts files into folders by classifying them with a decision model. It extracts a title- or abstract-grade portion of each document's text, sends it to Jev as a Choice question over your categories, and receives the chosen category, per-category probabilities and confidence before moving the file. Categories can be given as a comma-separated list with optional descriptions or taken from the subfolders of a target directory.

It supports recursive folder input and a dry-run preview. A Classifier abstraction keeps the backend pluggable, with local MLX (LAYA) and other backends planned. It is published on PyPI, runnable with uvx, and resolves the API key from the environment, a .env file or a config file.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich category does this document belong to?e.g. invoice · donation · apartment

How it works

  1. Point watfile at files or folders.
  2. Extract a short text summary from each file.
  3. Jev chooses a category with probabilities.
  4. Move the file into the category folder (or preview with -n).

Strengths

  • Dry-run preview before moving files.
  • Categories from folder structure.
  • Pluggable backend design.

Caveats

  • Local backends are planned, not yet available.
  • Document text is sent to TypeSafe.

Getting started

uvx watfile ~/Downloads -r -d ~/docs -n

At a glance

Type
Project
Status
beta
Language
Python
Runtime
CLI
Has code
yes

Use cases and integrations

How curated lists describe it

  • Text/PDF - File categorization and sorting with Typesafe AI Jev or local calibrated decision model.

    hellogumbo/awesome-jev

Frequently asked questions

How are categories defined?

With -c (comma-separated, optional descriptions) or -d (subfolders of a target directory).

Can I preview first?

Yes, -n shows what would happen without moving files.

Does it work offline?

Not yet; local backends are planned.

Related projects

  • Privacy-first personal knowledge management system, listed as integrating Jev for document classification and tag routing.

    PluginproductionTypeScript
  • Go terminal app that files documents using five Jev questions: category, sensitivity, urgency, whether action is needed and action state.

    ProjectbetaGo
  • Obsidian plugin that ranks existing vault folders and tags for the active note with Jev and only moves or tags after you confirm.

    ProjectbetaTypeScript
  • LLM-maintained Markdown wiki where a System One classifier decides where documents and questions go, keeping it fast as it grows.

    ServicebetaPython
  • Docker service that classifies the Paperless-ngx inbox with Jev (or local Clef via Ollama), setting confident fields and queueing the rest.

    Projectbeta
  • macOS menu-bar link router that opens each link in the right browser profile, asking Jev when no local rule matches and learning rules.

    ProjectbetaSwift