Skip to main content

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.

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.
Tamed’s Discord integration uses a user token to update your Rich Presence. While the feature is intended for personal use only, authenticating with a user token is against Discord’s Terms of Service. Use this feature at your own risk; Tamed does not store or transmit your token outside of your device.

Setup

1

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.
2

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.
3

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.
4

Configure your activity

Scroll down the settings screen to customize the activity name, details, state, activity type, images, and buttons. A live in-app preview reflects your choices in real time before they appear on Discord.

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 keyDefaultAvailable sources
DiscordActivityNameKeyAPPSONG, ARTIST, ALBUM, APP
DiscordActivityDetailsKeySONGSONG, ARTIST, ALBUM, APP
DiscordActivityStateKeyARTISTSONG, 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”
If DiscordActivityDetailsKey resolves to a blank value, Tamed automatically falls back to the song title to ensure Discord always shows something.

Activity Type

The DiscordActivityTypeKey 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

Controls the status indicator shown on your Discord avatar while the RPC is active. Accepted values are:
ValueDescription
ONLINEGreen dot — you are online
IDLEYellow moon — away
DNDRed dash — Do Not Disturb
INVISIBLENo visible indicator
Any unrecognized value falls back to ONLINE.
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.
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 value
  • DiscordPresenceIntervalUnitKey (string) — the time unit: S (seconds), M (minutes), or H (hours)
When the unit is 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.
The large image tooltip is controlled separately via 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.
Preference keyDefault
DiscordActivityButton1EnabledKeytrue
DiscordActivityButton1LabelKey"Listen on YouTube Music"
DiscordActivityButton1UrlSourceKey"songurl"
DiscordActivityButton1CustomUrlKey(empty)
Preference keyDefault
DiscordActivityButton2EnabledKeytrue
DiscordActivityButton2LabelKey"Go to Tamed"
DiscordActivityButton2UrlSourceKey"custom"
DiscordActivityButton2CustomUrlKey"https://tamed.app"
The URL source field accepts the following values:
ValueResolved URL
songurlhttps://music.youtube.com/watch?v=<song_id>
artisturlhttps://music.youtube.com/channel/<artist_id>
albumurlhttps://music.youtube.com/playlist?list=<album_id>
customThe value stored in the corresponding CustomUrl key
A button is only included in the presence payload if it is enabled, its label is non-blank, and its resolved URL is non-empty.
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

KeyTypeDescription
DiscordTokenKeystringYour Discord user token used to authenticate the RPC connection
DiscordUsernameKeystringStored after login — your @username handle
DiscordNameKeystringStored after login — your display name
DiscordInfoDismissedKeybooleanTracks whether the one-time info banner has been dismissed
To log out of Discord RPC, tap the Logout button on the Discord settings screen. Tamed will clear DiscordTokenKey, DiscordNameKey, and DiscordUsernameKey, and the presence manager will be stopped automatically.

Build docs developers (and LLMs) love