# shoukaku

> A stable and updated wrapper around Lavalink

Latest version **4.3.0** (published 2026-02-28) · MIT license · 0 weekly downloads

## Install

```sh
npm install shoukaku
pnpm add shoukaku
yarn add shoukaku
bun add shoukaku
```

## Health

**Score 60/100 (C)** — status: stable.

Positive: has types; esm support; no vulnerabilities; high maintenance score.

Warnings: low downloads.

## Facts

| | |
|---|---|
| Version | 4.3.0 |
| Published | 2026-02-28 |
| First published | 2019-06-17 |
| Weekly downloads | 0 |
| License | MIT |
| TypeScript types | bundled |
| Module format | ESM + CommonJS |
| Node | >=18.0.0 |
| Dependencies | 1 |
| Unpacked size | 359.6 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 321 |
| Author | Saya |
| Maintainers | sayaowo |
| Keywords | bot, music, lavalink, api, discord, lavalink.js, discord.js, lavalink-api, weeb-library |

## Links

- npm: https://www.npmjs.com/package/shoukaku
- Repository: https://github.com/shipgirlproject/Shoukaku
- Homepage: https://github.com/shipgirlproject/Shoukaku#readme
- Issues: https://github.com/shipgirlproject/Shoukaku/issues
- npm.io page: https://npm.io/package/shoukaku

## Dependencies (1)

- [ws](https://npm.io/package/ws.md) ^8.19.0

## Recent versions

- 4.3.0 (latest) — 2026-02-28
- 4.2.0 — 2025-11-01
- 4.1.1 — 2024-08-28
- 4.1.0 — 2024-08-23
- 4.0.1 — 2023-12-21
- 4.0.0 — 2023-12-21
- 3.4.2 — 2023-11-13
- 3.4.1 — 2023-11-08
- 3.4.0 — 2023-04-26
- 3.3.1 — 2023-01-21
- 3.3.0 — 2023-01-20
- 3.2.3 — 2022-12-18
- 3.2.2 — 2022-10-25
- 3.2.1 — 2022-10-19
- 3.2.0 — 2022-09-18
- … 58 more at https://npm.io/package/shoukaku/versions

## README

## Shoukaku

> A stable and updated wrapper around Lavalink

[![Discord](https://img.shields.io/discord/423116740810244097?style=flat-square)](https://discordapp.com/invite/FVqbtGu)
[![npm](https://img.shields.io/npm/v/shoukaku?style=flat-square)](https://www.npmjs.com/package/shoukaku)
![Github Stars](https://img.shields.io/github/stars/Deivu/Shoukaku?style=flat-square)
![GitHub issues](https://img.shields.io/github/issues-raw/Deivu/Shoukaku?style=flat-square)
![NPM](https://img.shields.io/npm/l/shoukaku?style=flat-square)

<p align="center">
    <img src="https://azurlane.netojuu.com/images/thumb/d/dc/ShoukakuWeddingWithoutBG.png/767px-ShoukakuWeddingWithoutBG.png"> 
</p>

### Features

- Stable

- Updated

- Documented

- Extendable

- ESM & CommonJS supported

- Very cute (Very Important)

### Documentation

> https://guide.shoukaku.shipgirl.moe/

### Getting Started

> https://guide.shoukaku.shipgirl.moe/guides/1-getting-started/

### Supported Libraries

> https://guide.shoukaku.shipgirl.moe/guides/5-connectors/

### Example Bot

> https://github.com/Deivu/Kongou

### Configuration Options

```js
// Parameters for main class init, Options is the Configuration Options
new Shoukaku(new Connectors.DiscordJS(client), Nodes, Options);
```

| Option                 | Type                   | Default  | Description                                                                                      | Notes                    |
| ---------------------- | ---------------------- | -------- | ------------------------------------------------------------------------------------------------ | ------------------------ |
| resume                 | boolean                | false    | If you want to enable resuming when your connection to lavalink disconnects |                          |
| resumeTimeout          | number                 | 30       | Timeout before lavalink destroys the players on a disconnect                                     | In seconds               |
| resumeByLibrary        | boolean                | false    | If you want to force resume players no matter what even if it's not resumable by lavalink        |                          |
| reconnectTries         | number                 | 3        | Number of tries to reconnect to lavalink before disconnecting                                    |                          |
| reconnectInterval      | number                 | 5        | Timeout between reconnects                                                                       | In seconds               |
| restTimeout            | number                 | 60       | Maximum amount of time to wait for rest lavalink api requests                                    | In seconds               |
| moveOnDisconnect       | boolean                | false    | Whether to move players to a different lavalink node when a node disconnects                     |                          |
| userAgent              | string                 | (auto)   | Changes the user-agent used for lavalink requests                                                | Not recommeded to change |
| structures             | Object{rest?, player?} | {}       | Custom structures for shoukaku to use                                                            |                          |
| voiceConnectionTimeout | number                 | 15       | Maximum amount of time to wait for a join voice channel command                                  | In seconds               |
| nodeResolver           | function               | function | Custom node resolver if you want to have your own method of getting the ideal node               |                          |

### Wrappers

| Name     | Link                                          | Description                                              |
| -------- | --------------------------------------------- | -------------------------------------------------------- |
| Kazagumo | [Github](https://github.com/Takiyo0/Kazagumo) | A wrapper for Shoukaku that has an internal queue system |

> Open a pr if you want to add a wrapper here

### Other Links

- [Discord](https://discord.gg/FVqbtGu)

- [Lavalink](https://github.com/lavalink-devs/Lavalink)

### Code made with ❤ by @ichimakase (Saya)

> The Shipgirl Project

---
_Source: https://npm.io/package/shoukaku · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
