Skip to content

afonsojramos/discrakt

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

443 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Discrakt - Easy to Use Trakt/Plex/Jellyfin Discord Rich Presence

Discrakt

A simple app that acts as a bridge between Discord and Trakt, Plex, or Jellyfin, allowing for the display of the watch status as Discord's Rich Presence. Essentially, it's a Trakt/Plex/Jellyfin Discord Rich Presence.

Profile Status

Tray

How it works: Discrakt mirrors what you're watching to Discord as Rich Presence. There are two ways to connect it:

1. Via Trakt โ€” works with any app that scrobbles to Trakt, so your status shows up wherever and in whatever app you watch (TV, phone, across the world), as long as one device is running Discord and Discrakt. Popular apps with Trakt integration:

2. Direct Plex or Jellyfin connection โ€” Discrakt connects straight to your Plex or Jellyfin server and mirrors your active session, with no Trakt account or external scrobbling needed. You log in during setup (Plex login, or Jellyfin Quick Connect) and Discrakt polls the server for what you're currently playing.

Either way, movie and show artwork plus localized titles are fetched from TMDB.

Features

  • Choose your source: Trakt (any app that scrobbles to it), or a direct Plex or Jellyfin server connection
  • ๐ŸŒ Multilingual support (Automatic system detection & Tray menu selection)
    • Localized titles for movies and episodes are fetched via TMDB.
  • Separate Discord Rich Presence apps for Movies and TV Shows
  • Movie posters and show artwork displayed via TMDB
  • Direct link to the title's page on TMDB (IMDB as a fallback)
  • Progress bar showing watch percentage
  • System tray integration with pause/resume functionality
  • Start at login option
  • Browser-based setup wizard (Trakt login, or a direct Plex / Jellyfin connection)

Setup

  1. Run the executable
  2. A setup wizard opens in your browser
  3. Pick your source:
    • Trakt: click Login with Trakt and approve in your browser. (Advanced: use a public Trakt profile by username, no login.)
    • Plex: click Login with Plex and approve. (Advanced: enter a server URL + token manually.)
    • Jellyfin: enter your server URL and click Login with Jellyfin, then enter the shown code in Jellyfin's Quick Connect. (Advanced: use an API key.)

Note: Discord needs to be running on the same machine as Discrakt.

Advanced: Manual Configuration

Discrakt creates credentials.ini for you during the setup wizard, so this file is not included in releases โ€” you don't need to download it. Only follow these steps if you want to use your own Trakt API application:

  1. Create an API Application on Trakt.tv (with scrobble capabilities and urn:ietf:wg:oauth:2.0:oob as the redirect uri)
  2. Create a credentials.ini file with your settings
  3. Place it in one of these locations:
Operating System Location Example
Linux $XDG_CONFIG_HOME/discrakt or $HOME/.config/discrakt /home/alice/.config/discrakt/credentials.ini
macOS $HOME/Library/Application Support/discrakt /Users/Alice/Library/Application Support/discrakt/credentials.ini
Windows %APPDATA%\discrakt C:\Users\Alice\AppData\Roaming\discrakt\credentials.ini

Using Plex instead of Trakt: add a [Plex] section and select it with [Discrakt] source = plex:

[Discrakt]
source = plex

[Plex]
serverUrl = http://192.168.1.10:32400
token = your-x-plex-token
username = your-plex-username

username is optional and only needed to disambiguate which user's session to mirror on a shared server.

Using Jellyfin: add a [Jellyfin] section and select it with [Discrakt] source = jellyfin:

[Discrakt]
source = jellyfin

[Jellyfin]
serverUrl = http://192.168.1.10:8096
accessToken = your-jellyfin-api-key
username = your-jellyfin-username

accessToken can be an API key (Dashboard โ†’ API Keys) or a token from Quick Connect. When source is omitted, Discrakt prefers Trakt, then Plex, then Jellyfin, based on what's configured.

Installation

macOS

Homebrew (recommended)

brew tap afonsojramos/discrakt
brew install discrakt

Supports both Apple Silicon and Intel Macs.

DMG

Download the universal DMG from the latest release and drag the app to your Applications folder.

Windows

Winget (recommended)

winget install afonsojramos.discrakt

Scoop

scoop bucket add extras
scoop install discrakt

MSI Installer

Download the MSI installer from the latest release.

Linux

Debian/Ubuntu (.deb)

# Download the .deb for your architecture (amd64 or arm64)
sudo dpkg -i discrakt_*_amd64.deb

Fedora/RHEL (.rpm)

# Download the .rpm for your architecture (x86_64 or aarch64)
sudo rpm -i discrakt-*.x86_64.rpm

AppImage

Download the AppImage for your architecture from the latest release, make it executable, and run:

chmod +x Discrakt-*-x86_64.AppImage
./Discrakt-*-x86_64.AppImage

Running at Startup

Discrakt includes a "Start at Login" option in its system tray menu. Enable it to automatically start when you log in.

You can also enable autostart from the command line:

discrakt --autostart 1

This is useful for scripting or package manager post-install hooks. To disable:

discrakt --autostart 0

Command Line Options

discrakt [OPTIONS]

Options:
    --autostart <VALUE>  Enable (1) or disable (0) automatic startup at login
    --version, -V        Show version information
    --help, -h           Show help message

Development

Make sure you've installed Rust. You can install Rust and its package manager, cargo by following the instructions on rustup.rs. After installing the requirements below, simply run cargo run.

The setup wizard is a React app in setup-ui/ built with the Vite+ (vite-plus) unified toolchain (Rolldown build, oxlint, oxfmt), embedded into the binary at build time. cargo build runs the frontend build automatically via build.rs, so you also need Node and pnpm installed (managed by mise: mise install). To iterate on the wizard UI directly, run the app once to start its local setup server, then point the dev server at it:

cd setup-ui
VITE_PROXY_TARGET=http://127.0.0.1:<setup-server-port> pnpm dev   # vp dev
pnpm lint     # oxlint via vp
pnpm format   # oxfmt via vp

To build the Rust binary against a prebuilt setup-ui/dist without invoking pnpm, set DISCRAKT_SKIP_UI_BUILD=1.

Thank You

movie and tv icons by iconixar

This product uses the TMDB API but is not endorsed or certified by TMDB.

About

The Trakt ๐ŸŽฅ Plex โ–ถ๏ธ Discord ๐ŸŽฎ Rich Presence that you didn't know you needed.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

 

Contributors