Linux: Plex → Discord Rich Presence (movies, TV, music / Plexamp)
Most users: grab the AppImage from GitHub Releases — no Python or build tools required.
- Download
PlexPulse-x86_64.AppImage chmod +x PlexPulse-x86_64.AppImage- Run it (double-click or
./PlexPulse-x86_64.AppImage)
That’s the full install for normal use. The file is portable (x86_64 Linux).
Other ways to get it
| Method | Who it’s for |
|---|---|
| AppImage (above) | Everyone on desktop Linux; best default |
| From source (Python + venv) | Developers, packagers, or if you prefer pip |
| CI artifact | Testing a build without tagging: Actions → Release workflow → latest run → PlexPulse-x86_64 artifact |
There is no Flatpak/Flathub package in this repo yet; AppImage + source are the supported options.
- Movies, TV shows, and music
- Poster art (temporary upload via Litterbox for large Discord images)
- Per-user filtering (use your Plex user for correct Discord text; “all users” only if you really want every session on the server) and multi-server support
- Plexamp
- Privacy mode (hide presence)
- Setup wizard (Plex OAuth)
- Poster caching
- System tray icon by default (
--notrayfor headless / no tray)
- Linux (X11/Wayland with a working systray where applicable)
- Discord running with the official client (IPC pipe for Rich Presence)
- A Plex account
If you already have Python 3:
git clone https://github.com/TomGUN02/PlexPulse.git
cd PlexPulse
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python main.pyOr use the launcher (no need to activate each time if venv exists):
./plexpulseHeadless (no tray, logs in the terminal): python main.py --notray
chmod +x plexpulse scripts/install-desktop.sh
./scripts/install-desktop.shInstalls ~/.local/share/applications/PlexPulse.desktop pointing at ./plexpulse.
| Command | Effect |
|---|---|
status |
Current status |
pause |
Toggle privacy mode |
reconnect |
Reconnect to Plex and Discord |
reset |
Delete config and stop the daemon |
stop |
Stop the daemon |
Example: python main.py status
Only needed if you package the app yourself or hack on the binary. End users should use Download.
pip install -r requirements-dev.txt
pyinstaller --clean --noconfirm PlexPulse.spec
# → dist/PlexPulseUses the PyInstaller binary above, then appimagetool (not the old AppImageKit):
# One-time: download appimagetool-x86_64.AppImage, chmod +x, then e.g.:
export APPIMAGETOOL="$HOME/path/to/appimagetool-x86_64.AppImage"
chmod +x packaging/appimage/build-appimage.sh
./packaging/appimage/build-appimage.sh
# → dist/PlexPulse-x86_64.AppImageIf appimagetool is on your PATH, you can omit APPIMAGETOOL.
Compatibility: AppImages built on a newer glibc may not run on very old distributions. CI uses Ubuntu 22.04 for a reasonable baseline.
Gear Lever sometimes refuses metadata extraction. Try Settings → disable “safe mechanisms to load metadata”, or use Gear Lever 4.2.2+. You can always run the AppImage with chmod +x and execute it directly.
The app uses the PlexPulse Discord application ID for Rich Presence assets. It is set in code; if you fork and create your own Discord application, replace it in main.py.
- Your Plex token is stored in
~/.config/PlexPulse/config.json. Do not share this file. - Posters are uploaded to a temporary host (Litterbox, time-limited) so Discord can show large images; review their terms if you have strict requirements.
GNU GPL v3 — see LICENSE.