keepassxc-browser is a free, open source browsers & extensions project written in JavaScript and released under GPL-3.0. It has 2,382 GitHub stars, 257 forks and 197 open issues, and was last pushed 6 days ago. On this registry it ranks #102 of 150 tracked projects in Browsers & Extensions, with 5 head-to-head comparisons available. It gained 36 stars over the last 30 tracked days.

What is keepassxc-browser?

KeePassXC-Browser is a free, GPL-3.0 browser extension for Firefox, Chrome/Chromium, and Microsoft Edge that connects those browsers to a locally running KeePassXC password database over native messaging.

What it is

KeePassXC-Browser is the official browser extension for KeePassXC, the desktop password manager. It lives in the WebExtensions ecosystem and is written in JavaScript, with the extension itself published through the Firefox, Chrome/Chromium, and Microsoft Edge add-on stores. It has been supported by KeePassXC since version 2.3.0, released at the end of 2017, and it communicates with the desktop application using the native messaging API rather than by reading or writing the database file directly.

The concrete thing it replaces is the browser's own built-in password manager. The extension requests the privacy permission specifically so it can register itself as the default password manager, and it takes over credential entry on http:// and https:// pages, including HTTP Basic Auth dialogs handled through the webRequest, webRequestAuthProvider, and webRequestBlocking permissions. Credentials never leave the machine they are stored on, because all secret handling stays inside KeePassXC and the extension only relays requests.

Key capabilities

  • Communicates with KeePassXC through keepassxc-proxy, which listens on STDIN/STDOUT and forwards messages over Unix domain sockets or named pipes.
  • Ships keepassxc-proxy inside the KeePassXC application package, so no separate proxy install is required.
  • Supports keepassxc-proxy-rust as an alternative proxy for users who prefer a non-Qt solution.
  • Handles HTTP Basic Auth in Chromium-based browsers through the webRequestAuthProvider permission.
  • Provides a password generator whose output can be copied to the clipboard via the clipboardWrite permission.
  • Stores extension settings locally in the browser through the storage permission, and never syncs them.
  • Documents the browser-to-KeePassXC messaging format in keepassxc-protocol.md.

Who uses it and how

  • Desktop users running KeePassXC 2.3.0 or later who want autofill in Firefox, Chrome/Chromium, or Microsoft Edge without exporting their database to a cloud service.
  • Translators, who work through Transifex language teams rather than through pull requests against the source tree.
  • Contributors submitting pull requests, guided by .github/CONTRIBUTING.md, with the hacktoberfest topic marking the repository as open to outside contribution.
  • Developers and testers who load the extension manually using the instructions in the repository wiki.

Getting started

Install the extension from Firefox Add-ons, the Chrome Web Store, or Microsoft Edge Add-ons, then follow the browser integration section of the KeePassXC Getting Started document to connect the desktop application to the extension.

How it compares

The facts name no rival password-manager extensions, so this project stands alone in this registry among browser-extension password managers. The only related projects named are KeePassXC itself, which is the required desktop counterpart, and keepassxc-proxy-rust, which is an alternative implementation of the same proxy rather than a competing product.

When to use it — and when not to

A self-hoster must run the KeePassXC desktop application, since the extension is useless without it and the bundled keepassxc-proxy; there is no hosted or server-side option, and settings are local to each browser profile. Anyone who does not already use KeePassXC, or who needs credentials synced across devices by the password manager itself, should look elsewhere. The honest weaknesses are the 197 open issues and the thin in-repository documentation, which defers configuration and problem solving to the KeePassXC website and the project wiki.

project readme (upstream, from github) — read inline

KeePassXC-Browser

Browser extension for KeePassXC with native messaging.

Download and use

This browser extension was first supported in KeePassXC 2.3.0 (release end of 2017). In general it is advised to only use the latest available release.

Get the extension for Firefox or Chrome/Chromium or Microsoft Edge.

Please see this document for instructions how to configure KeePassXC in order to connect the database correctly.

How it works

KeePassXC-Browser communicates with KeePassXC through keepassxc-proxy. The proxy handles listening to STDIN/STDOUT and transfers these messages through Unix domain sockets / named pipes to KeePassXC. This means KeePassXC can be used and started normally without interference from Native Messaging API. KeePassXC-Browser starts only the proxy application and there's no risk of shutting down KeePassXC or losing any unsaved changes. You don't need to install keepassxc-proxy separately. It is included in the KeePassXC application package. Alternatively you can use keepassxc-proxy-rust as a proxy if you prefer a non-Qt solution.

Requested permissions

KeePassXC-Browser extension requests the following permissions:

Name Reason
activeTab To get URL of the current tab
contextMenus To show context menu items
cookies To access browser's internal Public Suffix List
clipboardWrite Allows password to be copied from password generator to clipboard
nativeMessaging Allows communication with KeePassXC application
notifications To show browser notifications
offscreen For accessing system theme when setting icon colors (Chrome only)
privacy For setting the extension as default password manager
storage For storing extension settings (always stored locally in the browser, they are never synced)
tabs To request tab URL's and other info
webNavigation To show browser notifications on install or update
webRequest For handling HTTP Basic Auth
webRequestAuthProvider For handling HTTP Basic Auth for Chromium based browsers
webRequestBlocking For handling HTTP Basic Auth
http://*/* To allow using KeePassXC-Browser on all websites
https://*/* To allow using KeePassXC-Browser on all websites
https://api.github.com/ For checking the latest KeePassXC version from GitHub

Protocol

Check keepassxc-protocol for the details about the messaging protocol used between the browser extension and KeePassXC.

Translations

Translations are managed on Transifex which offers a web interface. Please join an existing language team or request a new one if there is none.

Contributing

You may directly contribute your own code by submitting a pull request. Please read the CONTRIBUTING document for further information.

Development and testing

See wiki.

Help!

See our Troubleshooting Guide for solving problems if previously listed issues and solutions are not working.

Frequently asked questions

Is keepassxc-browser free to use?

keepassxc-browser is open source under the GPL-3.0 licence. There is no licence fee and no seat count — you can self-host it or, where the project offers one, pay a vendor for a managed version instead.

What does keepassxc-browser do?

KeePassXC Browser Extension

What is keepassxc-browser written in?

keepassxc-browser is primarily written in JavaScript. Its source is publicly available at https://github.com/keepassxreboot/keepassxc-browser, and it has 2,382 GitHub stars.