Contents Menu Expand Light mode Dark mode Auto light/dark, in light mode Auto light/dark, in dark mode Skip to content
sonolink 1.2.0a0 documentation
Light Logo Dark Logo

Main

  • Home
  • Installation
  • Guides
    • Getting Started
    • Lavalink Setup
    • Working With Players
    • Filters And Playback State
    • Migrating to SonoLink
      • Moving From Wavelink
      • Moving From Mafic
      • Moving From Lavalink.py
      • Moving From Lavaplay.py
      • Moving From Pomice
  • API Reference
    • Core API
    • Models
    • Enums
    • Events
    • Exceptions
    • Advanced
      • Gateway API
      • REST API
      • Supplementary

Meta

  • Changelog
  • Version Guarantees

Content Width

Back to top
View this page

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¶

Main

  • Installation
  • Guides
  • API Reference

Meta

  • Changelog
  • Version Guarantees

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¶

  1. Create a sonolink.Client attached to your Discord client.

    Pass framework explicitly if multiple Discord libraries are installed in the same environment.

  2. Register one or more Lavalink nodes with sonolink.Client.create_node().

  3. Start the SonoLink client once your Discord client is ready.

  4. Connect to a voice channel using sonolink.Player.

  5. 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¶

  • GitHub repository

  • PyPI package

  • Discord community

Credits¶

  • Paillat-dev for the content width selector.

  • Rapptz for the original attributetable Sphinx extension.

Next
Installation
Copyright © 2026, vmphase, Soheab, DA-344
Made with Sphinx and @pradyunsg's Furo
On this page
  • SonoLink Documentation
    • Framework Compatibility
    • Getting Started
    • Who should read what
    • Typical flow
    • Core pieces
    • License
    • Resources
    • Credits