File Tools
Inspect, hash, rename, split and join local files in the browser.
File Tools is a standalone local-first application in the add·ideas Toolbox. Inputs are processed in the browser and are not uploaded.
Version 0.1 scope
- Bounded head/tail signature inspection for every selected file with three-worker concurrency, aggregate progress, cancellation, per-file errors and claimed-versus-detected MIME reporting
- Paged 512-byte hexadecimal/ASCII views plus bounded UTF-8 and extracted-string previews
- Streaming SHA-256 and SHA-512 hashing in a cancellable module worker
- Same-size and same-hash duplicate candidates plus deterministic JSON/CSV inventory manifests that explicitly report inspection coverage, failures and cancellations
- Deterministic, bounded batch-rename planning with path-safe names and collision suffixes; the plan is visible before separate browser downloads begin
- Zero-copy Blob slicing into manifest-described parts, explicit ordered rejoin, and standard
SHA256SUMS/SHA512SUMSexports
Detection and entropy results are heuristics, not format validation, malware analysis or proof of encryption. A selection is limited to 500 entries; file contents remain represented by browser File handles and are read only for an inspection window, visible hex window, explicit streaming hash, or explicit export operation. Rename exports create copies and never rename the source handle. Split parts are downloaded separately because no archive container is implied, while join uses the displayed input order and does not infer a part manifest. See docs/ARCHITECTURE.md and docs/PRIVACY-SECURITY.md.
Development
Requires Node.js 22 and npm 11.
npm ci
npm run check
npm run test:browser
Release
npm run release:artifact creates a deterministic release/file-tools-0.2.0.zip and checksum sidecar.
Licence
GPL-3.0-or-later. Runtime dependencies retain their own licences; see THIRD_PARTY_NOTICES.md.