Sanitize files before you share or delete them.
PrivyFile is a privacy-first, local-only desktop tool from VassDev Studio that removes file metadata and securely deletes sensitive files.
- Drag-and-drop interface for files and folders
- Metadata removal for JPEG, PNG, WebP, HEIC, TIFF, PDF, Office docs, MP4/MOV, and more
- Preview metadata and privacy score (0–100) before cleaning
- Non-destructive cleaning by default (
-cleanedcopy) - Secure multi-pass file shredding (Random, DoD 5220.22-M, custom)
- Batch processing with progress and HTML/JSON reports
- Smart cleaning profiles (Social Media, Legal Document, Photo Backup)
- Watch folder mode for automatic cleaning
- CLI for scripting and headless use
- Zero telemetry — all processing happens locally
- Frontend: React 19, TypeScript, Tailwind CSS v4
- Desktop: Tauri v2
- Backend: Rust (
privyfile-core) - Metadata: Bundled ExifTool + Rust native handlers for common images
- Node.js 22+
- Rust stable (MSVC on Windows)
- WebView2 (included on Windows 11)
cd "C:\Users\Username\Documents\Code Projects\PrivyFile"
npm install
npm run tauri devcargo run -p privyfile-cli -- metadata photo.jpg --json
cargo run -p privyfile-cli -- clean photo.jpg --output ./cleaned/
cargo run -p privyfile-cli -- shred document.pdf --method dod
cargo run -p privyfile-cli -- batch ./folder --clean --recursiveExifTool is downloaded automatically before npm run tauri dev and npm run tauri build:
npm run fetch-exiftool # platform-specific bundle under src-tauri/binaries/
npm run verify-exiftool # sanity-check bundled binary + support files
npm run test:exiftool-runtime| Platform | Bundle path | Layout |
|---|---|---|
| Windows | src-tauri/binaries/win/ |
exiftool.exe + exiftool_files/ |
| Linux | src-tauri/binaries/linux/ |
exiftool + lib/ |
| macOS | src-tauri/binaries/macos/ |
exiftool + lib/ |
Version is pinned in scripts/exiftool-version.txt. Windows downloads exiftool-{version}_64.zip; Linux and macOS download Image-ExifTool-{version}.tar.gz from SourceForge. Bundled copies are included in Tauri installers at {InstallDir}/binaries/{platform}/.
Pushing a version tag builds all platforms and uploads installers to GitHub Releases:
# Bump version in package.json and src-tauri/tauri.conf.json first
git tag v0.1.0
git push origin v0.1.0The Release PrivyFile workflow produces Windows (MSI + NSIS), Linux (.deb / AppImage), and macOS (.dmg) assets.
If a release completes without installer files attached, open Actions → Release PrivyFile, inspect the failed platform job, fix the issue, then re-run the workflow or push an updated tag:
git tag -d v0.1.0
git push origin :refs/tags/v0.1.0
git tag v0.1.0
git push origin v0.1.0- Windows: run
scripts/install-context-menu.ps1 - Linux: copy
scripts/privyfile-context.desktopto~/.local/share/applications/and adjust paths
MIT — see LICENSE
See PRIVACY.md and SECURITY.md.