CleanUnderwear is a localized, autonomous surveillance and monitoring platform designed to help you keep a protective vigil over your loved ones. It transforms your passive contact list into an active Registry, capable of automatically detecting life-status changes (incarceration or passing) across a variety of public records.
Most people use "The Registry" to keep tabs on elderly relatives, estranged family, or vulnerable friends. The app operates on a "Zero-Knowledge" local-first architecture:
- No Cloud Backend: All surveillance data, contact details, and findings stay on your device.
- Autonomous Scything: Background workers (the "Panopticon") perform routine scans of municipal rosters and obituary registries without manual intervention.
- Evidence-First Verification: Every status change is backed by a "Verification Snippet"—the raw text found during the scan—allowing you to manually verify findings and correct false positives (e.g., surviving relatives mentioned in an obituary).
Scythe through your digital ecosystems to build your Registry. Supports:
- Google & Apple Contacts: Synced via your primary accounts.
- Meta Ecosystem: Pulls in "Local" contacts from WhatsApp, Facebook, and Instagram syncs.
- Device Storage: Legacy local-only contacts.
- The Daily Vigil: Every morning at 9:00 AM, the app triggers a comprehensive scan of all active individuals in the Registry.
- Dynamic URL Discovery: The
OnDeviceResearchAgentautomatically maps an individual's area code and location to relevant municipal arrest logs and funeral home registries. - Stealth Scraping: Uses a hybrid approach of
HtmlScraper(fast) andWebViewScraper(stealth) to bypass modern bot-detection like Cloudflare and Turnstile.
The app uses your phone's native address book as its "external memory":
- Write-Back: Status changes are injected directly into the system contact's "Notes" field.
- Seamless Recovery: Upon re-installation or device migration, the app scans your contact notes to automatically reconstruct your Registry state (Status, URLs, and Timestamps).
- Status Badges: Visual indicators for
Monitoring,Checking,Incarcerated,Deceased, andArchived. - Evidence Card: View the exact match snippet found during a scan.
- Registry Actions: Long-press any individual to Archive, Resume Monitoring, or view original verification sites.
IdentityVerifier: Uses fuzzy regex matching to identify individuals amidst "sloppy" municipal nomenclature. Supports nickname variations and "Last, First" name inversions.GitHubCrashReporter: An automated "Digital Canary" that posts fatal app crashes as issues in this repository for triage.
- WorkManager: Orchestrates the 9 AM periodic vigil.
- Room Database: Persists the Registry state with migrations from version 1 through 5.
- Hilt: Manages the dependency graph for scrapers, repositories, and use cases.
- Clone & Build: Standard Gradle build via
./gradlew assembleDebug. - Permissions: The app requires
READ_CONTACTS,WRITE_CONTACTS, andPOST_NOTIFICATIONS. An instructional dialog explains these requirements upon first launch. - Onboarding: Follow the "Instructional Cards" upon first launch to understand the monitoring logic.
“A localized vigil for the people who matter most.”