1.0.2 • Public • Published


An MPD client

yarn add working-mpd-client


  • working-mpd-client supports the command sending
  • working-mpd-client allows subscribing on the server events (i.e. status updates)
  • working-mpd-client attempts to reconnect if the connection has been interrupted


const mpdClient = new MpdClient({
  connectOptions: {
    host: 'localhost',
    port: 6600
  reconnectOptions: {
    isUse: true,
    reconnectDelay: 2000
}).on('error', console.error)
  .on('changed', (name) => {
    if (name === 'playlist') printPlaylist()
  .on('ready', printPlaylist)
function printPlaylist() {
  mpdClient.sendCommand('playlist', (err, result) => {
    if (err) {
    } else {
      console.log('\nnew playlist:\n' + result)

Information events

  • warn - a channel to notify about maintainable problems. Example: a connection has been interrupted but an attempt to reconnect will be performed. Another example: a server responded with an error to a command that did not register a callback.
  • error - a channel to notify about critical problems. Example: a connection has been interrupted and a reconnect attempt won't be performed.

Connection events

  • ready - a connection has been established
  • disconnected - a connection has been interrupted due to a problem or as the result of a destroy method call
  • reconnecting - an attempt to recconect is in progress
  • reconnected - an attempt to reconnect succeed
  • destroyed - a client has been destroyed

Server events

  • changed - a server reported a change

Known changes

  • options - an option has been changed (the repeat option or the random option for example)
  • output - an audio channel has been changed
  • mixer - the volume level has been changed
  • player - the playback has been paused, resumed, or stoped
  • playlist - the playlist has been changed
  • update - a database update has been started or completed
  • database - the track database has been updated


  • init - establish a connection; ready event follows a method call
  • destroy - closes a connection and rejects all the callbacks left in the callbacks queue; disconnected and destroyed events follow a method call
  • sendCommand - sends a command to a server and calls a callback when the server responds to the command
  • sendCommandList - sends a list of commands to a server and calls a callback when the server responds to all the commands

Ways to send a command

    .sendCommand('status', someHandler)
        cmd: 'add',
        args: 'somePath'
        cmd: 'add',
        args: ['somePath', 'anotherSomePath']
    }, someHandler)
        cmd: 'add',
        args: 'somePath'
    }, 'play'])

MPD documention



Package Sidebar


npm i working-mpd-client

Weekly Downloads






Unpacked Size

16.2 kB

Total Files


Last publish


  • nskazki