Local CLI Firefox + Chromium

Export history.
Prove it.

A cross-platform, copy-first history exporter that fails loudly when the result is empty—and gives you the hashes, counts, and date range to check it later.

  • 0network calls
  • 2browser families
  • SHA-256on every artifact
A dark browser database cartridge passes through a verifier gate and becomes two checked paper export reports.
Database copied first. Export read second. Evidence checked last.

Copy / normalize / attest

A file existing is not proof.

Sentinel treats verification as part of the export—not a chore you remember after wiping the old machine.

  1. Find profiles

    Detect Firefox, Chrome, Chromium, Edge, Brave, and Vivaldi profiles in their native Windows, macOS, and Linux locations.

    sentinel scan
  2. Copy before reading

    Copy the history database and SQLite sidecars into a private temporary workspace. The live profile is never opened by SQLite.

    History → /tmp/sentinel…
  3. Verify the evidence

    Recompute artifact hashes, record counts, and visit bounds. A mismatch exits non-zero with the exact file to inspect.

    sentinel verify ./archive

Recorded fixture / no local access

See every ending.

This browser demo uses synthetic URLs. The real CLI works offline against your copied database and never sends its contents here.

$ sentinel export --profile ./fixture/Default --output ./archive

COPY       History + History-wal → private snapshot
READ       chromium schema v131
NORMALIZE  12,841 visits → JSON + CSV
HASH       history.json  7a920e…e914
HASH       history.csv   f839cb…8a20

✓ EXPORT COMPLETE
  Records   12,841
  Range     2017-04-08 → 2026-08-27
  Report    ./archive/chromium-default/report.json

$ sentinel verify ./archive
✓ VERIFIED — hashes, count, and date bounds match
Exit 0 / verified Safe to copy the archive

report.json / schema v1

Keep the receipt with the archive.

Complete
Browser
chromium
Profile
Default
Records
12,841
Earliest
2017-04-08T09:14:52Z
Latest
2026-08-27T21:05:10Z
history.json
7a920e54b1e1…e914
history.csv
f839cb7fd89e…8a20

The report stores no absolute profile path. Share the archive only if you mean to share the history inside it.

Free / MIT / v0.1.0

One binary. No account.

Build from source today. Signed release binaries can be added by the factory without changing the CLI or privacy model.

Review the source (opens GitHub)
Build and install cargo install --git https://github.com/B-Divyesh/sf-browser-history-export-sentinel history-export-sentinel
Export all detected profiles sentinel export --output ./history-archive --format both

Honest boundaries

What Sentinel does not do.