Skip to content

gruberdev/steam-bridge

This branch is 4 commits ahead of icewind1991/mx-puppet-steam:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

0e0d8d7 · Sep 25, 2024

History

94 Commits
Oct 5, 2023
Aug 27, 2023
May 9, 2020
Aug 27, 2023
Aug 27, 2023
Oct 5, 2023
May 5, 2020
Oct 5, 2023
Nov 10, 2022
Aug 27, 2023
Oct 5, 2023
Oct 5, 2023
Oct 5, 2023
May 8, 2020
May 5, 2020

Repository files navigation

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:

Languages

  • TypeScript 97.7%
  • Other 2.3%