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?


Failed to load latest commit information.
Latest commit message
Commit time
October 21, 2015 16:12
October 21, 2015 16:12
October 26, 2021 21:19
October 13, 2015 16:57
September 8, 2018 03:49
April 11, 2022 14:12
October 26, 2021 21:19
October 22, 2015 10:23
October 22, 2015 10:23
October 22, 2015 10:23
December 28, 2019 18:41
September 3, 2016 00:05
September 3, 2016 00:05
February 25, 2018 02:08
February 25, 2018 02:08

purple-matrix #purple on

This project is a plugin for libpurple which adds the ability to communicate with homeservers to any libpurple-based clients (such as Pidgin).

Update 2022/04/11

This project is essentially unmaintained. It may still work for you, in which case good luck to you; however, it lacks many important features that are critical to a modern Matrix client (not least of which is end-to-end encryption support).


This project is somewhat alpha, and only basic functionality has been implemented. Sending and receiving simple text messages is supported, as is joining rooms you are invited to by other users.

The following are not yet supported:

  • Creating new rooms (and one-to-one chats)
  • Presence indication
  • Typing indication
  • Videos/rich text in messages
  • Account registration
  • Room topics
  • Voice/video calling

The following are in progress:

The plugin requires a matrix homeserver supporting client-server API r0.0.0 Synapse v0.12.0-rc1 or later is sufficient.


Pre-built binaries are available for Ubuntu since version 17.04 (Zesty Zapus). You should be able to install them giving the following commands in a terminal window:

sudo apt update
sudo apt install purple-matrix

For other GNU/Linux systems the plugin needs to be built from source.

You will need development headers/libraries for the following:

  • libpurple 2.x [libpurple-dev]
  • libjson-glib [libjson-glib-dev]
  • libglib [libglib-dev (or libglib2.0-dev on Ubuntu 16.04 xenial)]
  • libhttp_parser [libhttp-parser-dev].
  • sqlite3 [libsqlite3-dev]
  • libolm [libolm-dev] (if not available, compile with make MATRIX_NO_E2E=1)
  • libgcrypt [libgcrypt20-dev] (if not available, compile with make MATRIX_NO_E2E=1)

You should then be able to:

sudo make install

If you do not have root access, you can simply copy into ~/.purple/plugins.

You will then need to restart Pidgin, after which you should be able to add a 'Matrix' account.

Building on Windows

Set up a build environment using the Pidgin BuildingWinPidgin docs

You should then be able to:

make -f Makefile.mingw
make -f Makefile.mingw install

You will then need to restart Pidgin, after which you should be able to add a 'Matrix' account.


  • Open the 'Manage accounts' dialog (under the 'Accounts' menu) and click 'Add'.
  • If the plugin was loaded successfully, you will be able to select 'Matrix' from the 'Protocol' dropdown.
  • Enter your matrix ID on the homeserver (e.g. '' or 'bob') as the 'username', and the password in the 'password' field.
    • If you don't enter your password, you'll be prompted for it when you try to connect; this won't get saved unless you click 'save password' but an access token is stored instead.
  • On the 'Advanced' tab, enter the URL of your homeserver.

The Advanced account option 'On reconnect, skip messages which were received in a previous session' is disabled by default. This means that pidgin will show the last few messages for each room each time it starts. If this option is enabled, only new messages will be shown.