Cloudless freedom for your iPhone. Local-first photo/video backup from iOS devices to disk. A HARTLE.TECH tool.
https://hartle.tech
- Go 95.2%
- Shell 4.8%
Operator: "Each row, a new backup, if it's too many rows, scrollbar. With that stupid move, you got rid of all chances of even decrypting the damn files AT ALL" + "Encrypted files in DumpSock should have the .dumpsock extension." Saved Backups restructure (#45) - Frontend flattens (entry × history) into one row per RunRecord sorted newest-first. Folders without metadata get a single synthetic row with the rolled-up totals. Each row shows device · timestamp · pulled/skipped/errors counts. - Every row carries the FULL action set: Reveal, Decrypt (when an archive is present), Decrypt & unarchive (same), Move…, Forget. Operator can never lose decrypt access via UI restructure again. - .backups-list now has max-height: 520px + overflow-y: auto so a long list scrolls inside the card instead of pushing the page. .dumpsock extension (#46) - backup.EncryptFile produces `<name>.dumpsock` instead of `<name>.aes` (strips `.zip` suffix from input if present; otherwise appends). - App.DecryptArchive + App.DecryptAndExtractArchive accept .dumpsock AND legacy .aes (default output name strips either, ensures .zip suffix). - ListBackups detects .dumpsock alongside .zip.aes for the Encrypted-archive badge + per-row Decrypt button. - removeRawTree preserves .dumpsock files. - PackageZip walk skips .dumpsock files (so re-runs don't gobble predecessor encrypted archives into the new zip). - OpenFileDialog filter lists *.dumpsock first, *.aes second for legacy users. - Magic-byte check inside DSAES2 means existing .zip.aes archives decrypt unchanged — only the NAMING changed. Tracks #45 and #46. Co-touches #36 / #40 / #42 / #43. |
||
|---|---|---|
| .github | ||
| assets | ||
| cmd | ||
| docs | ||
| internal | ||
| scripts | ||
| .gitignore | ||
| CLAUDE.md | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| NOTICE | ||
| README.md | ||
| SESSION_RESUME.md | ||
| wails.json | ||
DumpSock
Cloudless freedom for your iPhone.
DumpSock is a playful, local-first tool that helps people free space on iPhone and iPad by backing up media and files the good old way: locally, privately, no cloud.
dumpsock pull
That's the whole common case.
What it does
- Plug your iPhone in over USB.
- DumpSock walks
DCIM/, pulls every photo and video to your Mac (or to any folder you point it at — including an external SSD). - Files land in date-sorted
YYYY-MM-DD/folders so you can find them later. - Optional
--delete-afterremoves each file from the iPhone once it's safely on disk. Storage freed immediately.
No iCloud. No account. No telemetry. No phone-home. The bytes go from your phone to your disk and nowhere else.
Status
Phase 2 — desktop GUI shipped, v2 brand applied. macOS .app bundle works end-to-end against real iPhones on iOS 26. Linux + Windows CLI binaries build; native GUIs for those platforms are in flight.
Roadmap
| Phase | Lands |
|---|---|
| 0 | Project scaffold + brand bible |
| 1 | Go CLI — pull, devices, dry-run, set-mtime, parallel, live-pair, since/until, watch-mode, delete-after |
| 2 | macOS GUI (Wails) with the v2 mascot, light theme, playful copy |
| 2.1 | Multi-tab dashboard (Dashboard / Compare / Progress / Settings), storage gauge, status pills |
| 2.5 | iPhone Mirroring auto-empty of Recently Deleted (one Touch ID on the Mac, then bytes really go) |
| 3 | Landing page at dumpsock.app (or dumpsock.hartle.tech); browser-control of a desktop bridge |
| 4 | Signed installers, notarization, SBOM, SLSA provenance |
| 5 | Mobile-to-mobile (iPhone → Android over OTG, native) |
Privacy
DumpSock is fully offline. No telemetry. No phone-home. No account. Your data stays yours.
Contact
A HARTLE.TECH tool. Questions: contact@hartle.tech.