A simple and secure browser extension to be used with KeePass databases.
  • Vue 52.3%
  • JavaScript 36.6%
  • SCSS 10.3%
  • HTML 0.8%
Wladimir Palant 398c63c7e0
All checks were successful
Node.js CI / build (17.x, codeberg-tiny) (push) Successful in 57s
Node.js CI / build (21.x, codeberg-tiny) (push) Successful in 57s
Node.js CI / build (22.x, codeberg-tiny) (push) Successful in 57s
Updated native host repository link
2026-03-28 00:42:46 +01:00
.forgejo/workflows Restrict actions to main branch only again 2026-03-27 22:14:58 +01:00
build Updated dependencies 2024-06-21 10:15:43 +02:00
contentScript Updated dependencies 2024-06-21 10:15:43 +02:00
lib Migrated to manifest V3 while staying on V2 for Firefox (no storage.local support) 2023-04-24 14:29:39 +02:00
locale/en_US Fixes #80 - Support multiple databases being configured 2023-04-29 07:54:08 +02:00
ui Updated dependencies 2024-06-21 10:15:43 +02:00
.gitattributes Configured line endings style for the repository 2022-02-08 10:32:37 +01:00
.gitignore Committed package lock 2022-02-07 16:13:59 +01:00
.htmlvalidate.json Run html-validate on vue files as well 2022-02-08 10:04:12 +01:00
.stylelintrc Updated some validation dependencies 2024-01-03 21:29:17 +01:00
build.js Fixes #3 - Warn when filling in passwords over an insecure connection 2023-04-28 15:39:17 +02:00
eslint.config.js Updated dependencies 2024-06-21 10:15:43 +02:00
generateVowelsRegexp.js eslint: Activated no-unused-vars rule globally 2023-04-24 11:13:29 +02:00
LICENSE.txt Added LICENSE file and license headers 2015-12-26 13:47:08 +01:00
manifest.json Releasing PfP: Pain-free Passwords 3.1.0 2023-04-29 08:35:52 +02:00
package-lock.json Updated dependencies 2024-06-21 10:15:43 +02:00
package.json Adjusted CI and dependencies for Forgejo 2026-03-27 22:06:18 +01:00
README.md Updated native host repository link 2026-03-28 00:42:46 +01:00
SECURITY.md Created SECURITY.md 2022-02-08 11:51:40 +01:00

PfP: Pain-free Passwords

PfP: Pain-free Passwords is a Firefox, Chrome and Opera password manager. It communicates with the PfP Native Host application via the native messaging protocol, this allows it to use a database file in the KeePass format.

Installing build prerequisites

In order to build PfP you will need to install Node.js first (Node 17 or higher is required). Additional dependencies are installed using the following command in the extension directory:

npm install

How to build

You can append -- --dev to all build commands. This will bundle the development Vue version and result in additional debugging output.

Firefox

The following command with produce a file with a name like build-firefox/pfp-n.n.n.xpi:

npm run build xpi

Chrome and Opera

The following command with produce a file with a name like build-chrome/pfp-n.n.n.zip:

npm run build crx

This ZIP file can be uploaded to Chrome Web Store or Opera Add-ons and will be converted into a signed CRX there.

How to test

Firefox

The following command will create a build-firefox directory:

npm run build firefox

You can load this directory as a temporary extension in Firefox via about:debugging page. An already loaded extension will reload automatically on rebuild. If you want the directory to be updated automatically whenever you change any source files, you can use npm run build watchFirefox instead.

Chrome and Opera

The following command will create a build-chrome directory:

npm run build chrome

You can load this directory as an unpacked extension in Chrome and Opera. An already loaded extension will reload automatically on rebuild. If you want the directory to be updated automatically whenever you change any source files, you can use npm run build watchChrome instead.

Cleaning up the repository

You can run the following command to remove all temporary files that have been generated during build:

npm run build clean