FileDeck
A spreadsheet says what happens to each file. FileDeck does all of it, or none.
Free right now — no account, no card
Preview
1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.
Free while we’re in preview
Get FileDeck
A spreadsheet says what happens to each file. FileDeck does all of it, or none.
The Mac button is for Apple Silicon. On an older Intel Mac, get this one instead.
One file, both ways. Double-click it for the window. Run the same file from a command prompt with arguments and it behaves as the command-line tool, because the engine is inside it. Nothing else to download and nothing to keep beside it.
Early preview. The window has been built and run, but not yet on a real Windows PC or Mac, so expect rough edges. The engine underneath it is fully tested.
- One file — no installer
- Runs on your machine, offline
- Source code published below
Free while in preview. It isn’t signed yet, so Windows or macOS will ask you to confirm the first time you open it. At launch, FileDeck is included in every plan along with the rest of the range.
How this work actually arrives
As a sheet. One row per file, a column saying move, copy, rename or retire, and a destination. Someone has already argued about it in review. FileDeck reads that CSV, checks every row, and executes the lot as one unit.
One bad row stops everything
Validation runs over the whole plan before a single file moves: a missing source, two rows fighting over one destination, a destination that already exists, a path escaping --root, a directory where a file should be. Every problem is reported at once against the CSV line number, so the messages line up with what the spreadsheet shows you. If anything is wrong, zero rows execute and no journal is written. There is no skip-the-bad-rows mode.
Retire does not mean delete
It moves the file into --trash, keeping its layout. Nothing in FileDeck hard-deletes, and undoing a copy moves the duplicate into the trash rather than removing it.
Undo
apply writes a journal of every from and to path. filedeck undo --journal ... replays it backwards, verifies up front that everything is still where it should be, and refuses the whole reversal otherwise.
CSV only, so export the sheet first. Extra columns like ticket or owner are ignored.
Reading on the job itself
- How to rename hundreds of files at once Check the whole batch for collisions before renaming a single file. If two files would end up with the same...
Advanced & technical details Command-line builds, source code, checksums and a recorded session — for developers and IT teams
A working prototype of spreadsheet-driven bulk file operations: hand it a CSV of moves, copies, renames and retirements, and it validates the entire plan — reporting every problem with its row number — before touching anything. Verified all-or-nothing: a six-row plan with one colliding row executed none of the five valid rows and left the tree byte-identical. Retire means move to trash, never delete, and a journal reverses the whole run.
Recorded session
Naming status
Working name only — brand verdict **CAUTION** (Medium). Collision: FileDeck. Possible only after formal clearance.
What it draws on
Existing paid software whose best ideas shaped this program: Directory Opus, Listary Pro, Duplicate Cleaner Pro, Advanced Renamer Commercial.
Command line
There is nothing extra to install. The program you download is the command-line tool as well: give it arguments instead of double-clicking it and it runs as one, with its output on your terminal. The standalone builds below are the same engine on its own, for machines where you would rather not ship a window at all.
filedeck 1.0.0 - spreadsheet-driven bulk file operations
USAGE
filedeck validate --plan <plan.csv> [--root <dir>] [--json]
filedeck apply --plan <plan.csv> [--root <dir>] --journal <file>
[--trash <dir>] [--apply] [--json]
filedeck undo --journal <file> [--apply] [--json]
filedeck template
filedeck help
COMMANDS
validate Check an entire plan without touching anything. Every problem is
reported at once, with the CSV row number of each offending row.
apply Validate the plan and REFUSE THE WHOLE RUN if anything is wrong,
then execute it. DRY RUN unless --apply is given.
undo Reverse every operation recorded in a journal, newest first.
DRY RUN unless --apply is given.
template Print an example plan CSV (header row plus one row per action).
OPTIONS
--plan <file> CSV plan to read (see PLAN FORMAT).
--root <dir> Directory that relative paths resolve against and that
every source and destination must stay inside.
Default: the current working directory.
--journal <file> Write (apply) or read (undo) the JSON undo journal.
--trash <dir> Where retired files are moved to. Nothing is ever deleted.
Default: <root>/.filedeck-trash
--apply Actually perform the operations. Without it, nothing
on disk changes and no journal is written.
--json Emit a machine-readable report on stdout.
-h, --help Show this help and exit 0.
PLAN FORMAT
Real RFC 4180 CSV, so quoted fields containing commas and double quotes work.
The first non-comment line is the header and must contain the columns
action, source and destination (in any order, case-insensitive). Extra
columns - notes, owner, ticket - are ignored, so a spreadsheet export can be
used as-is. Blank lines and lines starting with # are skipped.
ACTION DESTINATION MEANS
...
Recorded from the shipped binary, not written by hand.
Source
Every file the program is built from:
console.go · console_test.go · guided.go · main.go
SHA-256 checksums · build instructions & scope notes · full build plan