Mumble client in Node.js
JavaScript Protocol Buffer
Latest commit d719f4b Feb 28, 2017 @Rantanen committed on GitHub Merge pull request #97 from drappier-charles/bugfix/writeable-on-clos…

Fix write function on MumbleSocket by checking if the stream is still…

Mumble client for Node.js

Build Status Code Climate

This module implements mumble protocol handling for Node.js


npm install mumble


var mumble = require('mumble'),
    fs = require('fs');

var options = {
    key: fs.readFileSync( 'key.pem' ),
    cert: fs.readFileSync( 'cert.pem' )

console.log( 'Connecting' );
mumble.connect( 'mumble://', options, function ( error, connection ) {
    if( error ) { throw new Error( error ); }

    console.log( 'Connected' );

    connection.authenticate( 'ExampleUser' );
    connection.on( 'initialized', onInit );
    connection.on( 'voice', onVoice );

var onInit = function() {
    console.log( 'Connection initialized' );

    // Connection is authenticated and usable.

var onVoice = function( voice ) {
    console.log( 'Mixed voice' );

    var pcmData = voice;

Use openssl req -x509 -newkey rsa:2048 -nodes -keyout key.pem -out cert.pem to generate the certificate.

Take a look at the advanced example in "examples/advanced.js"!

Please also take a look at the wiki for an complete documentation of the API.


Pull requests, found issues, etc. are welcome. The authors are tracked in the AUTHORS file. This file is kept up to date manually so authors are encouraged to pull request the necessary changes to the AUTHORS themselves.

Running tests

Tests can be executed with mocha. By default the tests are executed against local (localhost) Mumble server in the default port. To use a remote server or non-default port, launch mocha with MUMBLE_URL environment variable set: mocha

Related Projects