The desktop app for PearPass, an open-source, end-to-end encrypted password and identity manager built on Pear Runtime.
- Introduction
- Features
- Installation
- Usage Examples
- Logging
- Testing
- Staging to Dev
- Workspace Dependencies
- Dependencies
- Related Projects
- Contributing
- License
PearPass is an open-source, privacy-first password and identity manager that gives you full control over your sensitive information. It makes storing and managing your credentials simple, secure, and private. PearPass encrypts and stores all data locally on your device.
Unlike traditional password managers that rely on centralized servers, PearPass is built on Pear Runtime and uses peer-to-peer technology to sync your credentials directly between your devices, ensuring they remain private, secure, and always under your control.
- Encrypted-at-rest storage — PearPass encrypts passwords, credit cards, secure notes, and custom fields before writing them to disk.
- Cross-device sync — PearPass syncs credentials directly between your devices using Pear Runtime, with no central server.
- Offline access — Access your vault anytime, even without a network connection.
- Password health — Analyse password strength and identify weak passwords.
- Random password generator — Generate strong, unique passwords.
- Multi-platform — Runs on macOS, Linux, and Windows. PearPass is also available on mobile and as a browser extension.
- Node.js — check the required version in
.nvmrcand verify with:
node --version- Pear Runtime — Installation guide.
# 1. Clone the repository
git clone git@github.com:tetherto/pearpass-app-desktop.git
# 2. Go to the cloned directory
cd pearpass-app-desktop
# 3. Install dependencies
npm install
# 4. Generate translation keys
npm run build
# 5. Start the development app
npm run devVisit the official PearPass documentation for step-by-step guides on setup, vault management, syncing across devices, browser extension usage, and all other PearPass features:
⚠️ Intel Mac Support: Intel-based Mac builds are deprecated and provided without official support or active testing. We're keeping them available for now, but use them at your own risk. If you run into issues, feel free to open a ticket. While we can't guarantee a fix, we'd like to know if these builds are still being used!
Off by default. When enabled, logs are written under <userData>/logs/ — main.log from the host process and core.log from the vault worker. The worker's sink redacts known sensitive fields (passwords, keys, tokens, etc.) before writing to core.log. The host process logger does not redact, so treat anything passed to logger.* in main.cjs as on-disk-visible in main.log.
Three ways to enable:
- In-app toggle (Settings → Diagnostics → Enable logs). Persists across launches; toggling on clears any previous log files to start a clean session. Toggling off stops writing but preserves the existing files so you can share them.
- Launch flag: pass
--enable-loggingat startup. Forces logging on regardless of the toggle. - Nightly builds (
PearPass-nightly): logging is on automatically and the in-app toggle is locked.
When logging is on, Open logs folder in the same screen reveals the directory.
Run unit tests with Jest:
npm testEnsure the app runs correctly using npm run dev.
If successful, stage it, for example: pear stage dev.
Then run the app: pear run pear://GENERATED_URL.
Pear serves files from the dist/ folder:
<!-- index.html -->
<script type="module" src="./dist/app.js"></script>The src/ folder is for development and it's ignored in package.json:
"ignore": [".github", "appling", ".git", ".gitignore", "packages", "src"]The following sibling modules must be present in the workspace (they are not declared as npm dependencies):
@tetherto/tether-dev-docs@tetherto/pear-apps-lib-feedback@tetherto/pear-apps-lib-ui-react-hooks@tetherto/pear-apps-utils-avatar-initials@tetherto/pear-apps-utils-date@tetherto/pear-apps-utils-generate-unique-id@tetherto/pear-apps-utils-pattern-search@tetherto/pear-apps-utils-qr@tetherto/pear-apps-utils-validator@tetherto/pearpass-lib-constants@tetherto/pearpass-lib-data-export@tetherto/pearpass-lib-data-import@tetherto/pearpass-lib-ui-theme-provider@tetherto/pearpass-lib-vault@tetherto/pearpass-lib-vault-core@tetherto/pearpass-utils-password-check@tetherto/pearpass-utils-password-generator
| Project | Description |
|---|---|
pearpass-app-mobile |
Mobile app for PearPass |
pearpass-app-browser-extension |
Browser extension for PearPass |
pearpass-lib-vault |
Vault management library |
pearpass-lib-vault-core |
Bare worker and client for PearPass vaults |
pearpass-lib-ui-react-components |
React UI component library |
pearpass-lib-ui-react-native-components |
React Native UI component library |
tether-dev-docs |
Developer documentation and guides |
We welcome contributions. See CONTRIBUTING.md for the development workflow and coding conventions.
This project is licensed under the Apache License, Version 2.0. See the LICENSE file for details.
