Matrix <-> Steam puppeting bridge based on mx-puppet-bridge
  • TypeScript 97.7%
  • Dockerfile 1%
  • Nix 0.7%
  • Shell 0.6%
Find a file
2023-10-05 18:49:24 +02:00
.github/workflows Delete docker-image.yml 2023-03-18 11:50:29 +01:00
patches patch matrix-bot-sdk to fix compatibility with synapse 1.90+ 2023-10-05 17:58:44 +02:00
src fix typings 2023-08-27 16:03:38 +02:00
.dockerignore add dockerfile 2020-05-09 16:12:04 +02:00
.envrc flake 2023-08-27 16:03:41 +02:00
.gitignore flake 2023-08-27 16:03:41 +02:00
docker-run.sh add dockerfile 2020-05-09 16:12:04 +02:00
Dockerfile update docker image 2023-10-05 18:49:24 +02:00
flake.lock flake 2023-08-27 16:03:41 +02:00
flake.nix patch matrix-bot-sdk to fix compatibility with synapse 1.90+ 2023-10-05 17:58:44 +02:00
LICENSE LICENCE 2020-05-05 18:46:36 +02:00
package-lock.json update docker image 2023-10-05 18:49:24 +02:00
package.json update docker image 2023-10-05 18:49:24 +02:00
README.md update docker image 2023-10-05 18:49:24 +02:00
sample.config.yaml cleanups 2020-05-08 19:37:45 +02:00
tsconfig.json seems to work somewhat 2020-05-05 18:40:44 +02:00

mx-puppet-steam

Matrix <-> Steam puppeting bridge based on mx-puppet-bridge.

This bridge uses puppeting to bridge your steam messages into a matrix server, this means that the bridge logs into your steam account using the same api as the regular steam account and forwards any incoming steam message to a matrix chatroom and any message you send in the matrix chatroom back to steam.

Status

  • login with steam guard support
  • 1<->1 messaging
  • group messaging
  • steam <-> matrix typing notifications
  • online/offline status
  • retrieve nickname and avatar from steam
  • listing of steam users
  • listing of steam group chats
  • listing of members within group chat
  • bridging embedded images in 1<->1 chats
  • receiving embedded images from steam in group chats
  • sending embedded images to steam in group chats
  • steam -> matrix emotes

Setup

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

Clone the repo and install the dependencies:

git clone https://github.com/icewind1991/mx-puppet-steam
cd mx-puppet-steam
npm install

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:

npm run start -- -r [-c config.yaml] [-f steam-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:

npm run start

Docker

If you prefer to use a docker based setup an image is available at icewind1991/mx-puppet-steam (Note that I do longer use the docker image myself so it's mostly untested).

Linking

Start a chat with @_steampuppet_bot:yourserver.com

link <username> <password>

If a steam guard (mobile or email) code is required, you will be asked for the code.

Ephemeral events

To enable bridging ephemeral events from matrix to steam (typing notification, read markers and presence) you'll need to enable the experimental support in synapse for pushing these events to the bridge by setting

"de.sorunome.msc2409.push_ephemeral": true

in your registration file.

Credits

This project would not be possible without the great work of (among others) the following projects: