Skip to content
The python WhatsApp library
Branch: master
Clone or download
Pull request Compare This branch is 3 commits ahead, 583 commits behind tgalal:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.

Yowsup 2.0

Updates (January 1, 2015)

Happy new year!

P.S: Yowsup's license changed to GPLv3 (previously the MIT License was used).

(December 31, 2014)

New features land in yowsup. You will need to re-install to pull new dependencies. Follow the updated install instructions for your OS.

A couple of highlights:

End-to-End encryption

Yowsup now implements the new end-to-end encryption recently introduced in WhatsApp (AKA axolotl) (AKA textsecure). To activate in demos pass in '--moxie' switch. Example:

yowsup-cli demos --config /path/to/config --yowsup --moxie

This will make messages communication with WhatsApp platforms which support this feature encrypted. At the moment it's only Android, which means yowsup got this feature even before official WhatsApp clients on other platforms.

For platforms which do not support encryption, they will get plaintext messages as usual.

More technical details about axolotl in yowsup here

New Send client demo

Use the send client demo in yowsup-cli to login, send a message and exit.

yowsup-cli demos --config /path/to/config --send NUMBER "Hello world"


Yowsup opened WhatsApp service under platforms!

Yowsup is a python library that enables you build application which use WhatsApp service. Yowsup has been used to create an unofficial WhatsApp client Nokia N9 through the Wazapp project which was in use by 200K + users as well as another fully featured unofficial client for Blackberry 10

What's new in Yowsup 2

Everything! The old library code was so messed up that I was disgusted just by looking at it. I rewrote the library from ground up with a much more robust, extensible architecture and a much simpler and easier to read code.

For devs, the update is breaking for any old code. While old code will stay in "legacy" branch for a while, it's advised that you upgrade your code. Unless your code is a full fledged WhatsApp application, migrating won't be a hard task.

Here is what you need to know about Yowsup 2.0 to get started: (Or quickly jump to installation):

Installation (Updated Dec 31, 2014)

  • Requires python2.6+, or python3.0 +
  • Required python packages: python-dateutil,
  • Required python packages for end-to-end encryption: protobuf, pycrypto, python-axolotl-curve25519
  • Required python packages for yowsup-cli: argparse, readline (or pyreadline for windows)

Install using to pull all python dependencies


You need to have installed python headers (from probably python-dev package) and ncurses-dev, then run

python install

Because of a bug with python-dateutil package you might get permission error for some dateutil file called requires.txt when you use yowsup (see this bug report) to fix you'll need to chmod 644 that file.


I don't have mac to test. Send me instructions or a MacBook.


  • Install mingw compiler
  • Add mingw to your PATH
  • In PYTHONPATH\Lib\distutils create a file called distutils.cfg and add these lines:
  • Install gcc: mingw-get.exe install gcc
  • Install zlib
  • python install

If pycrypto fails to install with some "chmod error". You can install it separately using something like easy_install and then rerun the install command again

Special thanks

Special thanks to:

and everyone else on the WhatsAPI project for their contributions to yowsup and the amazing effort they put into WhatsAPI, the PHP WhatsApp library

Special thanks goes to all other people who use and contribute to the library as well.

Please read this if you'd like to contribute to yowsup 2.0



As of January 1, 2015 yowsup is licensed under the GPLv3:

Earlier versions were licensed under the MIT License and the reason for the change is the new dependency on python-axolotl (GPLv3) which provides us with End-to-End encryption, without which yowsup would have been unusable in the near future.

You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.