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

179 files
14987dd735e4
back to HEAD
icons/7.3 KB · 6 months ago
public/353.5 KB · 6 months ago
scripts/35.1 KB · 5 months ago
src/1.5 MB · 5 months ago
background/320.8 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.3 KB · 5 months agoalarms.ts2.3 KB · 5 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.ts561 B · 5 months agohealth.test.ts4.9 KB · 6 months agohealth.tshealth.ts — Pro advanced vault health analysis.7.0 KB · 6 months agoindex.ts988 B · 5 months agolicense.ts5.4 KB · 6 months agomessages.test.ts24.7 KB · 5 months agomessages.tsmessages.ts — the only background message handler.59.5 KB · 5 months agoml.ts6.0 KB · 5 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.ts34.1 KB · 5 months agorecovery-pending.tsPersistent flag set while the user has just created a vault and is reading their 12 recovery words but has not yet typed the 3 confirmation words.1.2 KB · 5 months agosync-coordinator.test.ts9.2 KB · 5 months agosync-coordinator.ts4.2 KB · 5 months agosync-network.ts1.7 KB · 5 months agosync-storage.ts5.1 KB · 5 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.71.0 KB · 5 months ago
content/244.5 KB · 5 months ago
crypto/46.9 KB · 5 months ago
popup/746.6 KB · 5 months ago
components/42.8 KB · 5 months ago
styles/207.5 KB · 5 months ago
views/421.7 KB · 5 months ago
App.tsx66.8 KB · 5 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.tsx610 B · 5 months ago
shared/134.2 KB · 5 months ago
backup.test.ts2.8 KB · 6 months agobackup.ts7.4 KB · 6 months agobridge.ts1.6 KB · 5 months agobrowser.tsbrowser.ts — feature-detected browser identifier shared by background, popup, and content scripts.1.3 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 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 agolocal-network.ts4.2 KB · 5 months agoml.ts1.4 KB · 6 months agonative.tsMobile platform detection helpers used by popup views to gate Capacitor-only paths.848 B · 5 months agonoise-js.test.tsNoise NK auth proof regression test.6.9 KB · 5 months agonoise-js.tsNoise NK initiator for Android / Capacitor.13.0 KB · 5 months agopasskey-flags.tspasskey-flags.ts — single switch for the Firefox passkey content-script proxy.2.1 KB · 6 months agorecovery-word-list.tsrecovery-word-list.ts — 2048-word recovery word list for Peach vault recovery.20.1 KB · 5 months agorecovery-words.tsrecovery-words.ts — BIP39-compatible recovery word encoding for Peach vault recovery.5.4 KB · 5 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.ts537 B · 5 months agosync-types.ts1.8 KB · 5 months agosync-wire.ts1.1 KB · 5 months agotypes.tstypes.ts — cross-boundary types and the MessageType union.14.1 KB · 5 months agowebsocket-sync-transport.ts2.8 KB · 5 months ago
tests/437.6 KB · 6 months ago
.gitignore124 B · 6 months agobun.lock123.2 KB · 5 months agomanifest.firefox.json1.9 KB · 5 months agomanifest.json1.5 KB · 5 months agopackage-lock.json264.7 KB · 5 months agopackage.json1.9 KB · 5 months agoplaywright.config.ts808 B · 6 months agopnpm-lock.yaml169.9 KB · 6 months agotsconfig.background.json430 B · 6 months agotsconfig.json461 B · 6 months agotsconfig.tests.json122 B · 6 months agovite.config.mobile.ts848 B · 5 months agovite.config.ts1.4 KB · 6 months agovitest.config.ts250 B · 6 months ago
fb549556f757add silver platter (State 1) for single-match — full-width Fill button with ✓ flash micro-confirmation, secondary copy ⓤ / copy ⓟ / dismiss row, Escape-to-dismiss handling6 months ago7aa9d2bbb445add dismissal lock, fill-success lock (form-WeakSet + 3s page grace), submit-button focusin exclusion, SPA URL-change reset to inline popup6 months agofc0e2449c05brebuild inline popup visual foundation: token-based dark/light themes via data-theme, new entrance/exit/slide animations, accent glow + border-accent vars on host, exit-animated dismiss6 months ago1c5fc17731ccrecord pre-redesign baseline of src/content/6 months agocf70dff0f0eabefore inline popup v2.2.0 redesign6 months ago02f5a9168241remove no-new-features freeze from Projects.md §86 months ago3b2a4a93bef0record v2.1.9 revert [OUTCOMES]6 months ago3ac33e77146arevert v2.1.8 global submit-click suppression — was breaking inline icon/selector injection (v2.1.9)6 months ago6c98b25ab588record v2.1.1–v2.1.8 polish pass [OUTCOMES]6 months ago8e6e3a1d2371suppress inline selector reopens for 1.5s after submit-button click, Enter-in-form, or submit event (v2.1.8)6 months ago6523d1775037entry title padding-bottom 0.12em so g/y/j/p descenders are not clipped by overflow (v2.1.7)6 months agoa66f93e5a822active sort pill text uses var(--peach-t0) so SMART label is visible in both themes (v2.1.6)6 months ago70dd4d73512dboost light theme text contrast: t0/t1/t2 darker + more opaque for legibility on cream (v2.1.5)6 months agoab0129ad124edarken light theme ~15% to match reference cream tone (v2.1.4)6 months ago728b05caa190lighten + desaturate light theme: warm cream bg (#FAF5EB) and softer accent wash (v2.1.3)6 months agoe416e9012b02trash list grows to fill popup; favicon img onerror falls back to type icon (v2.1.2)6 months agoee1f6563c07dfeedback view textarea grows to fill remaining popup height (v2.1.1)6 months ago693689c2cf53add SUBMIT_FEEDBACK handler tests, update Projects.md §3.7 and session notes (v2.1.0)6 months ago280e301ab2dbadd category nav and feedback form CSS rules to popup.css6 months ago73260e9b28a1rewrite Settings.tsx: two-level navigation, seven sub-views, feedback form6 months agoa205e1e3d989add SUBMIT_FEEDBACK message type, handler, FEEDBACK_ENDPOINT constant, version bump to 2.1.06 months agoe42e2b44e8f8before settings redesign and feedback feature6 months ago0295c6a8be14suppress autofill popup reopen on recently filled fields for 5s — fixes popup re-summoning when login button click refocuses an input (v2.0.3)6 months ago332398c99b82fix TDZ in showAutofillSelector — captureKeydownRef now declared before renderLocked() so the locked inline popup stops stacking and autofocuses (v2.0.2)6 months ago489d21bdf37edrop 'add' from + notes / + 2FA / + tags labels (v2.0.1)6 months agoe84a9fee3cfacapture-phase keydown intercept instead of focusout loop — eliminates tab hang (v2.0.0)6 months ago460535802d51stop keyboard event leakage and re-assert focus against page focus traps in locked inline popup (v1.9.9)6 months agoc99a298af8fbswitch Firefox manifest from service_worker to scripts array for MV3 compatibility (v1.9.8)6 months agoad53ccec2956trash 24 stale root files; clean dist dirs on every build (v1.9.7)6 months agocf2435008e01npm run build now produces both dist-chrome and dist-firefox atomically (v1.9.6)6 months agoc3dff661a44dreplace period mask with bullet chars + uniform spacing (v1.9.5)6 months ago363ddc594434add + add tags option with inline tag editor on Entry detail view (v1.9.4)6 months ago99cb0735ea7fleft-align + add notes/2FA with justify-self: start in grid context (v1.9.3)6 months ago2f841825d4c1fix lock-on-close with port disconnect instead of pagehide sendMessage (v1.9.2)6 months agocfa0b3390c64fix add-another-url closing the editor by unifying focus-out wrap and halve button glow (v1.9.1)6 months ago032574cf5b9aadditionalUrls + remember-site toast + 30% glow reduction (v1.9.0)6 months ago17d54c31d9c5before multi-domain entry support and remember-site prompt6 months ago6bf8fedee043fix copy buttons by writing clipboard directly from popup; SW only schedules auto-clear (v1.8.9)6 months ago7cb62f5f1ca2demote + add notes / + add 2FA from chunky capsules to text links left-aligned (v1.8.8)6 months ago521dac96adefsecond-pass brighter palette and four-layer bloom shadow on accent buttons (v1.8.7)6 months ago25b1cdf118d8resolve currentTabDomain before openVault so already-unlocked popups pick the domain match (v1.8.6)6 months ago690822a1ea3frestore vibrant accent palette and bump glow alpha; unlock button stays lit before typing (v1.8.5)6 months agob02e1d035194single-click copies and double-click edits totp; remove redundant copy button and hover box (v1.8.4)6 months ago4c33f3380f77expose + add 2FA button on login entries with no TOTP secret (v1.8.3)6 months ago653b9700c5c0fix inline ADD_ENTRY payload shape and wire inline generator to detectPasswordPolicy with forbidden-char support (v1.8.2)6 months agofc82a1c7601abefore inline save fix + smart gen policy wiring6 months agoaf96c8docs: CONTINUITY.md — v1.7.3-v1.8.1 session record6 months agoc1e7defix: accent color ambient surface response — glow, tint, bloom (v1.8.1)6 months ago0bb6a9feat: raise password generator maximum to 128 characters (v1.8.0)6 months ago1ab038fix: inline popup new entry save — vault status check and response handling (v1.7.3)6 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]