File Command Center

FileDeck

A spreadsheet says what happens to each file. FileDeck does all of it, or none.

Free right now — no account, no card

Get FileDeck free Windows & Mac · one file, nothing to install

Preview

1 interface design, then a screenshot of it running. Drag, scroll or use the arrows.

Interface design FileDeck, 1 of 1
Screenshot FileDeck running on Windows today

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

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

Recorded terminal session showing FileDeck running
A real recorded session — FileDeck’s actual output, captured by running the shipped binary.

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