Putaway归位君 · Put files back where they belong
Validation page · not released 中文

Every file is there. Just not where it belongs.

A search tool can find a file, but that does not make its name and location right. Putaway classifies new files, labels them and copies them into fixed folders you defined — originals untouched, every batch undoable.

What it does, in ten seconds

Four scenes loop automatically, no clicking; pure CSS, no scripts. With reduced motion enabled, all four scenes are shown statically.

1 / 4MessDownloads full of names that say nothing
Downloads / scan_001.pdf
Desktop / New Document (3).docx
Downloads / IMG_2048.pdf

Searchable, but name and location are guesswork.

2 / 4PreviewCandidates first; you decide
scan_001.pdf → Invoice (candidate)
New Document (3).docx → Contract (candidate)
IMG_2048.pdf → Unrecognized, stated plainly

Nothing is selected by default; it does not guess.

3 / 4Put awayCopy into fixed folders; originals stay
Invoices / 2026 / 2026-03 electricity bill.pdf
Contracts / 2026 / lease agreement.pdf
Same name, different content → lease (2).pdf

Never overwrites or skips; renames are written to the ledger.

4 / 4UndoUndo one file, keep the rest
Undo only the selected file
Cut undo: restore the original first, then delete the copy
Ledger is rewritten afterwards

If the original cannot be restored, the copy stays and the failure is reported.

The one concrete job it does

Not a one-off cleanup. It puts each day's new files back into fixed folders. Three phrases people actually search for:

  • Where should scan_001.pdf in Downloads go
  • File documents into fixed folders without moving originals
  • Files are findable but misfiled and badly named

Four behaviours that already ship (not plans)

Copy by default; originals untouched

Cut is optional and the order is fixed: copy → hash check → ledger written to disk → only then touch the original. Automatic mode always copies.

Name collisions never overwrite or skip

Identical content is marked already-filed; different content gets a (2) suffix with the original name recorded; unreadable hashes are treated as different and reported as undetermined. One skipped file is one lost file.

Undo really returns to the prior state

Undo a single file. For cut, the original is restored before the copy is deleted; if restore fails, the copy is kept and the failure is reported. The ledger is rewritten after undo.

Offline, with no model download

No account, no telemetry, no outbound requests. Classification is a local zero-weight rule set; the index is built locally and searches names, paths, metadata and body text.

What it cannot do, stated plainly

  • Scanned PDFs, images, archives and legacy .doc / .xls / .ppt have no extractable body text; they are listed separately during indexing rather than silently treated as searched.
  • Automatic watching is off by default and needs fresh authorization on every launch; unrecognized fallback candidates are never filed automatically.
  • This is a validation prototype: it runs locally and can build an MSIX structure package; the Store identity now uses reserved Partner Center values, but the product is not published on Microsoft Store and this page is not live yet.

Three ways in, one ledger

Decide by hand

putaway gui: review the preview, tick rows, then file. Nothing is ticked by default.

Stay in the tray

putaway tray: resident tray polling, still copy-only by default, automation off by default; the destination cannot be inside a watched folder.

Undo and start over

putaway undo undoes a batch; the CLI, tray menu and main window can all clear processing records, with a warning that a full clear may re-file the same documents.

This page collects nothing

This version is free, with no in-app purchases, ads or subscriptions. To try it or send feedback, email Wang Xin directly (contact placeholder). There is no form, no backend, no analytics script and no payment of any kind.

Validation rule (rewritten for free): leave it up for 14 days and watch whether strangers leave an email or feedback; stop if none, and only continue productizing after 5 substantive replies. Free removes the price question; installs do not equal demand and Store analytics cannot show whether it is actually used, so this is a weaker signal than charging.