Setting a Development Environment

Convenience script

There is an automated script that runs, sequentially, all the commands in the section below. In debian-based systems, you can get a fully working development environment with:

make dev-bootstrap

To activate the freshly created virtualenv the next time, you must use pew:

pew workon bitmask


the bootstrap script is, at the moment, quite opinionated. for instance, it installs and depends on pew, it checks out the bitmask-dev repo under ~/leap folder, and it assumes you are using zsh. if you think it should allow more freedom of choices, feel free to open a pull request.

Manual instructions

Install the system-wide dependencies. For debian-based systems:

sudo apt install build-essential python-dev python-virtualenv \
libsqlcipher-dev libssl-dev libffi-dev \
python-pyqt5 python-pyqt5.qtwebengine/

If you are going to be running tests that involve creating a lot of OpenPGP keys, and specially in vms, the following is also recommended to speed up things:

sudo apt install haveged

Clone the repo. The master branch has the latest code:

git clone
cd bitmask-dev

Create a virtualenv and activate it:

virtualenv venv
source venv/bin/activate

By the way, if you plan to get into heavy development, you might want to consider using something like pew, instead of the plain virtualenv.

Now you should be able to install all the bitmask dependencies:

make dev-latest-all

You can also install some dependencies that are going to be useful during development:

pip install -r pkg/requirements-dev.pip

What next?

Check out the Bitmask Architecture.