GitHunt
SA

sajtii/ra_cli

Sajti's CLI for RetroAchievements Discord Rich Presence

Sajti's CLI for RetroAchievements Discord Rich Presence

A little software which lets you share your RetroAchievements activity with your friends on Discord.

Requirements

Features

  • Detailed Rich Presence on your Discord profile (name of the game, details about what you're currently doing in the game, icons, etc.)
  • Two clickable buttons (only others can see them): One leads to the RA page of the game you're currently playing; the other leads to your RA profile. You can enable or disable them using python racli.py -s.
  • A CLI that provides some information, fetches the icon of your current game and attempts to recreate it in the terminal or command line you're using.
  • Character presets for recreating the game icon, or you can create your own by editing charset.txt.
  • A little automation feature called timeout. It tries to detect when you are actually playing and activates or deactivates the rich presence accordingly. It is disabled by default.

Usage

After installing the requirements and ensuring you have all the necessary data, start by launching the setup script with python racli.py -s from terminal. Navigate using the corresponding numbers, provide the requested details, and you're good to go. Or, if you prefer you can manually modify config.ini, but be careful, as incorrect changes could break the code. Also, never ever modify data.ini.

When you have provided all your details, you can launch the script without flags by running python racli.py.

Important

The Docker container requires manual editing of config.ini because it runs non-interactively. Alternatively you may run python racli.py -s manually as shown above and copy the generated config.ini into the Docker bind mount path in the docker-compose.yml file.

Screenshots

1 2 3
6 4 5
7

Docker

A Compose file example is available here. The example includes the desktop
Discord client provided by kasmweb which will allow you
to run a headless stack on a server without requiring a traditional desktop Discord client.

With this, you can play games on a Steam Deck or other handheld emulation device and your Discord
status will stay updated without requiring a Discord client running on that device.

Languages

Python99.0%Dockerfile1.0%

Contributors

GNU General Public License v3.0
Created September 1, 2024
Updated March 8, 2026