Official website with sign-up and download links: https://www.kee.pm
Support forum: https://forum.kee.pm
Warning: An urgent request from Mozilla in January 2023 has, through a complex web of old dependencies, forced a significant restructure of the build system and some production code. Only Firefox is supported at this time so Chrome users will remain on version 3.9 until the new architecture can be finalised and tested for other browsers. You're not missing a lot but we'll try to get this discrepancy resolved soon.
It's set up for Visual Studio Code but it shouldn't be too hard to work out how to develop using other IDEs.
npm installto get any newer library dependencies than those we used in official builds)
npm run dev
npm run start:firefox
npm run tscto verify that no type errors have been introduced during recent development changes
npm run lint
You may need to modify the vite config files or some of the build scripts if you add significant new sections to the WebExtension structure but it's unlikely and we can help you with that if necessary.
Exactly reproducing the files delivered from the Firefox add-on website or Chrome extension store is not possible because the websites modify the file that we build in order to attach a digital signature. One can get very close though, to the point where a diff of the files from a given release on GitHub varies from your own local build in only three ways:
Reproducible builds rely upon npm version 7 or higher.
Our builds are created by GitHub Actions using the following configuration:
npm ci && mkdir dist
npm run build:prod && npm run pack:prod(for stable releases) and/or
npm run build:beta && npm run pack:beta(for beta releases)
/_localesLocalisation data (language translations).
.txUsed by Transifex localisation scripts to help manage multiple language translation.
distOutput folder for build packages (e.g. an XPI file for installation in Firefox). Created automatically by development scripts or manually if you're only building for packaging/release.
extensionOutput folder for compiled files when developing or building for packaging/release.
scriptsThe scripts within help prepare the
extensionfile structure for hot module reloading during development, as well as ensuring that various categories of files end up in the right place, with appropriate references updated.
manifest.tsOutputs a manifest.json file appropriate to the current build / development environment.
backgroundExtension's main background process script.
commonModules that are used across multiple extension scopes (e.g. background script, popup script, content script, etc.)
dialogsStandalone dialogs within the extension context (e.g. for the Network Authentication window).
pageThe content page script that gets injected to every web page that is not Kee Vault.
panelsSmall pages that are rendered as in-page panels, within an iframe, within any web page.
popupThe main browser popup that clicking on the browser toolbar button will display.
release-notesPages that are shown after an extension update or installation has occurred.
settingsPage to allow user to adjust many extension settings.
storeThe Pinia Store definitions that are used for both Vue/Vuetify UI state storage and for automated data transfer across multiple extension execution scopes (popup, settings page, background, in-page panels, etc.)
vaultThe content page script that gets injected to the Kee Vault website.
It's likely that the below does not work. It might though, at least on one or two devices in the world when the stars are aligned.
We'll take a fresh look at this challenge when working on the migration to MV3.
npm install -g @vue/devtools npm install -g https-proxy-cli
https-proxy -t http://localhost:8098 -p 8099 --keys <folder to store and re-access self-signed certs> &
sudo apt-get install libnss3-tools
Manually load https://localhost:8099 in the browser, add self-signed cert to whitelist and export the cert to a local file (or just use the generated keys folder location above... not sure if that will work or not).
certutil -d sql:$HOME/.pki/nssdb -A -t "P,," -n <path to saved cert> -i <path to saved cert>