Reclaim gigabytes of phone storage instantly by identifying identical duplicate photos and videos directly on your device.
Zero network calls. Zero third-party trackers. Zero cloud uploads.
Features β’ Screenshots β’ Architecture β’ Installation β’ Privacy Policy β’ Contributing
- β‘ Ultra-Fast Local Scanning: Scans your gallery via the modern Android
MediaStorecontent provider without freezing the UI. - π 100% Offline & Private: Requires NO internet permission (
android.permission.INTERNETis not even requested in the manifest). Your private photos and videos never leave your device. - π‘οΈ Safe Android Trash Integration: Uses Android's native scoped storage trash request (
createTrashRequest). Duplicate files can be restored anytime from your device's native Gallery Trash/Recycle bin. - π― Byte-Exact Content Verification: Avoids false positives by verifying file size before streaming data into hardware-accelerated local hashes.
- π± Modern Android Standards: Built targeting Android 14+ (API 34/36) while supporting devices back to Android 8.0 Oreo (API 26).
flowchart TD
User["π€ User clicks Scan"] --> Scanner["π± Local MediaStore Scanner"]
Scanner --> Query["π Query Images (MediaStore.Images.Media)"]
Query --> Filter["π Filter Empty / Non-media files"]
Filter --> SizeBucket["π Group by identical byte sizes"]
SizeBucket --> HashCheck{"Match found?"}
HashCheck -->|Yes| StreamHash["π Compute local checksum stream (Chunked 8KB)"]
HashCheck -->|No| Skip["βοΈ Skip file (No I/O overhead)"]
StreamHash --> DuplicatesGroup["ποΈ Cluster Duplicates"]
DuplicatesGroup --> UserReview["ποΈ User reviews matches (Keep 1 copy)"]
UserReview --> Trash["ποΈ MediaStore.createTrashRequest (System Confirmation)"]
Download the latest pre-compiled signed APK from the Releases section:
- Download
TwinFinder.apk. - Open the file on your Android smartphone.
- Allow installation from unknown sources if prompted.
- Launch TwinFinder and grant gallery read access.
Ensure you have the Android SDK (API 34+) and JDK 17+ configured:
# 1. Clone the repository
git clone https://github.com/Kaio-Comk/Argos-Android.git
cd Argos-Android
# 2. Build debug APK
./gradlew assembleDebug
# 3. Install directly to a connected device or emulator
adb install app/build/outputs/apk/debug/app-debug.apkArgos was built from day one with a strict Privacy-First architecture:
- No Telemetry / No Analytics: No Firebase, no Sentry, no Google Analytics, no Facebook SDK.
- No Remote Communications: No network stack. The app physically cannot send data over the internet.
- Scoped Storage Compliant: Strictly respects modern Android permission models (
READ_MEDIA_IMAGES,READ_MEDIA_VIDEO). - Official Privacy Policy document is available at docs/index.html.
Looking for a desktop version for Windows with perceptual hash support (dHash) and video frame fingerprinting?
Check out the companion project: Argos-Cleaner for Windows (Python / Tkinter).
Contributions, bug reports, and pull requests are warmly welcome!
- Fork the Project.
- Create your Feature Branch (
git checkout -b feat/AmazingFeature). - Commit your Changes (
git commit -m 'feat: Add AmazingFeature'). - Push to the Branch (
git push origin feat/AmazingFeature). - Open a Pull Request.
Distributed under the MIT License. See LICENSE for details.


