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. here is exactly what to click. At launch, FileDeck is included in every plan along with the rest of the range.
How this work 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.
Questions about FileDeck
What does FileDeck do?
FileDeck reads a plan you write in a spreadsheet — one row per file, saying move, copy, rename or retire — checks every row before it touches anything, and refuses the whole run if a single row is wrong. Retired files are moved aside, never deleted, and each run leaves a record that can be played backwards to put everything back as it was.
Will FileDeck delete my files?
No. Anything FileDeck takes away is moved into a folder you choose, with its path kept, so you can look through it and put anything back. It also prints the entire plan first and stops until you tell it to go ahead.
Does FileDeck send anything over the internet?
No. There is no network code compiled into FileDeck at all, nothing in the binary can open a socket. 88 of the 100 programs here are like that.
Does FileDeck run on a Mac?
Yes. There are builds for Apple Silicon and for Intel Macs, as well as for Windows and Linux, one file each, with no installer and nothing to uninstall.
Is FileDeck free?
Yes, while Techlosoft is in preview: no account, no card, and nothing switched off. Later it is part of a plan covering all 100 programs rather than sold on its own, and anything you download now carries on working.
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...
- How to sort out a Downloads folder that got away from you Do not tidy it. Write the rule that tidies it. Rules in a file, checked for collisions before anything move...
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