peach-android

@june

Mobile companion for the Free Open Source Password Manager

Kotlin

2.17.2 · 932 saves · 70,997 lines · updated 1 hour ago · trusted

932 saves
520 files ⇓ bundle
932 saves
ff53d8a9b4befix: Preserve authenticated credential handoff (v2.17.2) - Keep the vault available across the one trusted Credential Manager round trip - Treat Peach unlock as verification for that pending passkey ceremony - Avoid a second Credential Manager biometric after unlocking Peach - Retain Credential Manager verification when the vault was already unlocked - Make authenticated PendingIntents one-shot to prevent replay - Verify 1,097 JVM tests, lint with zero errors, and signed release assemblydev1 hour ago
7f47a411cc3afix: Classify passkey assertion failures safely (v2.17.1) - Replace opaque assertion nulls with typed internal failure reasons - Log only the rejected invariant, never credential or request material - Preserve the existing nullable assertion API for callers and tests - Verify 1,097 JVM tests, lint with zero errors, and signed release assemblydev2 hours ago
9cebcd3b8029fix: Rebuild Credential Manager passkey flow (v2.17.0) - Keep BeginGet discovery separate from final credential completion - Delegate Android 15 verification to Credential Manager and consume its result - Preserve one Peach verification fallback for older or incomplete framework paths - Make manual choice explicit and fail framework boundary errors closed - Use unique PendingIntent identities and non-secret stage diagnostics - Verify 1,095 JVM tests, lint with zero errors, and signed release assemblydev3 hours ago
8c0dd8e3209bdocs: record v2.16.5 phone installation and verificationdev9 hours ago
details

Peach for Android

A free, open source, local-first password manager for Android.

No accounts. No subscription. Your passwords stay on the device, encrypted with AES-256-GCM and protected by Argon2id key derivation. Sync, backup, and autofill happen without trusting any cloud in the middle.

peachpasswords.com


Features

  • Zero-knowledge vault — AES-256-GCM encryption, Argon2id KDF, keys never leave your device
  • End-to-end encrypted sync — pairs with your other Peach devices over a Noise channel; the relay only forwards ciphertext it cannot read
  • Inline autofill — fills directly in apps, no copy-paste detour
  • Passkeys — WebAuthn credentials alongside your passwords
  • Quick Settings tile — copy a credential from anywhere with a single tap
  • Biometric unlock — hardware-backed AndroidKeyStore escrow, invalidated on enrollment change
  • Codex — prints your encrypted vault as Aztec codes on paper. Physical offline backup

Open Source

Peach is free and open source under the GPL v3 license. Both the browser extension and the Android app.

The source is hosted on Kepr — Asha Software's own version control platform.


Security

Peach has undergone two adversarial analysis sessions against this codebase. The most recent findings have been resolved.

Cryptographic primitives:

  • Key derivation: Argon2id (m=64MiB, t=3, p=4)
  • Encryption: AES-256-GCM with fresh random nonces
  • Sync handshake: Noise NK / Noise KK (25519, ChaChaPoly, BLAKE2s)
  • Backup codec: GF(2⁸) Reed-Solomon with zstd compression
  • BLAKE3 checksums throughout

The canonical Noise core lives in a shared Rust crate with the browser extension — Android drives it via JNI. See docs/CRYPTOGRAPHIC-TEST-VECTORS.md for the byte-level vectors that pin each primitive.


Building

./gradlew assembleRelease

Outputs to app/build/outputs/apk/release/. The shared Noise core is built from ../peach-browser/crypto-core.


License

GPL v3 — see LICENSE.


Peach Pro

Pro features (end-to-end encrypted sync, Codex, Canary) are available for $39 one-time at peachpasswords.com. Purchasing Pro supports continued development.


Built by Asha Software · [email protected]