Discord Rich Presence for Windows — window detection and idle state.
Windows port of jellyrpc. Runs as a system tray app with no console window.
Discord ← pypresence IPC ← jellyrpc.py
├── idle > 5 min? → "Away from keyboard"
└── visible window in APP_MAP → show app activity
App detection uses psutil in priority order — editor beats terminal, terminal beats browser. Only apps with a visible window are detected; background processes are ignored. Edit APP_MAP in jellyrpc.py to add or reorder apps.
git clone https://github.com/tiiow-fedora/jellyrpc-windows
cd jellyrpc-windows
install.batThen fill in your config — right-click the tray icon → Open Config Folder, then edit config.json:
{
"discord_app_id": "YOUR_DISCORD_APP_ID",
"idle_detection": true,
"idle_threshold_seconds": 300,
"window_detection": true
}Restart the app after saving (right-click tray → Quit, then run pythonw jellyrpc.py again).
- Go to discord.com/developers/applications
- New Application → name it whatever you want shown in Discord (e.g. "Windows")
- Copy the Application ID from the General Information page
jellyrpc uses named image keys for each activity. You must upload the icons manually in your browser — this cannot be automated.
Steps:
- Go to discord.com/developers/applications and open your application
- Click Rich Presence → Art Assets in the left sidebar
- Upload each PNG with the exact key name listed below
| Key name (must match exactly) | Used for |
|---|---|
coding |
VS Code, Neovim, Zed, Obsidian, GIMP, Blender |
terminal |
Windows Terminal, PowerShell, cmd |
steam |
Steam |
firefox |
Firefox, LibreWolf, Chrome |
idle |
Idle state |
The key names must match exactly — they map directly to the large_image values in APP_MAP.
| Package | Purpose |
|---|---|
pypresence |
Discord IPC |
psutil |
Process and window detection |
pystray |
System tray icon |
Pillow |
Tray icon rendering |
pywin32 |
Windows API (idle detection, autostart) |
install.bat installs all of these automatically via pip.
%APPDATA%\jellyrpc\config.json:
| Key | Default | Description |
|---|---|---|
discord_app_id |
"" |
Required. Your Discord application ID. |
idle_detection |
true |
Show "Away from keyboard" after idle threshold. |
idle_threshold_seconds |
300 |
Seconds of inactivity before idle state. |
window_detection |
true |
Show current app activity. |
Edit APP_MAP in jellyrpc.py:
("Code.exe", "Editing", "VS Code", "coding"),
("steam.exe", "Gaming", "Steam", "steam"),Fields: (process .exe name, state line, details line, large_image key). Priority order — put higher-priority entries first. Use the exact .exe name as shown in Task Manager.
Right-click the tray icon → Start with Windows to toggle. This adds or removes a shortcut in your Startup folder (%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup).
Windows 11 may hide the tray icon. Go to taskbar settings and set jellyrpc to always show.
git pull
install.bat- Right-click tray icon → Start with Windows (uncheck if enabled) → Quit
- Delete the
jellyrpc-windowsfolder - Delete
%APPDATA%\jellyrpc(your config)