Exposes a node-serialport compliant interface to front end javascript

Usage no npm install needed!

<script type="module">
  import chromeSerialport from '';



Exposes a chrome extension with serial permissions as a fully compliant node-serial interface. Uses Google Chrome Messaging to pass data from USB devices to front end code.


To install the serialport require, simply

npm install chrome-serialport


Only one change to node-serialport, you need to set the extension id on the factory for the extension that you're communicating to. See below for more info on that.

var SerialPortFactory = require('chrome-serialport');
var SerialPort = SerialPortFactory.SerialPort;
//only difference 
SerialPortFactory.extensionId = 'glbcoioheoliejkddbfabekjgmebfbog';

Theres one additional function not found in node-serialport. Its handy to know if the library could actually find your chrome extension

 console.log('Chrome extension installed!');

Other than that we're working for 100% compatibility with node-serial so see their docs.

official chrome extension

But you're not done there. You'll need our chrome extension installed. Find it in the store at xxx and you're all set, or build from scratch.

build chrome extension

npm i && gulp

Then navigate to chrome://extensions/ and check developer mode in the upper right corner. Click load unpacked extension and choose the build directory. You'll see it was assigned an extension id like 'glbcoioheoliejkddbfabekjgmebfbog', copy that string. Go into tests/basic.js and replace SerialPort.extensionId = '' with your string.


npm test

And load up in your browser

make it your own

Edit manifest.json to change the package name, description etc and add another entry in the manifest.json under matches for your own domain. Then see Google Developer Pages for how to get your app uploaded.