Simple, modern and privacy-focused open source password manager
See the code
Paw is a password manager designed to offer a secure and user-friendly solution for managing your digital data across multiple platforms, featuring modern encryption, making it an ideal tool for both personal and professional use.
It is written in Go and uses Fyne as UI toolkit and age as encryption library.
This software is work in progress, and didn't went through a full security audit.
Do not expect it to be bug free and do not rely on it for any type of security.
You can download the latest version as a binary from https://paw.pm/download
To try the development version or help with testing:
go install lucor.dev/paw@latest
One or more vaults can be initialized to store passwords and identities.
When the vault is initialized user will be prompt for a vault name and password. An age key is generated and it is encrypted using an age Scrypt recipient with the provided password and saved on disk (key.age) The X25519 identity and its recipient from the key file are used to decrypt and encrypt the vault data. Each item is stored separately on disk so that the content can be decrypted manually using the age tool, if needed. All the items' metadata are encrypted and stored into the vault.age file so that no information are in clear text.
Random password are derived reading byte-by-byte the block of randomness from a HKDF cryptographic key derivation function that uses the age key as secret. Printable characters that match the desired password rule (uppercase, lowercase, symbols and digits) are then included in the generated password.
Where a generated password is not applicable a custom password can be specified.
Vault internally is organized hierarchically like:
- vault
├── login
| └── www.example.com
| └── my.site.com
├── password
| └── mypassword
└── note
└── mysecretnote
where login, password and note are the Paw items, see the dedicated section for details.
Items are special templates aim to help the identity management.
Currently the following items are available:
The threat model of Paw assumes there are no attackers on your local machine.
This project is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later), unless otherwise noted. See the LICENSE file for details.
Some components may be licensed under different terms - see individual file headers for specific licensing information and the THIRD_PARTY_LICENSES file for third-party dependencies.
See https://lucor.dev/projects/#maintenance-policy
Also thanks to these Open Source password managers that inspired Paw:
Simple, modern and privacy-focused open source password manager
See the code
Paw is a password manager designed to offer a secure and user-friendly solution for managing your digital data across multiple platforms, featuring modern encryption, making it an ideal tool for both personal and professional use.
It is written in Go and uses Fyne as UI toolkit and age as encryption library.
This software is work in progress, and didn't went through a full security audit.
Do not expect it to be bug free and do not rely on it for any type of security.
You can download the latest version as a binary from https://paw.pm/download
To try the development version or help with testing:
go install lucor.dev/paw@latest
One or more vaults can be initialized to store passwords and identities.
When the vault is initialized user will be prompt for a vault name and password. An age key is generated and it is encrypted using an age Scrypt recipient with the provided password and saved on disk (key.age) The X25519 identity and its recipient from the key file are used to decrypt and encrypt the vault data. Each item is stored separately on disk so that the content can be decrypted manually using the age tool, if needed. All the items' metadata are encrypted and stored into the vault.age file so that no information are in clear text.
Random password are derived reading byte-by-byte the block of randomness from a HKDF cryptographic key derivation function that uses the age key as secret. Printable characters that match the desired password rule (uppercase, lowercase, symbols and digits) are then included in the generated password.
Where a generated password is not applicable a custom password can be specified.
Vault internally is organized hierarchically like:
- vault
├── login
| └── www.example.com
| └── my.site.com
├── password
| └── mypassword
└── note
└── mysecretnote
where login, password and note are the Paw items, see the dedicated section for details.
Items are special templates aim to help the identity management.
Currently the following items are available:
The threat model of Paw assumes there are no attackers on your local machine.
This project is licensed under the GNU Affero General Public License v3.0 or later (AGPL-3.0-or-later), unless otherwise noted. See the LICENSE file for details.
Some components may be licensed under different terms - see individual file headers for specific licensing information and the THIRD_PARTY_LICENSES file for third-party dependencies.
See https://lucor.dev/projects/#maintenance-policy
Also thanks to these Open Source password managers that inspired Paw:
9,489 followers · starred Apr 2023