Media Sort Starter: sort your camera roll with a plan you approve
by PaperChaseWebb
Point it at a messy folder of photos and videos and get a sorting plan into folders you named, before a single file moves. Duplicates are found by hash, private categories are left alone, you approve the plan by typing its code at your own terminal, files are copied before they are ever moved, every placement is checked byte for byte, and one command undoes the run. Nothing is ever deleted.
- Price
- $14
- Difficulty
- Beginner
- Setup
- 10 min
- Format
- .md file
media-sort-starter-sort-your-camera-roll-with-an-approved-plan.md · 27 KB · instant download after checkout
Want this built for you instead? We can build it for you.
What you end up with
A sorted media folder you planned and approved yourself, with duplicates flagged, private files untouched and an undo for every run.
What you get
- mediasort.py: plan, approve, apply, verify, undo and check-taxonomy, standard library only
- A starter taxonomy with five folders and a private category that is off until you turn it on
- Duplicate detection by SHA-256, with empty or unreadable files set aside for review
- Approval by typed plan code at a real terminal; piped input and edited plans are refused
- Copy first, byte-for-byte verify, move only after a verified copy, and undo that never deletes
- AGENTS.md with eight rules, CLAUDE.md, a Grok Bot standing order, Codex and Hermes notes and a media-sort skill
- 13 tests you can run yourself
Who it is for
Anyone who wants their photos and videos sorted into their own folders without handing an agent a delete key.
Works with
Solid chips: the agent is named in this listing's own tools list. Dashed chip: Plain Markdown, so it also pastes into other agents such as Grok Bot, Hermes, OpenClaw or Muse. We list those as compatible by format only, not as tested.
Tools needed
Cost to run: The kit is the only purchase. Runs locally with Python; no uploads, no accounts.
Time to result: A first plan in about 10 minutes
How it works
Pick a safe folder
Choose a small folder that already has a backup and unpack the kit next to it.
Expected: The kit files and your folder side by side.
Name your folders
Edit taxonomy.json, then run python3 desk/mediasort.py check-taxonomy taxonomy.json.
Expected: taxonomy OK, or a code telling you what to fix.
Plan and read it
Run plan into a new destination and open the .md plan.
Expected: Counts per folder, duplicates, files for review and a plan code. Nothing moved.
Approve, copy, verify
Type the plan code at your terminal with approve, then run apply and verify.
Expected: Every file copied and verified; move only if you ask for it after that.
Sample prompts, free to use
Read AGENTS.md. Check taxonomy.json, then make a plan for ~/Downloads into ~/Sorted. Show me the counts per folder and the first 20 files in _review. Do not approve or move anything.
Prompt 1 of 3.
Look at the file names in _review in the latest plan, never private folders. Suggest up to five new words for my existing folders, show me the change to taxonomy.json and wait for my yes.
Prompt 2 of 3.
Free preview of the file
# Media Sort Starter **Your camera roll, sorted into folders you named. Planned first, approved by you, copied before anything moves, and never deleted.** Version 1.0, 2026-11-01. By PaperChaseWebb Inc. Works with Grok Bot, Claude Code, Codex and Hermes, or on its own from a terminal. ## The problem A Downloads folder with a thousand photos and clips is not a storage problem. It is a decision problem: nobody wants to open each file, and nobody wants an agent loose in their media with a delete key. Most "AI sorting" demos skip the part that matters, which is who approves what moves, and how you get it back if the sort was wrong. ## How this kit works Five steps, each one a command, each one safe to stop after. 1. **Your taxonomy.** You name the folders and the words that send a file there (`taxonomy.json`). First matching rule wins. Private categories exist so private files are recognized and **left alone**: they are off until you turn them on and write why. 2. **Plan (read-only).** The script walks the folder, hashes every photo and video, flags exact duplicates, sends empty or unreadable files to `_needs-review` and anything it cannot place to `_review`. It writes a plan (`.json` plus a readable `.md`) with an 8 character plan code. Nothing moves. 3. **You approve.** You read the plan and type the plan code at your own terminal. The script refuses a code that was piped in, so an agent cannot approve for you. If anyone edits the plan after it was written, the code no l
Test record
- Date
- Nov 1, 2026
- What was run
- tests/test_mediasort.py (12) and tests/test_mini.py (1) on Linux with Python 3.8, 3.9, 3.11, 3.12 and 3.13; approve on a real pseudo terminal with a piped and a typed code; apply and verify after approval.
- Result
- 13 passed, 0 failed on all five versions; piped approval refused with A02, typed code approved, copy and verify clean.
- Not run
- A live Grok Bot, Claude Code, Codex or Hermes session. macOS or Windows. Very large libraries.
Copied from this item's dated test notes. What was not run stays in.
Worth knowing
- Sorting is by file name and folder words you choose, not by looking at the picture. Files it cannot place go to _review.
- Run it on a folder that already has a backup. The kit never deletes, but a backup is still your safety net.
- The approval step assumes your agent cannot type at your terminal. Agent rules guide; they are not a lock.
- The agent files were not loaded inside a live Grok Bot, Claude Code, Codex or Hermes session for this release. Tested on Linux only.
- On 2026-11-01: 13 tests passed on Python 3.8, 3.9, 3.11, 3.12 and 3.13, and approval was checked on a real pseudo terminal (piped code refused, typed code accepted).
Questions
Does it look at my photos?
No. It reads file names, folder names and bytes for the duplicate hash. It never uploads anything and opens no network connection.
Can my agent approve the plan?
No. Approval needs the plan code typed at a real terminal. Piped input is refused, and a plan edited after it was written no longer matches its code.
What happens to duplicates?
Exact duplicates go to a _duplicates folder in the destination so you can decide. Nothing is deleted.
Details
Version 1.0 · Updated Nov 1, 2026 · Markdown version of this page
License: Use for yourself, your team or your clients. Do not resell or republish the kit itself. Download terms
Related

Media Sort Starter: see where every file would land (free sample)
A read-only script and the starter taxonomy from Media Sort Starter. It counts how many photos and videos would land in each of your folders, keeps private categories out of the count, and moves, copies and writes nothing.

Ask-first rules for AI agents: hard nos, approval cards and a test set
Paste-in rules that make an agent ask before it sends, spends, posts or deletes, define what a real yes is, and stop retries after a no, plus 12 test scenarios to check it.

Content System Kit: run a content engine with AI agents and keep a human on the publish button
A prompt pack and method for founders, small teams and agencies. Audience filters, one owned format, a 90-post test with review rules set in advance, a weekly batch loop with one approval gate, an editor queue with a rights check, transcript-first cleanup, a packaging watch on public data only, teardown without replication, a craft seat map, a cadence plan, an engagement honesty audit, a failure table, a worked example, a rules block and 14 prompts. Includes content_check.py, AGENTS.md with six owner stops, two skills and 15 templates.

AGENTS.md, CLAUDE.md and Cursor rules starter files
Six fill-in instruction files for coding agents (base, Next.js plus Supabase, FastAPI, browser game, CLAUDE.md pointer, scoped Cursor rules), an Approvals section that makes the agent stop and wait for your yes, a table of what Grok Bot, Claude Code, Codex, Hermes and Cursor each read, a read-only checker for your rule files and 9 prompts to write, trim and test your own.