Multi-Rich Presence Customizer
Multi-profile Discord Rich Presence manager. Up to 5 profiles, each with its own Client ID. Toggle one active at a time.
Inspired by CustomRP — reimagined with profile tabs, system tray + auto-start, and drop-in compatibility with your existing CustomRP .crp presets. Switch between presences with a single click. No accounts, no telemetry, fully local.
Every profile can rewrite its own Discord Application Description field (the one usually edited at Dev Portal → General Information) without ever leaving MultiRP. Paste your bot token once — stored encrypted via your OS keychain (DPAPI on Windows, Keychain on macOS, libsecret on Linux) using Electron's safeStorage, never written to plaintext on disk. Edit the text, hit Push to Discord now, and MultiRP fires a PATCH /applications/@me to update the live description. Auto-pushes on profile activate too, with smart dedupe so it's a no-op when nothing changed and a 30-second rate-limit guard so rapid switches never get you 429'd. Discord typically takes 5–15 minutes to refresh the description on activity cards.
Every profile gets its own custom theme — accent color, hover color, surfaces, borders, text, and an optional gradient. The whole app re-skins the moment you activate that profile, like Nitro themes on steroids — except yours, fully editable, with live color pickers and a hex input for every slot. Built-in presets (Spiritual, Dragon, Ocean, Sakura) get you started; custom pickers let you go anywhere from there. CustomRP has zero theming.
MultiRP watches the OS lock-screen, system suspend, and (optionally) raw input idle time. When you go away, it snaps to your designated Idle Profile; the moment you come back, it returns to whatever was active before — instantly. Works with Discord's own Idle / DnD / Invisible status flow without conflicting with it.
MultiRP can scan your running processes (tasklist on Windows, ps on Mac/Linux) and auto-activate a profile when a tracked game launches — map Genshin.exe → Genshin Impact profile, RobloxPlayerBeta.exe → Roblox profile, and so on. Pair it with the Always-On-Top overlay (z-level screen-saver) so MultiRP floats above borderless-fullscreen games like a card stack — first in the stack, always reachable. Optional: only pin while a tracked game is actually running.
Nine global shortcut actions you can bind to anything: Cycle next profile, Jump to slots 1–5, Toggle Auto Presence, Show window, Toggle always-on-top. Click-to-record capture, conflict detection, and CommandOrControl normalization so the same binding works on Mac, Windows, and Linux. Hotkeys fire even when MultiRP is hidden in the tray.
A flagship that CustomRP cannot do because CustomRP only has one profile. With 5 profiles, MultiRP unlocks real automation. Pick a mode and let your presence run itself:
- Rotation — cycle through selected profiles in a custom order on any interval (seconds, minutes, hours, or days)
- Shuffle — pick a random profile from your selected set on each interval
- Schedule — activate specific profiles on specific days and times of week (e.g. "Streaming" Mon–Fri 19:00–23:00, "Work" weekdays 09:00–17:00)
Manual activation politely pauses the engine with a one-click Resume Auto affordance. Optional system notifications when switches happen. Drag-to-reorder rotation. Live next-switch countdown. Set it once and forget it.
Move a profile to another machine without regenerating the bot token in the Discord developer portal. Click Secure Export, choose a passphrase, and MultiRP writes a .multirp-secure.json file: profile fields are visible plaintext (so you can audit what's in there), the bot token is encrypted with AES-256-GCM using a key derived via PBKDF2-HMAC-SHA256 (200k iterations) from your passphrase. On the new machine, Secure Import prompts for the passphrase and restores the token straight into the OS keychain — the renderer never sees it in plaintext. Wrong passphrase or any tampering with the file fails closed with a clear error.
Discord supports turning your Details, State, and Large/Small image into clickable links — not just the two preset buttons. MultiRP exposes that with a subtle 🔗 toggle next to each of those four fields: click to expand a URL input, paste an https:// link, and the corresponding piece of your presence becomes a hyperlink for everyone who views your profile. Inside MultiRP the live preview and the View as others popout both render the links as clickable too, so you can sanity-check the experience before pushing. Validation accepts https:// (recommended), soft-warns on http://, and hard-rejects everything else — no javascript: or data: URIs sneak through. Because discord-rpc 4.0.1 strips unknown fields, MultiRP bypasses its setActivity() wrapper and sends the raw SET_ACTIVITY RPC command itself, so the URL fields actually reach Discord. CustomRP's .crp format predates these fields — export to .crp silently drops them and round-trips fine through .json.
MultiRP reads and writes CustomRP's native .crp format — drag your existing presets straight in, no conversion step. Export back to .crp and hand them to friends still on CustomRP. Also supports .json (MultiRP native), .csv, .md, and .txt — with smart format detection by both file extension and content sniffing, so renamed files still work.
Up to 5 profiles, each with its own Discord Application Client ID. Toggle which one is live with a single click — perfect for creators juggling multiple personas, projects, or moods.
Launch with your OS, start minimized to the tray, and right-click the tray icon to activate/deactivate any profile without opening the window. Behaves like a real desktop app, not a tab you forgot about.
Live preview while you type, live push to Discord without disconnecting, and live character counters that respect Discord's hard 128-char and 32-char-button limits.
Discord deliberately hides your own buttons from your own profile card — you can never see what others see when they look at your presence. MultiRP solves that. Click View as others on the preview pane to open a separate, frameless window styled like another user's Discord client looking at your profile, complete with avatar, banner, ticking elapsed timer, and working buttons that actually open in your browser. Updates in real time as you edit.
- 5 profile tabs, each with its own Discord Application Client ID
- Toggle any profile live — only one runs at a time, instant switch
- Live preview + live update — change fields and push to Discord without disconnecting
- CustomRP
.crpimport/export — full two-way compat with existing CustomRP presets - Multi-format profile transfer —
.crp,.json,.csv,.md,.txtwith auto-detection - System tray with right-click activate/deactivate per profile
- Auto-start at login + start minimized (togglable, opt-in)
- Close-to-tray instead of quitting (togglable)
- 128-char limits with live counters on Details, State, and tooltip fields
- 2 buttons per profile with URL validation — clickable for other users on Discord
- Activity types: Playing / Listening to / Watching / Competing in
- Timestamps: none / elapsed (auto-start) / custom start / custom range
- Image keys for Large + Small images (uploaded to Discord Dev Portal)
- Party size indicator
- Custom About Field — per-profile override of your Discord App Description, with encrypted bot-token storage and auto-push on activate
- Auto Presence — rotation, shuffle, or scheduled profile switching with custom intervals (seconds → days)
- Profile Themes — per-profile accent / surface / gradient with presets and full custom color pickers
- Idle Detection — auto-snap to an Idle profile on lock / suspend / idle, snap-back on activity
- Game Detection — process scanner auto-activates profiles when tracked games launch
- Always-On-Top Overlay — float MultiRP above games, with optional auto-pin only while a game is running
- Custom Hotkeys — 9 global actions, click-to-record, conflict detection, cross-platform
- In-app update logs with auto-update from GitHub Releases
- Dark grey UI, no telemetry, no accounts, fully local
- Auto-saves all profiles to disk
- Install Discord (the regular desktop client) and have it running.
- Go to discord.com/developers/applications and create one application per profile you want.
- (Optional) Upload images under Rich Presence → Art Assets in each app. The asset name is your "image key".
- Copy each application's Application ID (Client ID) into a MultiRP profile.
- Fill in Details / State / images / buttons. Click Activate.
Buttons appear clickable to other users viewing your profile, not yourself — that's a Discord platform limit, not a bug.
npm install
npm start # dev run
npm run build:win # Windows .exe installer
npm run build:mac # macOS .dmg
npm run build:linux # AppImage + .debOutputs go into dist/.
This repo includes .github/workflows/build.yml which builds installers for Windows, macOS, and Linux in parallel whenever you push a tag like v1.0.0. Installers are attached to the GitHub Release automatically.
git tag v1.0.0
git push --tags- Electron 31 (main + preload + renderer with context isolation)
discord-rpcfor the Discord IPC handshake- Plain HTML/CSS/JS renderer (no build step)
- Profiles persisted to your OS user-data folder
Licensed under the Apache License 2.0.
Copyright © 2026 Alarkius Elvya Jay.
You may use, modify, and redistribute MultiRP — including in commercial projects — provided you keep the LICENSE and NOTICE files intact and clearly mark any modifications. The Apache 2.0 license also includes an explicit patent grant: contributors cannot sue downstream users over patent claims on their contributions.