Tamed integrates with Discord Rich Presence to broadcast what you’re listening to directly on your Discord profile. You can customize every aspect of the activity — from the text fields and artwork to the activity type, presence status, and interactive buttons — all from a single settings screen with a live preview.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/calmerism/Tamed/llms.txt
Use this file to discover all available pages before exploring further.
Setup
Open Discord Settings
In Tamed, navigate to Settings → Integrations → Discord. A one-time information banner (controlled by
DiscordInfoDismissedKey) will appear the first time you open this screen. Read it and tap Dismiss to proceed.Log in with your Discord token
Tap Login next to the account entry. You will be taken to the Discord login screen where you can enter your Discord user token (
DiscordTokenKey). After a successful authentication, Tamed fetches and stores your display name (DiscordNameKey) and username (DiscordUsernameKey) for display in the settings screen.Enable Discord RPC
Once logged in, flip the Enable Discord RPC toggle (preference key:
EnableDiscordRPCKey). The toggle is disabled until a valid token is stored. Tamed’s background service will begin sending presence updates when music is playing.Activity Text
The three text lines that appear on your Discord profile are each independently configurable. Each accepts a source value that maps to a piece of track metadata.| Preference key | Default | Available sources |
|---|---|---|
DiscordActivityNameKey | APP | SONG, ARTIST, ALBUM, APP |
DiscordActivityDetailsKey | SONG | SONG, ARTIST, ALBUM, APP |
DiscordActivityStateKey | ARTIST | SONG, ARTIST, ALBUM, APP |
- SONG — the track title
- ARTIST — the first artist’s name
- ALBUM — the album title (falls back to the track title when absent)
- APP — the static string “Tamed”
DiscordActivityDetailsKey resolves to a blank value, Tamed automatically falls back to the song title to ensure Discord always shows something.
Activity Type
TheDiscordActivityTypeKey preference sets the verb Discord displays above the activity name (e.g. “Listening to Tamed”).
PLAYING
“Playing Tamed” — general gaming-style activity.
STREAMING
“Streaming Tamed” — indicates a live stream.
LISTENING
“Listening to Tamed” — the default, and most natural for music.
WATCHING
“Watching Tamed” — suited for video content.
COMPETING
“Competing in Tamed” — competitive gaming context.
Presence Status
Online status (DiscordPresenceStatusKey)
Online status (DiscordPresenceStatusKey)
Controls the status indicator shown on your Discord avatar while the RPC is active. Accepted values are:
Any unrecognized value falls back to
| Value | Description |
|---|---|
ONLINE | Green dot — you are online |
IDLE | Yellow moon — away |
DND | Red dash — Do Not Disturb |
INVISIBLE | No visible indicator |
ONLINE.Show when paused (DiscordShowWhenPausedKey)
Show when paused (DiscordShowWhenPausedKey)
A boolean preference (
false by default). When false, Tamed calls stopActivity() as soon as playback pauses, clearing the presence from your profile. When true, the presence persists during a pause — the small image switches to a pause indicator and playback timestamps are omitted.Update interval
Update interval
Tamed throttles presence refreshes to avoid hitting Discord’s rate limits. A preset dropdown offers
20s, 50s, 1m, and 5m. Selecting Custom exposes two additional fields:DiscordPresenceIntervalValueKey(int) — the numeric interval valueDiscordPresenceIntervalUnitKey(string) — the time unit:S(seconds),M(minutes), orH(hours)
S, Tamed enforces a minimum of 30 seconds per interval to prevent rate-limiting.Image Configuration
Tamed resolves artwork asynchronously and caches the results so that the correct images appear on Discord without introducing noticeable lag.Large image (DiscordLargeImageTypeKey)
thumbnail
Uses the song’s album artwork — the default and most common choice.
artist
Uses the artist’s profile photo sourced from the music service.
appicon
Uses the Tamed app icon at a static URL.
custom
Uses a user-supplied URL stored in
DiscordLargeImageCustomUrlKey. Falls back to the thumbnail if the URL is blank.DiscordLargeTextSourceKey, which accepts the same source values as the text fields (song, artist, album, app, custom, dontshow). When set to custom, the tooltip text is read from DiscordLargeTextCustomKey.
Small image (DiscordSmallImageTypeKey)
Accepts thumbnail, artist, appicon, custom, and dontshow. When playback is paused and DiscordShowWhenPausedKey is enabled, the small image is automatically replaced with a pause icon regardless of this setting. A custom URL is stored in DiscordSmallImageCustomUrlKey.
Client platform (DiscordActivityPlatformKey)
Sets the platform identifier sent with the presence payload, which affects how Discord displays the activity. Available values from the settings UI are android, desktop, and web. The default is desktop.
Buttons
Up to two buttons can appear below the activity card on Discord. Each button has its own enable toggle, label, URL source, and optional custom URL.Button 1
Button 1
Button 2
Button 2
| Value | Resolved URL |
|---|---|
songurl | https://music.youtube.com/watch?v=<song_id> |
artisturl | https://music.youtube.com/channel/<artist_id> |
albumurl | https://music.youtube.com/playlist?list=<album_id> |
custom | The value stored in the corresponding CustomUrl key |
Discord enforces a hard limit of two buttons per activity. Tamed calls
.take(2) on the resolved button list to ensure this constraint is always respected, regardless of settings state.Account Keys Reference
| Key | Type | Description |
|---|---|---|
DiscordTokenKey | string | Your Discord user token used to authenticate the RPC connection |
DiscordUsernameKey | string | Stored after login — your @username handle |
DiscordNameKey | string | Stored after login — your display name |
DiscordInfoDismissedKey | boolean | Tracks whether the one-time info banner has been dismissed |
