A simple, easy-to-use, and flexible lavalink client for node.js

A lightweight and powerful lavalink client for nodejs.

  • Easy-to-use: lavaclient has a neat and user-friendly promise-based api.
  • Performant: designed to be small and lightweight, it's a great choice for any project.
  • Library Agnostic: lavaclient doesn't require you to use a specific discord library. Use anything you want!

Support Server


Node.js v16.11.0 or newer is required

yarn add lavaclient # or npm install
Beta (may be outdated)
yarn add [email protected] # or npm install

If you're looking for a Deno variant of lavaclient... We've got you covered!!



Even though the following examples use import syntax, Lavaclient also supports CommonJS!

import { Cluster, Node } from "lavaclient";

const info = { host: "localhost", port: 2333, password: "youshallnotpass" };

const lavalink = new Node({
    connection: info,
    sendGatewayPayload: (id, payload) => sendWithDiscordLib(id, payload),

// or for clustering:

const lavalink = new Cluster({
    nodes: [ { id: "main", } ],
    sendGatewayPayload: (id, payload) => sendWithDiscordLib(id, payload),


Handling Voice Updates

Lavalink requires voice updates to play audio in a voice channel, this may vary from library to library.

What you need for correctly sending voice updates to lavalink:

  1. A connection to the Discord gateway.
  2. Raw Voice State and Server updates
  3. Passing the data of the voice update to (Cluster|Node)#handleVoiceUpdate

Playing Music

const results = await
    "ytsearch:never gonna give you up",

await lavalink

this is a very poor way of playing music btw... checkout our discord.js example

Need some more help? Join our Support Server

Rate this package

lavaclient © 2018 - 2022

Related Searches

Get A Weekly Email With Trending Projects For These Categories
No Spam. Unsubscribe easily at any time.