hyperindex + hyperfiler + Outbird in one Windows exe (GUI + CLI). Proprietary, Tasc Ltd.
  • Rust 84.4%
  • Python 8.3%
  • PowerShell 7.3%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Martin Georg Morgenstern 3aad72aa93 Session reports 2026-10-25/27, mail-advanced-en screenshot
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-27 15:57:19 +03:00
.cargo hypersuite 1.0.0: hyperindex + hyperfiler + Outbird (Rust) in one Windows exe 2026-10-19 17:41:45 +03:00
.claude Session reports 2026-10-25/27, mail-advanced-en screenshot 2026-10-27 15:57:19 +03:00
.forgejo/workflows English user manual (Markdown + PDF) as a release asset; handbook back page names the Sustainable Use License 2026-10-27 13:40:22 +03:00
assets hypersuite 2.0.0: launcher + Scan/Sort/Outbird apps, auto defaults, DE/EN 2026-10-24 15:02:35 +03:00
crates/outbird hypersuite 2.1.6: Outbird opens PSTs read-only, safety model in README, VirusTotal link in release notes, license wording 2026-10-26 16:44:45 +03:00
docs Session reports 2026-10-25/27, mail-advanced-en screenshot 2026-10-27 15:57:19 +03:00
marketing Gridinsoft false-positive report sent 2026-10-27 15:04:49 +03:00
public English user manual (Markdown + PDF) as a release asset; handbook back page names the Sustainable Use License 2026-10-27 13:40:22 +03:00
release hypersuite 2.1.7: exe file properties name the Sustainable Use License, not Apache 2.0 2026-10-26 21:19:35 +03:00
resources hypersuite 2.1.3: Apache License 2.0, project path instead of Tasc Ltd., plan fix 2026-10-25 19:57:15 +03:00
scripts English user manual (Markdown + PDF) as a release asset; handbook back page names the Sustainable Use License 2026-10-27 13:40:22 +03:00
src hypersuite 2.1.4: Sustainable Use License, source-code and contributor notice 2026-10-26 11:53:43 +03:00
vendor/outlook-pst hypersuite 2.1.6: Outbird opens PSTs read-only, safety model in README, VirusTotal link in release notes, license wording 2026-10-26 16:44:45 +03:00
.gitattributes hypersuite 1.0.0: hyperindex + hyperfiler + Outbird (Rust) in one Windows exe 2026-10-19 17:41:45 +03:00
.gitignore hypersuite 2.1.1: first public release (docs, license, clean build) 2026-10-25 12:04:28 +03:00
build.rs hypersuite 2.1.7: exe file properties name the Sustainable Use License, not Apache 2.0 2026-10-26 21:19:35 +03:00
Cargo.lock hypersuite 2.1.7: exe file properties name the Sustainable Use License, not Apache 2.0 2026-10-26 21:19:35 +03:00
Cargo.toml hypersuite 2.1.7: exe file properties name the Sustainable Use License, not Apache 2.0 2026-10-26 21:19:35 +03:00
HANDOFF-gui-redesign-2.0.md hypersuite 2.0.0: launcher + Scan/Sort/Outbird apps, auto defaults, DE/EN 2026-10-24 15:02:35 +03:00
README.md hypersuite 2.1.4: Sustainable Use License, source-code and contributor notice 2026-10-26 11:53:43 +03:00
rustfmt.toml hypersuite 1.0.0: hyperindex + hyperfiler + Outbird (Rust) in one Windows exe 2026-10-19 17:41:45 +03:00
THIRD-PARTY-NOTICES.md Notices: SUL, philosophy and participation; contributor agreement 1.0 public 2026-10-26 13:51:01 +03:00

hypersuite

One Windows exe for three tools — with a GUI, and their full command lines:

Tool What it does
hypersuite index … hyperindex Indexes drives (metadata + BLAKE3 checksum) into SQLite, finds duplicate files and folders, enriches photos (capture date, offline GPS place), plans/applies a photo library, pre-filters music for beets.
hypersuite file … hyperfiler Consolidates everything indexed into one canonical, self-describing tree: plan → review → apply → verify → quarantine → purge, plus semantic find. Photo/Music/Documents/Video/Other.
hypersuite mail … Outbird Converts Outlook PST files into Thunderbird mbox trees, or installs them straight into a Thunderbird profile (with backup).

Double-click hypersuite.exe for the window. Everything it needs ships inside the one file — the multilingual document model, PDFium, Tesseract OCR with seven languages, and fpcalc — and is unpacked once per version to %LOCALAPPDATA%\hypersuite\runtime\ (checked file by file against SHA-256). No installer, no runtime DLLs, no download, no Python, no WSL.

The window

Double-clicking opens the launcher: three cards, each starting one app in its own window and process — Scan and Sort can run side by side.

App Tool Asks for
Scan hyperindex which folders (default: your Documents, Pictures, Music, Videos, Desktop; Downloads off) — the database is automatic
Sort hyperfiler nothing required: target <X>:\hypersuite on the fixed drive with the most free space, all five classes; Plan → Review → Apply → Verify
Outbird Outbird the PST file (suggested from Outlook's folders and the index); destination: Thunderbird's default profile

Everything else — whole drives, exclusions, duplicate reports, photo enrichment and library, beets pre-filter, mirror mode, OCR, AI sorting, PST hand-over, quarantine/purge/find, mbox export, dry runs — is under Advanced in each app. Defaults are marked ● Auto and worked out again at every start; change one and it turns Manual and is kept (click the chip to go back to Auto). Settings live in %LOCALAPPDATA%\hypersuite\settings.json.

  • Database: %USERPROFILE%\HyperindexDB\<HOST>-<user>-db\index.db, shared by Scan and Sort. Before a scan the folders are counted (no hashing); if the database's drive can't hold files × 736 bytes × 1.5 + 1 GB, a dialog proposes <X>:\HyperindexDB\<HOST>-<user>-db\ on the drive with the most free space. "Open existing…" picks up an older database (its file count, drives and last scan show under the path) and takes over the folders and options its last scan ran with; "Recently used…" lists the last five. If a scan in it never finished, Scan offers Continue (hyperindex scan --resume).
  • Language: German or English (DE | EN in the launcher and every app), starting from the Windows display language. Command-line output stays English.
  • The launcher footer has the bundled Tools and About.

Screenshots: docs/screenshots/ (German and English). hypersuite gui --app scan (or sort, mail) opens one app directly; 1.x's --tab names still work.

Every button runs hypersuite <tool> … as a child process and streams its output; progress bars for scan, apply and quarantine are read from the index database while the child writes it. The GUI contains no pipeline logic of its own.

Command line

hypersuite index scan E:\ --db D:\index.db
hypersuite file plan D:\Library --db D:\index.db
hypersuite mail export C:\mail\archive.pst --root-name ""
hypersuite tools --verify

hypersuite <tool> --help shows each tool's full help. The exe is a windowed program, so cmd does not wait for it — use start /wait hypersuite … in cmd and batch files; in PowerShell hypersuite … | Out-Host.

Building

Prerequisites: Rust (stable, MSVC), Visual Studio Build Tools, Windows SDK (rc.exe, signtool.exe), and the sibling repositories ../hyperindex and ../hyperfiler (path dependencies).

powershell -ExecutionPolicy Bypass -File scripts\stage-assets.ps1      # once: ~260 MB to E:\hypersuite-assets\payload
powershell -ExecutionPolicy Bypass -File scripts\build-release.ps1    # build (paths remapped), leak check, sign, release\ + SHA256SUMS
python scripts\gen-notices.py                                          # after dependency changes

build-release.ps1 rewrites this machine's paths in the binary (--remap-path-prefix, /PDBALTPATH) and refuses to finish if the exe still contains the user profile path, the workspace path or internal names. It also builds release\third-party-sources.zip (scripts\third-party-sources.ps1: the GPL/LGPL sources of the bundled tools, pinned by SHA-256). A plain cargo build --release still works for local testing.

HYPERSUITE_ASSETS_DIR points the build at another staging directory; HYPERSUITE_EMBED_ASSETS=0/1 forces embedding off/on (default: release only). Debug builds come without assets and are fast to link.

Tests: cargo test --workspace. The Outbird golden test against a real PST and its independent readpst reference conversion is opt-in:

set OUTBIRD_GOLDEN_PST=...\outbird\Tamimed.pst
set OUTBIRD_GOLDEN_REF=...\outbird\Tamimed-thunderbird
cargo test -p outbird --release --test golden_tamimed -- --ignored --nocapture

Signature

Releases are signed with a self-signed certificate, CN=hypersuite (github.com/namshubs/hypersuite) (release/hypersuite-codesign.cer, SHA-256 in SHA256SUMS.txt). Until a machine trusts it, Windows reports the signature as untrusted and SmartScreen warns once ("More info" → "Run anyway"). To trust it on a machine (admin):

certutil -addstore Root hypersuite-codesign.cer
certutil -addstore TrustedPublisher hypersuite-codesign.cer

Layout

  • src/main.rs — dispatch: no arguments → GUI, index/file/mail/tools → command line
  • src/console.rs — borrowing the parent console for the command-line half of a GUI exe
  • src/payload.rs — the embedded asset zip: unpack, verify, environment variables
  • src/gui/ — launcher and the three apps (launcher.rs, scan.rs, sort.rs, mail.rs), shared look (theme.rs), settings, Windows facts (sysinfo.rs), texts DE/EN (i18n.rs); design: docs/redesign-2.0-mockup.html
  • crates/outbird/ — Outbird, ported from Python to Rust on Microsoft's outlook-pst
  • vendor/outlook-pst/ — that crate, with four fixes found on real data (HYPERSUITE-PATCHES.md)
  • build.rs, resources/ — icon, version info, manifest, payload resource, fonts (Figtree, Unbounded; OFL)
  • scripts/ — asset staging, signing, notices, window screenshots (screenshot.ps1)

Public releases (GitHub)

Source and history stay here. The public repository github.com/namshubs/hypersuite is a separate repo that only ever receives the whitelisted files in public/ (README, LICENSE, CHANGELOG, SECURITY, docs/, .github/) and the release assets — never source, never this history, no mirror, no git remote.

powershell -ExecutionPolicy Bypass -File scripts\publish-github.ps1 -DryRun   # whitelist, leak check, notes preview
powershell -ExecutionPolicy Bypass -File scripts\publish-github.ps1           # asks for the GitHub token (hidden), never stores it

The release notes are the version's section in public/CHANGELOG.md. .forgejo/workflows/publish-github.yml does the same from a Forgejo runner (manual trigger, secret GH_RELEASE_TOKEN), taking the assets from the Forgejo release. The public docs must not mention this server, its domain or internal paths; both the script and the workflow check for that.

License

Sustainable Use License 1.0 (n8n's text, unchanged) since 2.1.4; 2.1.3 was Apache License 2.0. public/LICENSE and public/NOTICE (copyright, not open source, use at your own risk) are both shown in the program's About; third parties in THIRD-PARTY-NOTICES.md. The source stays private; contributors get access by invitation (see "About the source code" in public/README.md). Release notes on both servers end with scripts/release-footer.md.