peach-browser

@june

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

TypeScript

v5.3.12 · 1,780 saves · 70,179 lines · updated 3 weeks ago

148 files
1c5fc17731cc
back to HEAD
icons/14.8 KB · 6 months ago
public/336.7 KB · 6 months ago
scripts/1.8 KB · 6 months ago
src/937.3 KB · 6 months ago
background/184.5 KB · 6 months ago
content/116.8 KB · 6 months ago
crypto/79.5 KB · 6 months ago
popup/493.0 KB · 6 months ago
shared/54.5 KB · 6 months ago
sync/9.0 KB · 6 months ago
tests/434.2 KB · 6 months ago
.gitignore124 B · 6 months agomanifest.firefox.json1.3 KB · 6 months agomanifest.json1.3 KB · 6 months agopackage-lock.json270.3 KB · 6 months agopackage.json1.7 KB · 6 months agoplaywright.config.ts808 B · 6 months agoSETTINGS_REDESIGN_SPEC.mdNote: Projects.md §8 says "no new features until P0/P1 findings are closed." This task has explicit user authorisation to proceed despite that rule.23.0 KB · 6 months agotsconfig.background.json430 B · 6 months agotsconfig.json461 B · 6 months agotsconfig.tests.json122 B · 6 months agovite.config.ts1.4 KB · 6 months agovitest.config.ts250 B · 6 months ago
b375e5f9a3earecovery word grid: 3-col → 2-col, min-width:0 on inputs, align-items:stretch on container, overflow-x:hidden5 months agod389c9f486fbfix forgot-password button: move recovery word entry match before hasVault match so it isn't shadowed5 months ago808ea0e592b9v2.32.0 — sync Firefox to Chrome version5 months ago8a823f06122bbroaden policy scraper: deeper DOM walk, label/div selectors, range/exact/min-only pattern forms, between/exactly text phrases5 months agod08bf4e3dd8aadd email field to entries; smart email/username label; +Add Email button; inline popup label fix5 months ago3640600d7a5cbefore email field and identity label changes5 months ago952ee75b2c6eshow fresh recovery words in Settings after password change5 months ago62761aef1e41fix BIP39 byte extraction and rotate root key on password change5 months ago9a7231c2c15eadd RecoveryWordDisplay view (one-time show after create) and pre-v2.12 migration path5 months ago85a75322611cadd recovery word entry UI and RecoveryRuneBackground5 months ago7efc46dd7ed8add recovery message handlers: VALIDATE_RECOVERY_WORDS, GET_RECOVERY_WORDS, RECOVER_WITH_WORDS5 months agobc7ce39e8e32add root key generation and recovery word wrapping in vault.ts5 months ago0f4c072b3db1add recovery word list and BIP39 encoding utilities5 months ago13906d7cd444before recovery word system save5 months ago46eb00d0cb2fbump manifest version to 2.30.2 (v2.30.1 was set before this session)5 months agoe5574b086b37add mobile build to ci.ts: build:mobile step after Firefox5 months agodb528eefa8a6add build:mobile script to package.json and create vite.config.mobile.ts for Android/iOS WebView bundle5 months ago4ec3741cd316add mobile message handlers to messages.ts: UNLOCK_WITH_KEY, GET_DERIVED_KEY, SCAN_PAIRING_QR, GET_LOCAL_IP, START_PAIRING_SERVER, TRIGGER_SYNC, GET_IDENTITY_SUGGESTIONS, POPULATE_INLINE_VAULT5 months ago817f71790ba4add vault.ts unlockWithKey (bypass Argon2id, use pre-derived key) and getDerivedKeyHex5 months ago567532481e30add mobile message types to MessageType union: UNLOCK_WITH_KEY, GET_DERIVED_KEY, SCAN_PAIRING_QR, GET_LOCAL_IP, GET_IDENTITY_SUGGESTIONS, POPULATE_INLINE_VAULT5 months ago231409f05d0abefore mobile message types and build config5 months ago50d4e457800fadd scripts/ci.ts — bun CI runner for typecheck, tests, chrome and firefox builds5 months agocc7196b4e72abump to v2.30.1, rebuild chrome and firefox5 months ago7767a36970cdpeach-browser clean — android, native sync host, and mobile-only dead code removed (v2.30.0)5 months ago1882919c9260remove all Android/Capacitor code, native sync host, and mobile-only dead code — browser extension only (v2.30.0)5 months agocba62ca5b081remove all Android/Capacitor code from popup views — App, Settings, Lock, SyncPairing, Onboarding5 months ago31184beaf504sync.ts and sync-lifecycle.ts removed — all importers fixed5 months agoeae5d6dc3a8bandroid/, native/, mobile scripts, and nativeMessaging permission removed5 months agob48bbea6d7efbefore cleanup — removing android and dead code5 months agoe0ec1767f8ccv2.29.3 clean baseline — before android implementation spec6 months ago71bd41b42835v2.29.3 audit complete — clean baseline confirmed6 months ago3cab4edce2f2before android master spec v2 full implementation6 months ago964f286213ccsilver platter + button, freeze popup width at init, nowrap action buttons (v2.29.3)6 months agoce749ba3a1e9clean extension baseline — pre-android restart6 months agoa91c0ac7e2f6Advanced toggle changes to − Advanced when expanded so it can be collapsed (v2.29.2)6 months ago77495c3a8024create-form grid overflow fixed — minmax(0, 1fr) on create-body and f-group tracks (v2.29.1)6 months ago084ea5aa4cd2inline popup: + button, always-show 2FA tray, cap width at 400px (v2.29.0)6 months agoa1ec5abcd016canary and passkey collapsed under + Advanced toggle in entry view (v2.28.0)6 months agob3757502a1b3pro upgrade UI — no sync hero icon, no color-mix drop-shadow on mark, narrow CTA buttons (v2.27.2)6 months agof0787b007df5breach status clears immediately on password change — optimistic clear before async HIBP check (v2.27.1)6 months ago9578774143bfpre-pluck baseline — android build cache and dist-mobile removed (regeneratable)6 months ago4f6535d225c9before native Peach autofill bottom sheet (PeachFillActivity)6 months ago0dea80b147f3fix settings crash (getManifest shim), replace peach emoji with PeachMark SVG in bloom canvas / ProCelebration / pairing banner (v2.27.0)6 months ago2ac38e92f4debefore settings fix + emoji-to-PeachMark replacements (v2.27.0)6 months ago136af2969805mobile gestures: swipe-up → vault list, swipe-L/R → navigate, wordmark → settings, gesture welcome card (v2.26.0)6 months ago7d83d974d418android: Kotlin plugin + lifecycle-ktx deps + peach launcher icons + PEACH_E2E_PASSKEYS mobile define6 months ago3673ad98ff49feat(mayan): v2 — corner anchors, homography decoder, RS(255,204), v1 dropped (v2.25.0)6 months ago47945ca845b0before mayan v2 rewrite — corner anchors, homography, RS(255,204)6 months agoa01510e32b46wip: pre-v2 — added 5KB and 20KB image-pipeline round-trip tests6 months ago36d1d3899c98fix Mayan image-decode failure: rune scan was eating data dark blobs adjacent to rune left vertex; switched findOthalan to sliding-window peek + multi-row averaging6 months ago

← newerolder →

details

Peach

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

Peach encrypts your vault on your device. No hosted vault, subscription, or account is required to use it.

peachpasswords.com


Features

  • Passwords, cards, and secure notes — keep your private data together in one encrypted vault
  • Inline autofill — fill and save credentials without leaving the page
  • TOTP built in — generate two-factor codes without a separate authenticator
  • Password health — find weak, reused, and exposed passwords
  • Portable backups — export and restore with PeachScript or a .peach file

Peach Pro adds:

  • Peach Sync — end-to-end encrypted sync across paired devices
  • Passkeys — save and use passkeys in Chrome and Firefox
  • Peach Codex — print an encrypted, scannable backup of your vault
  • Advanced vault health, Canary Entries, and duress tools

See the Peach website for current availability and Pro details.


Install


Open Source

Peach is released under the GPL v3. This repository contains Peach's Chrome and Firefox browser extensions. Android is maintained separately.

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


Security

Vault data is encrypted with AES-256-GCM and protected by Argon2id key derivation. Peach Sync authenticates paired devices and encrypts data in transit.

Implementation details live alongside the code:


Building

bun install --frozen-lockfile
bun run build

Builds are written to dist-chrome/ and dist-firefox/.


Built by Asha Software · [email protected]