Multiple Discord Rich Presence activities manager
Static mode (1 activity) · Auto-rotation mode (2+ activities)
Custom buttons, images, details & state — all from a JSON config.
- Single or multiple activities – 1 entry = static, 2+ = auto-rotation
- JSON configuration – edit text, buttons, images without touching code
- Custom buttons – up to 2 clickable buttons per activity
- Custom images – large + small assets uploaded via Discord Developer Portal
- Persistent timer – elapsed time carries across rotation switches
- Clean shutdown – Ctrl+C gracefully disconnects RPC
- Node.js 18+
- Discord Desktop client running
git clone https://github.com/Stananas/discord-rpc-activity
cd discord-rpc-activity
npm install- Go to https://discord.com/developers/applications
- Click New Application
- Copy the Client ID (
OAuth2 > General) - Paste it in
config.json→clientId
- In your Discord Developer Portal app, go to
Rich Presence > Art Assets - Click Add Image(s) and upload your images (512×512px recommended)
- The filename without extension becomes the key used in
config.json
Open config.json and customize your activities:
{
"clientId": "YOUR_CLIENT_ID",
"rotationInterval": 15000,
"activities": [
{
"name": "Log label only",
"details": "Main text line",
"state": "Secondary text line",
"largeImageKey": "my_large_image",
"largeImageText": "Tooltip for large image",
"smallImageKey": "my_small_image",
"smallImageText": "Tooltip for small image",
"buttons": [
{ "label": "Button 1", "url": "https://..." },
{ "label": "Button 2", "url": "https://..." }
]
}
]
}| Field | Description |
|---|---|
details |
First text line (max 128 chars) |
state |
Second text line (max 128 chars) |
largeImageKey |
Uploaded asset name (without extension) |
largeImageText |
Tooltip shown on large image hover |
smallImageKey |
Uploaded small asset name (bottom-right corner) |
smallImageText |
Tooltip shown on small image hover |
buttons |
Up to 2 buttons (label + HTTPS url) |
# Single activity → static mode
# Multiple activities → auto-rotation mode
npm startPress Ctrl+C to stop.
Buttons don't show on my own profile → Discord doesn't display your own RPC buttons on your profile. Ask a friend to check.
Images don't appear
→ You haven't uploaded the assets in the Developer Portal (Rich Presence > Art Assets). The key must match the uploaded filename (without extension).
RPC_CONNECTION_TIMEOUT → Discord Desktop isn't running, or the IPC pipe is inaccessible. Make sure Discord is open.
├── config.json Activity configuration
├── index.js Main entry (auto-detects static or rotation)
├── LICENSE MIT license
└── package.json
MIT