Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/vivizzz007/vivi-music/llms.txt

Use this file to discover all available pages before exploring further.

Discord Rich Presence lets your friends and server members see exactly what you’re listening to, right inside your Discord profile. When VIVI Music’s Discord integration is active, your status automatically updates with the current song title, artist, album art, and a live playback progress bar — no manual updates needed. The integration is powered by VIVI’s embedded kizzy module, which maintains a persistent WebSocket connection to the Discord Gateway.

Enabling the integration

1

Open Discord settings

Navigate to Settings → Integrations → Discord inside VIVI Music.
2

Log in to Discord

Two login options are available in the profile card:
  • Login — opens the DiscordLoginScreen in-app browser for a standard Discord sign-in flow.
  • Advanced Login (Token) — opens a token-entry dialog where you can paste your Discord user token directly. The token is verified immediately via KizzyRPC.getUserInfo before being saved.
3

Enable Rich Presence

Once logged in, toggle Enable Discord RPC in the Options section. VIVI will begin broadcasting your current track to Discord straight away.
Your Discord token is equivalent to your account password. Anyone who obtains it can take full control of your account. Never share it, never paste it into untrusted apps, and treat it with the same care as any sensitive credential. VIVI stores the token locally on your device in encrypted DataStore and never transmits it anywhere other than Discord’s own Gateway.

What is displayed in your status

When a track is playing, the Rich Presence card visible to your Discord contacts shows:

Activity label

Shown as “Listening to VIVI Music” (or a custom activity name you set in Advanced Mode). The activity type is configurable: Listening, Playing, Watching, or Competing.

Album art

The track’s thumbnail is shown as the large image. The primary artist’s avatar appears as the small overlay icon when available.

Song & artist

Track title and artist name appear as the presence title and subtitle text. Enabling Use Details adds the album name as a second line of detail.

Progress bar

A wavy progress indicator shows elapsed and total time, updating in real time as playback advances.
The preview card at the bottom of the Discord settings screen reflects your exact current track and layout choices live, so you can see how it will appear before committing.

Customising your presence (Advanced Mode)

Enabling Advanced Mode unlocks a second settings group with fine-grained controls:
SettingOptions
StatusOnline, Idle, Do Not Disturb
Activity typeListening, Playing, Watching, Competing
Activity nameCustom text shown as the presence header
Two clickable buttons can appear on the Rich Presence card. Both support dynamic variables that resolve at runtime:
  • Button 1 defaults to “Listen on YouTube Music” and links to the YouTube Music page for the current track.
  • Button 2 defaults to “Visit vivimusic” and links to the VIVI Music GitHub repository.
Each button can be individually hidden with its own toggle.

How the kizzy Gateway module works

The kizzy Gradle module implements the full Discord Gateway WebSocket protocol. DiscordWebSocket connects to wss://gateway.discord.gg/?v=9&encoding=json and handles the complete message lifecycle:
  • HELLO — receives the server’s heartbeatInterval and begins a periodic heartbeat job.
  • IDENTIFY / RESUME — authenticates or resumes an existing session using the stored token.
  • PRESENCE_UPDATE — pushes the current Presence payload (song, artwork, timestamps) to Discord whenever VIVI’s track changes.
  • RECONNECT / INVALID_SESSION — automatically reconnects with exponential back-off (1 s initial, 60 s maximum), so the integration recovers silently from network interruptions.
The gateway connection is established the moment you enable Enable Discord RPC and torn down cleanly when you disable it or log out.

Privacy

Rich Presence is governed entirely by your own Discord privacy settings. You can restrict who sees your activity status (everyone, friends only, or nobody) from Discord → User Settings → Privacy & Safety. Disabling the integration in VIVI immediately stops sending PRESENCE_UPDATE payloads, so your status clears within seconds.

Disconnecting Discord

Tap Logout in the profile card on the Discord settings screen. This clears DiscordTokenKey, DiscordUsernameKey, DiscordNameKey, and DiscordAvatarKey from local storage and immediately halts the Gateway connection. Your Discord account itself is not affected.

Build docs developers (and LLMs) love