Skip to main content
This is a pre-production deployment of Warehouse. Changes made here affect the production instance of PyPI (
Help us improve Python packaging - Donate today!

Autocrypt: E-mail Encryption for Everyone example implementation

Project Description

this tool is under heavy development, use at your own risk

muacrypt helps mail user agents to process incoming and outgoing mails and keep Autocrypt state according to the Autocrypt Level 1 specification. muacrypt manages accounts which maintain Autocrypt related state. Each account processes incoming and outgoing mail, parsing and adding Autocrypt headers as appropriate. Functionality is exposed through a command line tool muacrypt and a Python api import muacrypt.

This README is intended to help contributors to get setup with running tests and using the command line. The online docs at contain more documentation about overall goals of the project.


To use the code and run tests you need to have installed:

  • the command line client “gpg”, optionally “gpg2”, available through “gnupg” and “gnugp2” on debian.
  • something to speed up gpg key creation, e.g. by installing “rng-tools” on debian.
  • python2.7 and python3.5 including headers (“python2.7-dev” and “python3.5-dev” on debian).
  • “tox” to run automated tests (“python-tox” on Debian)

In one installation command on Debian:

apt install gnupg2 rng-tools python2.7-dev python3.5-dev python-tox

Afterwards you can run all tests:

$ tox


You’ll need the command line client “gpg”, optionally “gpg2”, available through “gnupg” and “gnugp2” on debian.

To install the muacrypt command line tool you can install the “muacrypt” python package into your virtual environment of choice. If you don’t know about python’s virtual environments you may just install the debian package “python-pip” and then use “pip” to install the muacrypt library and command line too:

$ pip install --user muacrypt

The muacrypt command line tool will be installed into $HOME/.local/bin which needs to be in your PATH.

installation for development

If you plan to work/modify the sources and have a github checkout we strongly recommend to create and activate a python virtualenv and then once use pip without sudo in edit mode:

$ virtualenv venv
$ source venv/bin/activate
$ pip install -e .

Changes you subsequently make to the sources will be available without further installing the muacrypt package again.

running the command line

After installation simply run the main command:


to see available sub commands and options. Start by initializing an Autocrypt account which will maintain its own keyring and not interfere with your possibly existing gpg default keyring:

$ muacrypt init

Afterwards you can create an Autocrypt header for an email address:

$ muacrypt make-header

You can process and integrate peer’s Autocrypt keys by piping an email message into the process-incoming subcommand:

$ muacrypt process-incoming <EMAIL_MESSAGE_FILE

At any point you can show the status of your muacrypt account:

$ muacrypt status

Release History

This version
History Node


History Node


History Node


History Node


History Node


History Node


Download Files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, Size & Hash SHA256 Hash Help File Type Python Version Upload Date
(31.3 kB) Copy SHA256 Hash SHA256
Wheel 2.7 Feb 22, 2018
(51.0 kB) Copy SHA256 Hash SHA256
Source None Feb 22, 2018

Supported By

Elastic Elastic Search Pingdom Pingdom Monitoring Dyn Dyn DNS Sentry Sentry Error Logging CloudAMQP CloudAMQP RabbitMQ Kabu Creative Kabu Creative UX & Design Fastly Fastly CDN DigiCert DigiCert EV Certificate Google Google Cloud Servers