# DupePilot (CLI prototype)
Exact-duplicate file finder with a safe quarantine mode. Working prototype
of the DupePilot concept's core engine — see `../plan.md` for the full
product plan (near-duplicate photo similarity and the WinUI 3 shell are
still on the roadmap; this build is the hashing/scanning engine only).
## Build from source
Requires Go 1.24+, no external dependencies.
```
go build -o dupepilot .
```
Cross-compile for another platform:
```
GOOS=windows GOARCH=amd64 go build -o dupepilot.exe .
GOOS=darwin GOARCH=arm64 go build -o dupepilot .
```
## Usage
```
dupepilot scan
[ ...] [--json] [--min-size BYTES]
dupepilot quarantine --to [--min-size BYTES] [--apply]
```
`scan` groups files by size, then hashes (SHA-256) only files that share a
size with another file, and reports duplicate sets sorted by reclaimable
space.
`quarantine` moves every file in a duplicate set except the oldest one into
a separate directory, preserving relative paths. Without `--apply` it's a
dry run that only prints what it would do — nothing is deleted, ever; files
are moved, so a mistaken match is always one `mv` away from undone.
## Prebuilt binaries
See `../downloads/` for prebuilt binaries (Windows/macOS/Linux, amd64 +
darwin/arm64) and `CHECKSUMS.txt` for their SHA-256 hashes. These are
unsigned indie builds — Windows SmartScreen and macOS Gatekeeper will warn
on first run, which is expected until a code-signing certificate is in
place (see the build plan's risk section).