You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Mascali ac794b5182
changed from dev to peer deps
1 year ago
.yarn/releases Fix various mx-puppet-discord things 1 year ago
ci Remove --from as it's available in context 1 year ago
img Add README with instructions and sample config 4 years ago
src Merge remote-tracking branch 'origin/github/fork/licentiapoetica/master' 1 year ago
.dockerignore Fix non-ci Dockerfile 1 year ago
.gitignore Mise à jour de '.gitignore' 1 year ago
.yarnrc.yml Fix various mx-puppet-discord things 1 year ago
Dockerfile Fixed yarn things that were not building 1 year ago
LICENSE add readme and license 4 years ago Mention dependencies for node-canvas 1 year ago drop privileges if no uid is specified 4 years ago
package.json changed from dev to peer deps 1 year ago
sample.config.yaml document category var for room name 3 years ago
tsconfig.json Merge remote-tracking branch 'origin/github/fork/ruslang02/master' 1 year ago
tslint.json add basic message sending 4 years ago

Support room on Matrix donate


This is a discord puppeting bridge for matrix. It handles bridging private and group DMs, as well as Guilds (servers). It is based on mx-puppet-bridge.

Also see matrix-appservice-discord for an alternative guild-only bridge.


You need at least node 12 to be able to run this!

Clone the repo and install the dependencies:

git clone
cd mx-puppet-discord
yarn install

If node-canvas is complaining, you can let yarn compile it for you by adding the required dependencies and rerunning yarn install afterwards.

  • For Ubuntu:
    sudo apt-get install build-essential libcairo2-dev libpango1.0-dev libjpeg-dev libgif-dev librsvg2-dev

Transpile the typescript code to something node can work with

yarn build

Copy and edit the configuration file to your liking:

cp sample.config.yaml config.yaml
... edit config.yaml ...

Generate an appservice registration file. Optional parameters are shown in brackets with default values:

yarn start -- -r [-c config.yaml] [-f discord-registration.yaml]

Then add the path to the registration file to your synapse homeserver.yaml under app_service_config_files, and restart synapse.

Finally, run the bridge:

yarn start


Start a chat with When it joins, type help in the chat to see instructions.

Linking a Discord bot account

This is the recommended method, and allows Discord users to PM you through a bot.

First visit your Discord Application Portal.

  1. Click on 'New Application'

  1. Customize your bot how you like

  1. Go to Create Application and scroll down to the next page. Find Create a Bot User and click on it.

  1. Click 'Yes, do it!

  1. Find the bot's token in the 'App Bot User' section.

  1. Click 'Click to Reveal'

Finally, send the appservice bot a message with the contents link bot your.token-here.

Linking your Discord account

Warning: Linking your user account's token is against Discord's Terms of Service.

First retrieve your Discord User Token. If this don't work, use this method:

Then send the bot a message with the contents link user your.token-here.

Guild management

As most users are in many guilds none are bridged by default. You can, however, enable bridging a guild. For that use listguilds <puppetId>, e.g. listguilds 1. (Puppet ID can be found with list.)

Then, to bridge a guild, type bridgeguild <puppetId> <guildId> and to unbridge it type unbridgeguild <puppetId> <guildId>

Friends management

IMPORTANT! This is a USER-token ONLY feature, and as such against discords TOS. When developing this test-accounts got softlocked, USE AT YOUR OWN RISK!

You first need to enable friends management with enablefriendsmanagement <puppetId>.

You can view all friends and invitation status with listfriends <puppetId>.

You can accept a friends request / send a friends request with addfriend <puppetId> <user> where <user> is either the user ID (preferred) or the username#1234.

You can remove friends with removefriend <puppetId> <userId>.


Docker images can be found at

Alternatively build it yourself:

docker build -t mx-puppet-discord .

You may want some changes in your config.yaml:

filename: '/data/database.db'
file: '/data/bridge.log'

Once the bridge has generated the discord-registration.yaml edit it to fix the address so that your matrix home server can connect to the bridge:

url: 'http://discord:8434'