SonoLink Documentation¶
SonoLink is a high-performance Lavalink v4 wrapper for Python, inspired by WaveLink. It provides a high-level voice player API while still exposing the underlying node, model, REST, and gateway primitives when you need them.
It is designed for bot authors who want a practical, queue-first player interface out of the box, without losing access to the runtime types and protocol details needed for debugging, customisation, or more advanced workflows.
Framework Compatibility¶
SonoLink is compatible with discord.py 2.7+, py-cord 2.8+, disnake 2.12+ and nextcord 3.1.1+, and requires no additional Discord library dependency — it automatically detects whichever you have installed. If multiple are found and none has already been imported, one is selected automatically and a warning is logged.
Important
SonoLink targets Lavalink 4.x. See Lavalink Setup for instructions on setting up and self-hosting a Lavalink server.
Getting Started¶
Who should read what¶
New users — start with Installation, then read Getting Started.
Advanced users — jump straight to API Reference and refer to the guides as needed.
Typical flow¶
Create a
sonolink.Clientattached to your Discord client.Pass
frameworkexplicitly if multiple Discord libraries are installed in the same environment.Register one or more Lavalink nodes with
sonolink.Client.create_node().Start the SonoLink client once your Discord client is ready.
Connect to a voice channel using
sonolink.Player.Search for tracks, populate the queue, and begin playback.
Core pieces¶
The public API is easiest to understand from the outside in:
sonolink.Client— attached to your Discord client; owns all nodes and acts as the main entry point.sonolink.Node— represents a single Lavalink server connection.sonolink.Player— the Discord voice protocol implementation used per guild.sonolink.models — user-facing objects including tracks, playlists, search results, and settings.
License¶
SonoLink is released under the MIT License.
Resources¶
Credits¶
Paillat-dev for the content width selector.
Rapptz for the original attributetable Sphinx extension.