Overview
Proton Pass is a password manager and credential vault providing secure storage for passwords, login credentials, credit cards, and notes. It’s available as a web application, browser extension, and desktop application.Package name:
proton-pass | License: GPL-3.0Features
Password Vault
Secure storage for passwords and credentials
Autofill
Browser autofill for login forms
Password Generator
Generate strong, random passwords
Secure Notes
Encrypted note storage
2FA Support
Two-factor authentication code storage
Credit Cards
Secure credit card information storage
Item Sharing
Share credentials securely with others
Breach Monitoring
Monitor for compromised credentials
Architecture
Directory Structure
State Management
Proton Pass uses the shared@proton/pass workspace package which includes:
- Redux-based state management
- Encrypted local storage
- Sync with backend
- Multi-device coordination
Key Dependencies
Pass is a thin client - most logic lives in the
@proton/pass workspace package.NPM Scripts
Development
Uses
--no-error-logs flag to reduce console noise during development.Build
Testing
Code Quality
Internationalization
Application Structure
App Guard
Authentication and authorization:Views
Main application views:| View | Purpose |
|---|---|
Vault/ | Password vault browsing |
Items/ | Individual item management |
Settings/ | Application settings |
Sharing/ | Credential sharing |
Deep Links
Handle deep link navigation:- Open specific items
- Navigate from notifications
- Handle external links
Service Worker
Background sync and offline support:Related Applications
Browser Extension
proton-pass-extension - Browser extension version:- Chrome, Firefox, Edge, Safari support
- Autofill functionality
- Context menu integration
- Shared codebase with web app
Desktop Application
proton-pass-desktop - Electron desktop app:- Native desktop integration
- System tray icon
- Keyboard shortcuts
- Biometric authentication
Core Functionality
Password Management
Provided by@proton/pass workspace package:
- Storage - Encrypted credential storage
- Sync - Multi-device synchronization
- Autofill - Form detection and filling
- Generator - Password generation with customizable rules
Item Types
Supported item types:- Login - Username/password credentials
- Credit Card - Payment information
- Note - Secure text notes
- Identity - Personal information (future)
Vaults
Organizational structure:- Multiple vaults per user
- Vault sharing with teams
- Granular permissions
- Separate encryption keys
Security Features
- Zero-knowledge architecture - Proton cannot access data
- End-to-end encryption - All items encrypted client-side
- Secure sharing - Asymmetric encryption for sharing
- Session management - Automatic lock on inactivity
- Breach monitoring - Check for compromised passwords
Build Configuration
Special build flags:Testing
Test setup:- Jest for unit tests
- @proton/testing for test utilities
- @proton/jest-env for custom test environment
Integration Points
Proton Account
Integrates with Proton account system:- Single sign-on
- Subscription management
- Account recovery
Proton Mail
Email integration:- Save passwords from emails
- Share credentials via email
Other Proton Apps
Shared authentication across:- Proton Mail
- Proton Drive
- Proton Calendar
- Proton VPN
Development Notes
Local Development
- Start dev server:
yarn start - Access at
http://localhost:8080 - Uses standalone authentication
- Local vault storage
Package Architecture
Most logic is inpackages/pass/:
Performance
- Lazy Loading - Views loaded on demand
- Service Worker - Offline support and caching
- Minimal Dependencies - Lean dependency tree
- Code Splitting - Separate bundles per view
Security Considerations
- All crypto operations client-side
- Master password never sent to server
- Encrypted search for vault items
- Secure memory handling
- Auto-lock on inactivity