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 2 weeks ago

328 files
b3757502a1b3
back to HEAD
android/5.4 MB · 5 months ago
.gradle/4.8 MB · 6 months ago
.idea/113.5 KB · 6 months ago
app/276.6 KB · 5 months ago
src/272.7 KB · 5 months ago
androidTest/774 B · 6 months ago
java/774 B · 6 months ago
com/774 B · 6 months ago
main/271.6 KB · 5 months ago
assets/895 B · 5 months ago
java/48.5 KB · 6 months ago
res/219.3 KB · 6 months ago
drawable/10.8 KB · 6 months ago
drawable-land-hdpi/7.5 KB · 6 months ago
drawable-land-mdpi/3.9 KB · 6 months ago
drawable-land-xhdpi/9.0 KB · 6 months ago
drawable-land-xxhdpi/13.7 KB · 6 months ago
drawable-land-xxxhdpi/17.3 KB · 6 months ago
drawable-port-hdpi/7.7 KB · 6 months ago
drawable-port-mdpi/4.0 KB · 6 months ago
drawable-port-xhdpi/9.6 KB · 6 months ago
drawable-port-xxhdpi/13.0 KB · 6 months ago
drawable-port-xxxhdpi/17.1 KB · 6 months ago
drawable-v24/1.8 KB · 6 months ago
layout/1.3 KB · 6 months ago
mipmap-anydpi-v26/540 B · 6 months ago
mipmap-hdpi/11.1 KB · 6 months ago
mipmap-mdpi/7.0 KB · 6 months ago
mipmap-xhdpi/15.6 KB · 6 months ago
mipmap-xxhdpi/26.7 KB · 6 months ago
mipmap-xxxhdpi/39.7 KB · 6 months ago
values/1.2 KB · 6 months ago
xml/588 B · 6 months ago
AndroidManifest.xml2.9 KB · 6 months ago
test/402 B · 6 months ago
java/402 B · 6 months ago
com/402 B · 6 months ago
.gitignore26 B · 6 months agobuild.gradle2.5 KB · 6 months agocapacitor.build.gradle666 B · 6 months agoproguard-rules.pro751 B · 6 months ago
build/129.8 KB · 6 months ago
reports/129.8 KB · 6 months ago
problems/129.8 KB · 6 months ago
capacitor-cordova-android-plugins/11.5 KB · 6 months ago
build/9.4 KB · 6 months ago
.transforms/274 B · 6 months ago
7beb45389d36f3be5d46ee1e2c6e8e21/10 B · 6 months ago
d7fe5323227bdf5e02f51d947efe076c/264 B · 6 months ago
transformed/235 B · 6 months ago
bundleLibRuntimeToDirDebug/235 B · 6 months ago
results.bin29 B · 6 months ago
intermediates/6.8 KB · 6 months ago
aapt_friendly_merged_manifests/678 B · 6 months ago
debug/678 B · 6 months ago
processDebugManifest/678 B · 6 months ago
aar_main_jar/22 B · 6 months ago
debug/22 B · 6 months ago
syncDebugLibJars/22 B · 6 months ago
aar_metadata/156 B · 6 months ago
debug/156 B · 6 months ago
writeDebugAarMetadata/156 B · 6 months ago
annotation_processor_list/2 B · 6 months ago
debug/2 B · 6 months ago
javaPreCompileDebug/2 B · 6 months ago
annotations_typedef_file/0 B · 6 months ago
debug/0 B · 6 months ago
extractDebugAnnotations/0 B · 6 months ago
compile_library_classes_jar/330 B · 6 months ago
debug/330 B · 6 months ago
bundleLibCompileToJarDebug/330 B · 6 months ago
compile_r_class_jar/330 B · 6 months ago
debug/330 B · 6 months ago
generateDebugRFile/330 B · 6 months ago
compile_symbol_list/0 B · 6 months ago
debug/0 B · 6 months ago
generateDebugRFile/0 B · 6 months ago
incremental/4.4 KB · 6 months ago
debug/2.1 KB · 6 months ago
debug-mergeJavaRes/478 B · 6 months ago
mergeDebugAssets/828 B · 6 months ago
mergeDebugJniLibFolders/542 B · 6 months ago
mergeDebugShaders/542 B · 6 months ago
local_only_symbol_list/55 B · 6 months ago
debug/55 B · 6 months ago
parseDebugLocalResources/55 B · 6 months ago
manifest_merge_blame_file/447 B · 6 months ago
debug/447 B · 6 months ago
processDebugManifest/447 B · 6 months ago
merged_java_res/22 B · 6 months ago
debug/22 B · 6 months ago
mergeDebugJavaResource/22 B · 6 months ago
merged_manifest/314 B · 6 months ago
debug/314 B · 6 months ago
processDebugManifest/314 B · 6 months ago
navigation_json/2 B · 6 months ago
debug/2 B · 6 months ago
extractDeepLinksDebug/2 B · 6 months ago
nested_resources_validation_report/15 B · 6 months ago
debug/15 B · 6 months ago
generateDebugResources/15 B · 6 months ago
runtime_library_classes_jar/22 B · 6 months ago
debug/22 B · 6 months ago
bundleLibRuntimeToJarDebug/22 B · 6 months ago
symbol_list_with_package_name/34 B · 6 months ago
debug/34 B · 6 months ago
generateDebugRFile/34 B · 6 months ago
outputs/2.3 KB · 6 months ago
src/211 B · 6 months ago
main/211 B · 6 months ago
build.gradle1.6 KB · 6 months agocordova.variables.gradle312 B · 6 months ago
gradle/43.0 KB · 6 months ago
.gitignore1.8 KB · 6 months agobuild.gradle706 B · 6 months agocapacitor.settings.gradle1.4 KB · 6 months agogradle.properties987 B · 6 months agogradlewGradle start up script for POSIX generated by Gradle.8.5 KB · 6 months agogradlew.bat2.9 KB · 6 months agolocal.properties344 B · 6 months agosettings.gradle208 B · 6 months agovariables.gradle573 B · 6 months ago
icons/7.3 KB · 6 months ago
public/353.5 KB · 6 months ago
scripts/41.5 KB · 6 months ago
src/1.5 MB · 5 months ago
background/342.3 KB · 5 months ago
aes.test.ts2.2 KB · 6 months agoaes.tsaes.ts — AES-256-GCM encrypt/decrypt primitives for vault storage.3.1 KB · 6 months agoalarms.test.ts5.2 KB · 6 months agoalarms.ts2.3 KB · 6 months agoclipboard.test.ts3.2 KB · 6 months agoclipboard.ts1.8 KB · 6 months agocommands.tsKeyboard command handler — routing for summon-inline: 1.2.5 KB · 6 months agoentry.ts1.3 KB · 6 months agohealth.test.ts4.9 KB · 6 months agohealth.tshealth.ts — Pro advanced vault health analysis.7.0 KB · 6 months agoindex.ts661 B · 6 months agolicense.ts5.4 KB · 6 months agomessages.test.ts25.6 KB · 6 months agomessages.tsmessages.ts — the only background message handler.57.3 KB · 6 months agoml-detector.ts3.5 KB · 6 months agopairing-server-state.tsTracks the active 6-digit pairing-server session.2.3 KB · 6 months agopasskey-crypto.test.ts6.0 KB · 6 months agopasskey-crypto.ts10.4 KB · 6 months agopasskey-firefox-proxy.test.tspasskey-firefox-proxy.test.ts — covers the v2.12.0 Firefox content-script proxy path.11.4 KB · 6 months agopasskey.ts31.6 KB · 6 months agosync-coordinator.test.tsBlob sync session tests.9.9 KB · 6 months agosync-coordinator.tsBlob sync session coordinator.11.6 KB · 6 months agosync-identity-glue.tsLocal device id helpers shared between the lifecycle tick and the 6-digit pairing flow.957 B · 6 months agosync-lifecycle.tsSync lifecycle — auto-advertise + incoming pairing subscriber.12.4 KB · 6 months agosync-network.ts3.1 KB · 6 months agosync-storage.ts5.6 KB · 6 months agosync.test.ts5.0 KB · 6 months agosync.tsGATED — peach-sync native host client.16.4 KB · 6 months agovault-history.test.tsVault history tests.8.4 KB · 6 months agovault.test.ts26.6 KB · 6 months agovault.tsvault.ts — sole owner of vault state and chrome.storage vault keys.55.0 KB · 5 months ago
content/221.9 KB · 6 months ago
crypto/111.9 KB · 6 months ago
popup/658.8 KB · 5 months ago
components/24.5 KB · 6 months ago
styles/182.7 KB · 5 months ago
views/377.6 KB · 5 months ago
App.tsx66.6 KB · 6 months agocopy.tsPopup-side copy helper.1.1 KB · 6 months agofirefox-passkey.tsfirefox-passkey.ts — popup-context WebAuthn caller for the Firefox path.4.0 KB · 6 months agoindex.html2.1 KB · 6 months agoindex.tsx155 B · 6 months ago
shared/157.4 KB · 6 months ago
android-sync-identity.tsAndroid sync identity — persistent X25519 keypair for the Capacitor side.3.0 KB · 6 months agobackup.test.ts2.8 KB · 6 months agobackup.ts7.4 KB · 6 months agobiometric.ts641 B · 6 months agobridge.ts2.0 KB · 6 months agobrowser.tsbrowser.ts — feature-detected browser identifier shared by background, popup, and content scripts.1.3 KB · 6 months agocapacitor-pairing-handshake.tsCapacitor pairing handshake — WebSocket variant of the desktop INITIATE_PAIR_WITH_PEER flow.2.7 KB · 6 months agocapacitor-pairing-server.tsCapacitor pairing server — JS runtime for Android show-mode pairing.10.4 KB · 6 months agocapacitor-sync-transport.tsCapacitor (Android) sync transport.7.4 KB · 6 months agochrome-mobile.tsCapacitor-backed chrome.storage.local shim.2.5 KB · 6 months agochrome-shim.tsCapacitor chrome shim.4.4 KB · 6 months agochrome.tsShared chrome shim — uses real Chrome APIs on extension builds, Capacitor-backed shim on mobile builds.2.9 KB · 6 months agodomain.ts657 B · 6 months agofavicon.test.ts1.2 KB · 6 months agofavicon.tsResolves a favicon URL for a given domain.794 B · 6 months agofold.ts1.3 KB · 6 months agogenerate.test.ts2.1 KB · 6 months agogenerate.ts2.1 KB · 6 months agoimport.test.ts13.4 KB · 6 months agoimport.ts15.7 KB · 6 months agoin-memory-vault.ts995 B · 6 months agoml.ts1.4 KB · 6 months agonative-sync-installer.test.ts2.8 KB · 6 months agonative-sync-manifest-script.test.ts1.7 KB · 6 months agonoise-js.test.tsNoise NK auth proof cross-check.7.2 KB · 6 months agonoise-js.tsNoise NK initiator for Android / Capacitor.13.2 KB · 6 months agopasskey-flags.tspasskey-flags.ts — single switch for the Firefox passkey content-script proxy.2.1 KB · 6 months agoshortcuts.test.ts@vitest-environment jsdom4.0 KB · 6 months agoshortcuts.tsshortcuts.ts — keybinding schema, defaults, matcher, formatter.6.7 KB · 6 months agostorage.ts1.0 KB · 6 months agosync-bridge.test.ts1.2 KB · 6 months agosync-bridge.tsSync transport selector.7.9 KB · 6 months agosync-types.tsTypes for Peach sync — full encrypted vault blob transfer.4.4 KB · 6 months agosync-wire.test.ts2.8 KB · 6 months agosync-wire.ts2.4 KB · 6 months agotypes.tstypes.ts — cross-boundary types and the MessageType union.12.9 KB · 6 months ago
sync/9.0 KB · 6 months ago
tests/437.6 KB · 6 months ago
.gitignore124 B · 6 months agocapacitor.config.ts392 B · 6 months agomanifest.firefox.json1.8 KB · 5 months agomanifest.json1.3 KB · 5 months agopackage-lock.json303.3 KB · 6 months agopackage.json2.5 KB · 5 months agoplaywright.config.ts808 B · 6 months agopnpm-lock.yaml169.9 KB · 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 agosyn001.mdSYN-001 is the Peach Sync blocker that kept desktop native sync dormant.2.4 KB · 6 months agoSYNC_STATUS.mdSnapshot as of 2026-04-30, HEAD 7d738aa11c96, package v2.14.9, native v0.1.14.15.0 KB · 6 months agotsconfig.background.json430 B · 6 months agotsconfig.json461 B · 6 months agotsconfig.tests.json122 B · 6 months agovite.config.mobile.ts1.3 KB · 6 months agovite.config.ts1.4 KB · 6 months agovitest.config.ts250 B · 6 months ago
94fda772d1b5fix: Show full used-email picker in entry editor (v4.9.9)2 months agod550f48a729dfix: Restore Advanced control for passkey entries (v4.9.8)2 months ago03887ea0c034docs: define cross-platform contract sync policy2 months ago72efe45f61c2record 2fa-icon-spam fix and v4.9.7 gates in CONTINUITY.md2 months agoda74e3f68636collapse OTP-signaling split-digit boxes (no maxlength) to a single icon on box[0] instead of one per box2 months ago2c20a75301a0record six-fix bugfix session and v4.9.6 gates in CONTINUITY.md2 months agoa945b931a1c5bump version 4.9.5 to 4.9.6 across package.json and both manifests2 months agoc54ae32c7d48treat markup-only or zero-width contenteditable bodies as blank so a new note with nothing typed is never saved2 months ago2adb75e4873erun the main content script in all frames so Peach can fill login forms inside overlay/nested iframes2 months ago4488f3459d17detect single-digit OTP boxes by maxlength attribute so type=number 2FA boxes no longer each get a peach icon2 months ago8b8b37f3866fbrighten the Settings version corner to a gentle readable off-white instead of 10% alpha2 months ago5de797f88705suppress keyboard shortcuts on lock screen so typing a password cannot trigger new-entry and escape2 months ago3b0605503593render passkey entries with favicon or coloured initials instead of search-like key icon2 months ago0a86c74f2b4cfix lock action icon to render accent at rest instead of only on hover2 months agoe3cda06167abfeat: Rename paired devices locally (v4.9.4)2 months ago7c75b22961a9fix: Bound cumulative locked sync inbox (v4.9.3)2 months agof5eeec05e167feat: Add opaque locked background sync spool (v4.9.2)2 months agoe40a67cca1a3clear MV3 session key in lock() so a manual lock is not silently undone by the next SW restart2 months ago0e9a9f1e1ac5strip accentGlow machinery from RuneBackground, runes drift subtly on their own at base opacity2 months agoc2d065090bf8bump version to 4.9.1 and rebuild dist-chrome and dist-firefox2 months ago6d22b523c75frestore PeachMark above lock-screen eyebrow, add peach-lock-mark sizing, tighten eyebrow tracking/weight2 months ago501417f17d18slow down accent glow pulse (0.08-0.20 speed, 5-9s lifetime) and tighten rune row spacing (LINE_H 3.8→2.8)2 months agod72d7694ef20bump version to 4.9.0 in package.json and manifests2 months ago96373f8a028dfix indentation in Lock.tsx unlock view after layout changes2 months agob80860877bb4add canvas null check, mock RuneBackground in tests, all tests pass2 months ago9c22e753d364fix unused variables in glow update loop, lint and typecheck pass clean2 months agofe0416317f36center hero content on unlock view, remove hero art CSS, add text-align center to headline2 months ago6a73c5c3a0bbremove LockRuneCanvas and PeachMark hero art from lock screen, add RuneBackground with accentGlow2 months agofa601515c1a3add accentGlow prop to RuneBackground with sine-wave pulse glow slots2 months ago14c3e3aa08fadocs: record v4.8.9 Chrome and Firefox release2 months ago0da75a28a141docs: record combined credential browser verification2 months ago507ed37227b1fix: preserve TOTP during passkey consolidation (v4.8.9)2 months ago752c6edfb19fdocs: continuity — peach-android v2.14.12 mirrors the 64-char device-name cap2 months ago2a311f0d3062docs: continuity — record device-name cap hardening (v4.8.8)2 months ago847806bd2188feat: cap peer device names at 64 chars on every inbound seam (v4.8.8)2 months agoc387e8a41f26docs: continuity — record sync-alert overflow fix outcome (v4.8.7)2 months ago44a2d34bbdddfix: contain device-trust alert banners inside the 320px shell (v4.8.7)2 months ago65feee9c1752docs: Refresh README for Peach Sync and Android beta2 months agoddbf04f40670docs: continuity — record deletion + biome-repair outcomes and save bundling note (v4.8.6)2 months agoac28263c9b98test: revive two orphaned mesh-propagation receiver tests (v4.8.6)2 months ago41b6448ed641refactor: delete dead GET_ADOPTION_MATERIAL/COMPLETE_PAIRING handlers (v4.8.5)2 months agoae66726c3c86docs: continuity — record Codex Security F1/F2/F3 resolution and verification (v4.8.4)2 months agoe3f31d626cb8style: drop lint violations introduced by security fixes (v4.8.4)2 months ago7cf0e6d4b0c4fix: canary webhook filter rejects IPv4-mapped IPv6 private literals (v4.8.4)2 months ago2945bb7a571afix: bind Firefox passkey completion to the pending ceremony (v4.8.3)2 months agoc3c0d13e0280fix: gate key-material and pairing handlers to extension-page senders (v4.8.2)2 months ago1fc1bb91666btest: fix flaky tampered-ciphertext crypto test (v4.8.1)2 months ago351f84bfff6efeat: collapse sync alert toasts by type with counter + flip + dismiss-all; strip mesh diag (v4.8.0)2 months agode56d93b26cefix: treat wsPort/relayUrl null same as undefined in manifest validation + normalise (v4.7.9)2 months agoceeb0d1edf66fix: accept wsPort:0 as valid no-port sentinel in manifest validation (v4.7.8)2 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]