Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time
April 1, 2023 14:56
February 23, 2016 10:32
April 2, 2023 15:21
April 14, 2023 14:50
April 19, 2023 11:54
March 10, 2022 13:06
April 19, 2023 11:54
April 14, 2023 14:50
August 24, 2012 22:09
November 12, 2019 14:41
April 19, 2023 11:54
April 19, 2023 11:54


Build Status

Mailvelope is a browser extension for Google Chrome and Firefox that allows secure email communication based on the OpenPGP standard. It can be configured to work with arbitrary Webmail provider.

OpenPGP backends

Mailvelope uses the following OpenPGP implementation

  • OpenPGP.js for the Chrome Extension and for the Firefox Addon


Mailvelope is available in the Chrome Web Store:

For Firefox you can get it from

Or check the releases section for latest builds of Firefox and Chrome installation packages.

Client API

You can find the current API Documentation on GitHub pages. The version will correspond to the current master branch. A demo page with unit tests is available at:

Build instructions

If you don’t have grunt installed, yet:

npm install -g grunt-cli

and then get and build the sources:

git clone
cd mailvelope
npm ci && grunt prod


grunt dist-cr

The Chrome extension will be in dist/


grunt dist-ff

The Firefox web extension will be in dist/


Update your local repository:

# inside mailvelope folder
git checkout dev
git pull origin dev && grunt
# continue with 'grunt dist-cr' or 'grunt dist-ff'

There are a few more tasks/tools available:

  • watch source code for changes and recompile if needed

    grunt watch

  • test the firefox plugin

    node_modules/web-ext/bin/web-ext run --source-dir=./build/firefox

    It is possible to reload the plugin on changes, run the grunt watch task on another console terminal

  • reset repository

    grunt clean



Use of this source code is governed by the GNU AFFERO GENERAL PUBLIC LICENSE that can be found in the LICENSE file.


Contact: Thomas Oberndörfer Twitter: @mailvelope Contributors: see list on GitHub