Agent skill

Downloads And Inbox Sorter

by mrmps in mrmps/classifier-dev

File a downloads or scanned-mail folder by classifying each file from its name plus the first 2,000 characters of text into invoice, receipt, contract, identity document, screenshot, installer or…

MITAuto-check passedDocuments & Office

Install Downloads And Inbox Sorter

skills CLI
$ npx skills add mrmps/classifier-dev --skill downloads-and-inbox-sorter -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mrmps/classifier-dev downloads-and-inbox-sorter --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mrmps/classifier-dev.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/downloads-and-inbox-sorter .claude/skills/downloads-and-inbox-sorter && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
downloads-and-inbox-sorter
GitHub stars
424
Token cost
~1.5k tokens
SKILL.md length
446 words
Files
1
Skills in repo
21
Repo updated
First seen
Licence
MIT

At a glance

File a downloads or scanned-mail folder by classifying each file from its name plus the first 2,000 characters of text into invoice, receipt, contract, identity document, screenshot, installer or…

  • Tasks that involve Forms and invoices
  • SKILL.md covers Before you run it, The watcher, Run it and Why 0.8, plus 1 more section
  • Calls python3; reaches classifier.dev
  • Tasks that involve Email management

What it does

Downloads And Inbox Sorter is an agent skill from mrmps/classifier-dev. File a downloads or scanned-mail folder by classifying each file from its name plus the first 2,000 characters of text into invoice, receipt, contract, identity document, screenshot, installer or none of these, and moving only the confident ones. Dry run first, an undo log for every move, and anything under 0.8 stays put. Use on "sort my downloads", "file these PDFs", "organise the invoices and receipts".

Its SKILL.md is about 1.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Documents & Office, covering Forms and invoices and Email management. The repository describes itself as: Zero-shot text classification over plain HTTP — no API key, no account. One Cloudflare Worker, a CLI, and an MCP server. https://classifier.dev. The licence is MIT.

When your agent uses it

  • Tasks that involve Forms and invoices
  • Tasks that involve Email management

Example prompts

  • “sort my downloads”
  • “file these PDFs”
  • “organise the invoices and receipts”
  • “/downloads-and-inbox-sorter”

Requirements

  • Python 3
  • Docker

What it can do on your machine

Read from SKILL.md and the folder at commit 629df75. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Shell commands in SKILL.md call:

    • python3

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • classifier.dev

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Downloads And Inbox Sorter loads about 1.5k tokens when it runs. Until then it costs about 109 tokens; SKILL.md has 446 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~109
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from mrmps/classifier-dev at commit 629df75, republished under its MIT licence (© mrmps). 446 words, ~1,496 tokens.

Download SKILL.mdSave it as .claude/skills/downloads-and-inbox-sorter/SKILL.md (or your agent's skills folder).
name
downloads-and-inbox-sorter
description
File a downloads or scanned-mail folder by classifying each file from its name plus the first 2,000 characters of text into invoice, receipt, contract, identity document, screenshot, installer or none of these, and moving only the confident ones. Dry run first, an undo log for every move, and anything under 0.8 stays put. Use on "sort my downloads", "file these PDFs", "organise the invoices and receipts".
license
MIT

Sort a downloads folder without opening every file

classifier.dev labels text against categories you choose and returns a calibrated confidence. No key. Here it reads a filename and a first page and says where the file goes, or that it cannot tell.

Three rules make it safe on a real folder: dry run by default, every move reversible, anything under 0.8 stays put.

Before you run it

  • The filename and up to 2,000 characters of each file go over HTTPS to classifier.dev. Point it at a downloads or scans folder, never at one holding keys, password exports or a source tree.
  • The identity document label means passport and licence scans get a first page sent. If that is not acceptable, drop the label.
  • PDF text needs pdftotext (poppler). Without it a PDF is judged on its filename alone, usually lands under 0.8 and stays: correct, but you will sort nothing. Install poppler first.
  • This is a script you run. It installs no scheduled job, no crontab and no login item; when it exits, nothing is left running.

The watcher

Save as sortfiles.py. Python 3, no dependencies.

python
#!/usr/bin/env python3
# sortfiles.py DIR [--apply] [--undo]   dry run unless --apply
import json, os, shutil, subprocess, sys, time, urllib.request
DIR = os.path.expanduser(sys.argv[1]); LOG = os.path.join(DIR, ".sorted.log")
F = {"invoice asking for payment": "Invoices", "receipt for something already paid": "Receipts",
     "contract or agreement": "Contracts", "identity document": "ID",
     "screenshot": "Screenshots", "software installer": "Installers"}

def peek(p):
    t = ""
    if p.lower().endswith(".pdf") and shutil.which("pdftotext"):
        t = subprocess.run(["pdftotext", "-l", "1", p, "-"], capture_output=True, text=True, timeout=20).stdout
    elif os.path.getsize(p) < 5_000_000:
        t = open(p, "rb").read(2000).decode("utf-8", "replace")
    if t and sum(c.isprintable() or c.isspace() for c in t) / len(t) < 0.8:
        t = ""                      # binary bytes classify as noise: filename only
    return f"{os.path.basename(p)}\n\n{t[:2000]}"

if "--undo" in sys.argv:
    for _, src, dst in reversed([l.split("\t") for l in open(LOG).read().splitlines()]):
        os.replace(dst, src); print("back", dst)
    os.remove(LOG); sys.exit()

files = [os.path.join(DIR, n) for n in sorted(os.listdir(DIR))
         if not n.startswith(".") and os.path.isfile(os.path.join(DIR, n))]
body = json.dumps({"labels": list(F) + ["none of these"], "inputs": [peek(p) for p in files],
                   "instructions": "Judge the document from the filename and the first page of text."}).encode()
req = urllib.request.Request("https://classifier.dev/v1/classify", data=body,
                             headers={"content-type": "application/json", "user-agent": "sorter/1"})
for p, r in zip(files, json.load(urllib.request.urlopen(req, timeout=60))["results"]):
    conf, dest = r["confidence"] or 0.0, F.get(r["label"])
    act = "move " if "--apply" in sys.argv else "would"
    if conf < 0.8 or not dest:
        act, dest = "stay ", r["label"]
    print(f"{act} {conf:.2f}  {dest:32.32} {os.path.basename(p)}")
    if act != "stay " and "--apply" in sys.argv:
        t = os.path.join(DIR, dest, os.path.basename(p)); os.makedirs(os.path.dirname(t), exist_ok=True)
        os.replace(p, t); open(LOG, "a").write(f"{int(time.time())}\t{p}\t{t}\n")

Run it

python3 sortfiles.py ~/Downloads           # dry run, moves nothing
python3 sortfiles.py ~/Downloads --apply   # moves, appends to .sorted.log
python3 sortfiles.py ~/Downloads --undo    # puts the last run back

Real output, seven-file folder:

would 1.00  Installers      Docker.dmg
stay  0.83  none of these   IMG_4417.HEIC
would 1.00  Invoices        INV-2291.txt
would 1.00  Contracts       MSA_signed.txt
stay  0.75  none of these   Northwind_proposal_v3.txt
would 1.00  Screenshots     Screenshot 2026-09-12 at 14.03.11.png
would 1.00  Receipts        receipt-7731.txt

Read the dry run before you pass --apply, stay rows first: they are what your labels do not cover yet.

Show full SKILL.md (234 more words)Show less

Why 0.8

Confidence is calibrated: measured, answers at or above 0.9 were right 82 to 92% of the time, answers under 0.5 right 29 to 64%. A move is cheap to reverse, so the line here is 0.8 rather than 0.9 — but only because the log exists. Without the log, use 0.9.

  • Northwind_proposal_v3 at 0.75 says in its own text that it is not an invoice and is unsigned, so it sits between two labels. Leaving it is right; a proposal or quote label would fix it properly.
  • IMG_4417.HEIC has no extractable text, so only the filename was classified. It scored none of these, which has no folder, so it stays. Scores in this band move a few points between runs: another reason not to act on them.

Pitfalls

  • Always include none of these. Every call returns one of your labels, so a bank statement against six document types is filed as one of them, and confidently, unless there is somewhere else to put it.
  • Binary bytes make noise. The script blanks an extract under 80% printable and falls back to the filename; a raw .dmg header would otherwise classify as confident nonsense.
  • Null confidence. A provider may return no score, and smart replacement has no comparable score. The script treats either null as 0.0.
  • Limits per IP: 3,000 classifications a minute, 20,000 a day. 1,000 files is one call; a 429 carries Retry-After.

© mrmps, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/downloads-and-inbox-sorter of mrmps/classifier-dev.

Open the folder on GitHubat commit 629df75

Compare with similar skills

Downloads And Inbox Sorter next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Downloads And Inbox Sorter compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Downloads And Inbox Sorter this skillmrmps/classifier-dev424—~1.5kAutomated safety check: PassMIT
Managing Google Workspacetaylorwilsdon/google_workspace_mcp3.3k—~2.9kAutomated safety check: PassMIT
PDFzai-org/ZCode7.7k—~18kAutomated safety check: NotesProprietary
Form Fillingplatonai/Browser41.2k—~1.1kAutomated safety check: PassApache-2.0
Code2mediatsingliuwin/autoclaw283—~985Automated safety check: PassMIT
Token ReceiptHchen1218/token-receipt126—~2.1kAutomated safety check: PassNone

Similar skills

  • Managing Google Workspace

    taylorwilsdon/google_workspace_mcp

    Manages Google Workspace operations across 12 services (Gmail, Drive, Calendar, Docs, Sheets, Slides, Forms, Tasks, Contacts, Chat, Apps Script, Custom Search).

    3.3k GitHub stars~2.9k tokensUpdated 2 days ago
    Documents & OfficeAuto-check passed
  • PDF

    zai-org/ZCode

    Professional PDF toolkit covering four production workflows: reports, creative visuals, academic LaTeX, and existing PDF processing.

    7.7k GitHub stars~18k tokensUpdated yesterday
    Documents & OfficeAuto-check: notes
  • Form Filling

    platonai/Browser4

    Automatically fills web forms using provided field data and can optionally submit the form.

    1.2k GitHub stars~1.1k tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Code2media

    tsingliuwin/autoclaw

    Universal media renderer with no fixed template — any custom layout, size or style becomes pixel-perfect images (PNG/JPEG/WebP), vector SVG, paged PDFs or animations (WebP/GIF).

    283 GitHub stars~985 tokensUpdated yesterday
    Documents & OfficeAuto-check passed
  • Token Receipt

    Hchen1218/token-receipt

    A skill your agent uses when the user wants to view AI conversation token usage as a receipt, invoice, checkout slip, token bill, usage receipt, cost snapshot, or creative monospace thermal-paper…

    126 GitHub stars~2.1k tokensUpdated 4 mo ago
    Documents & OfficeAuto-check passed
  • Invoice Maker

    tsingliuwin/autoclaw

    开发票/生成发票/报价单/收据/采购单/对账单/账单/付款通知 — formal business documents as paged PDFs with proper tables, right-aligned amounts, tax lines, repeating headers and page-number footers.

    283 GitHub stars~619 tokensUpdated yesterday
    Documents & OfficeAuto-check passed

More from mrmps/classifier-dev

All 21 skills in this repo
  • Bulk Classify

    mrmps/classifier-dev

    Sort many texts into your own categories without reading them, using a keyless HTTP API that returns a calibrated confidence per answer.

    424 GitHub stars~3.1k tokensUpdated 4 days ago
    Auto-check passed
  • Computer Use Action Picker

    mrmps/classifier-dev

    Pick a browser or desktop agent's next action by choosing among the actions actually on screen instead of inventing one.

    424 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Content Moderation Gate

    mrmps/classifier-dev

    Check user-generated text against a written policy before it is published.

    424 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Label each context chunk keep, drop or replace-with-a-pointer and pass the survivors through byte for byte instead of summarising, with key-shaped chunks decided locally and never sent, and a…

    424 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Document Intake Routing

    mrmps/classifier-dev

    Label each page of an intake packet with a document type and a page role before extraction runs, so only confident pages reach an extractor and the rest reach a person.

    424 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed
  • Headline Filter Map Reduce

    mrmps/classifier-dev

    Filter hundreds or thousands of headlines, search results or feed items against a written brief before opening any of them, using a two-stage cascade that spends a fast model on everything and a…

    424 GitHub stars~1.5k tokensUpdated 4 days ago
    Auto-check passed

Questions about Downloads And Inbox Sorter

What does Downloads And Inbox Sorter do?

File a downloads or scanned-mail folder by classifying each file from its name plus the first 2,000 characters of text into invoice, receipt, contract, identity document, screenshot, installer or…. Downloads And Inbox Sorter is an agent skill from mrmps/classifier-dev. File a downloads or scanned-mail folder by classifying each file from its name plus the first 2,000 characters of text into invoice, receipt, contract, identity document, screenshot, installer or none of these, and moving only the confident ones.

When should I use Downloads And Inbox Sorter?

Downloads And Inbox Sorter fits situations like: tasks that involve Forms and invoices; tasks that involve Email management.

How do I install Downloads And Inbox Sorter in Claude Code?

Run `npx skills add mrmps/classifier-dev --skill downloads-and-inbox-sorter -a claude-code`. Or copy the skill folder (skills/downloads-and-inbox-sorter in mrmps/classifier-dev) into .claude/skills/downloads-and-inbox-sorter in your project. Claude Code loads it when a task matches its description.

How do I install Downloads And Inbox Sorter in Codex?

Run `npx skills add mrmps/classifier-dev --skill downloads-and-inbox-sorter -a codex`. Or copy the skill folder (skills/downloads-and-inbox-sorter in mrmps/classifier-dev) into .agents/skills/downloads-and-inbox-sorter in your project. Codex loads it when a task matches its description.

Can I use Downloads And Inbox Sorter in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mrmps/classifier-dev --skill downloads-and-inbox-sorter -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/downloads-and-inbox-sorter, .gemini/skills/downloads-and-inbox-sorter, .github/skills/downloads-and-inbox-sorter and .opencode/skills/downloads-and-inbox-sorter in your project.

What does Downloads And Inbox Sorter need to run?

Going by SKILL.md and its folder, Downloads And Inbox Sorter needs the command-line tools its instructions call (python3). Our summary lists: Python 3; Docker.

Does Downloads And Inbox Sorter access the network?

SKILL.md names 1 domain. In commands or code: classifier.dev; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Downloads And Inbox Sorter safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Downloads And Inbox Sorter use?

Downloads And Inbox Sorter is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Downloads And Inbox Sorter use?

About 1.5k tokens (SKILL.md is roughly 6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Downloads And Inbox Sorter?

Skills that share tags, products or a category with Downloads And Inbox Sorter: Managing Google Workspace (taylorwilsdon/google_workspace_mcp, 3.3k stars), PDF (zai-org/ZCode, 7.7k stars), Form Filling (platonai/Browser4, 1.2k stars) and Code2media (tsingliuwin/autoclaw, 283 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Downloads And Inbox Sorter?

mrmps (a GitHub user) maintains it in mrmps/classifier-dev, which has 424 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 7, 2026.

Source: mrmps/classifier-dev on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.