Windows to Linux Data Traveler: reduzierte 5-Optionen-GUI, die hyperindex/hyperfiler/outbird zu einem gefuehrten Windows->Linux-Stick-Migrationsablauf verdrahtet.
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
2026-09-15 06:13:00 +03:00
.cargo wintolidat: five-option guided front end for hyperindex/hyperfiler/outbird 2026-09-14 22:59:35 +03:00
.claude Note that hyperfiler own Forgejo release has been refreshed 2026-09-15 06:13:00 +03:00
release Add first Linux amd64 build for all four bundled binaries 2026-09-15 05:39:32 +03:00
src Add first Linux amd64 build for all four bundled binaries 2026-09-15 05:39:32 +03:00
.gitattributes Add first Linux amd64 build for all four bundled binaries 2026-09-15 05:39:32 +03:00
.gitignore wintolidat: five-option guided front end for hyperindex/hyperfiler/outbird 2026-09-14 22:59:35 +03:00
Cargo.lock wintolidat: five-option guided front end for hyperindex/hyperfiler/outbird 2026-09-14 22:59:35 +03:00
Cargo.toml wintolidat: five-option guided front end for hyperindex/hyperfiler/outbird 2026-09-14 22:59:35 +03:00
LICENSE.md wintolidat: five-option guided front end for hyperindex/hyperfiler/outbird 2026-09-14 22:59:35 +03:00
README.md wintolidat: five-option guided front end for hyperindex/hyperfiler/outbird 2026-09-14 22:59:35 +03:00
rustfmt.toml wintolidat: five-option guided front end for hyperindex/hyperfiler/outbird 2026-09-14 22:59:35 +03:00

wintolidat -- Windows to Linux Data Traveler

A five-option guided front end for carrying data off a Windows machine onto a drive -- a Linux-formatted USB stick, typically -- in one run. It wraps three already-built, already-tested command-line tools (hyperindex, hyperfiler, outbird) instead of reimplementing any of their pipeline logic, and asks exactly five questions:

  1. Source folder -- what to copy from.
  2. Target folder -- the stick, or a folder on it.
  3. File types -- Documents / Music / Video / Pictures / Other.
  4. Layout -- AI resorting + dupes removal (sort into folders by type/date/artist, identical files kept once) or 1:1 (keep the source folder structure exactly as it is).
  5. PST -> Mbox -- find every Outlook .pst in the source and turn each into its own standalone Mbox mailbox folder.

Nothing else. No entities.toml, no genres.toml, no OCR page counts, no model label files, no Outbird backend/profile choice, no plan_run/ --backup-confirmed/--older-than housekeeping. Those all exist in hyperfiler-gui (obsidian/dev/hyperfiler/gui), the full-featured front end this was cut down from -- reach for that one directly if a run needs any of them. wintolidat exists for the much more common case that never should have to see any of it.

Why "Data Traveler"

Named for the errand it automates: emptying a Windows machine's Documents/ Music/Video/Pictures onto a USB stick meant for a Linux machine, with PST mail carried along as a portable Mbox tree Thunderbird (or any other Mbox reader) can open on either OS. Nothing about it is Linux-specific -- wintolidat.exe itself only ever runs on Windows, and "target folder" can be any drive, stick or otherwise. The name just names the one job it was built for.

Quick start

  1. Copy wintolidat.exe, hyperindex.exe, hyperfiler.exe and outbird.exe (all four -- see release/) into one folder, anywhere.
  2. Run wintolidat.exe.
  3. Pick the source folder, pick the target folder, tick the file types, pick a layout, leave "Find PST files" on or off, click Start.
  4. Watch the log. When it says done, the target folder holds everything that was asked for; the source is untouched (see "What this never does" below).

What happens behind the five choices

One background run, four stages, streamed into one log:

Stage Command What it does
1/4 Indexing hyperindex.exe scan <source> --db <target>\.wintolidat\index.db Walks and hashes the source folder into a fresh index database, private to this run (spec: obsidian/dev/hyperindex).
2/4 Planning hyperfiler.exe plan <target> --db <index.db> [--only <classes>] [--mirror | --model] Decides, for every indexed file, where it would land -- nothing is copied yet.
3/4 Copying hyperfiler.exe apply <plan_run> <target> --db <index.db> Copies every planned file to the target and verifies its hash. Never touches or deletes a source file.
4/4 PST -> Mbox outbird.exe export <pst> --backend auto --output <target>\mboxemails\<stem> Once per discovered .pst, only if the toggle is on.

The five choices map onto that table exactly:

  • File types become --only photo,music,document,video,other (only the ticked ones; all five ticked is the same as no --only flag at all -- hyperfiler's own default already means all five with "Other" opt-in the same way hyperfiler-gui treats it).
  • Layout = AI resorting + dupes removal adds --model (the local embedding model rescues documents the rule-based classifier alone can't place; if the model isn't installed on this machine, plan degrades to rules-only, silently -- see .claude/state.md, this is never an error). Nothing here has ever been a separate dedup step: identical file content always collapses to one destination file, in both layouts, because that is how hyperfiler's own path engine resolves collisions (spec §4.5).
  • Layout = 1:1 adds --mirror instead: no classification, no model, no OCR -- every file goes to Archive/<volume-serial>/<original path>, preserving the source tree verbatim.
  • PST -> Mbox queries the index this run just built for every present .pst, and runs one outbird export --backend auto per file. Off simply skips stage 4/4 entirely.

What this never does

apply copies; it never moves or deletes anything at the source. hyperfiler itself has further commands -- quarantine (relocate a verified copy's source into a quarantine folder) and purge (permanently delete a quarantined copy) -- that this tool deliberately never calls. wintolidat's job is carrying data onto a fresh stick, not cleaning up the machine it came from; reach for hyperfiler-gui directly for that.

Building from source

cargo build --release

Needs hyperindex.exe, hyperfiler.exe and outbird.exe from their own repos (or the copies already in release/) next to the built wintolidat.exe to actually do anything -- the GUI shows a red warning naming whichever one it can't find. HYPERINDEX_CLI_PATH / HYPERFILER_CLI_PATH / OUTBIRD_CLI_PATH override the lookup if they live somewhere else.

  • namshubsofenki/hyperindex -- the indexer wintolidat's stage 1/4 shells out to.
  • namshubsofenki/hyperfiler -- the planner/copier wintolidat's stages 2/4-3/4 shell out to, and the full-featured hyperfiler-gui this project was cut down from.
  • namshubsofenki/outbird -- the PST converter wintolidat's stage 4/4 shells out to.

License

PolyForm Noncommercial 1.0.0 -- see LICENSE.md.