# serialport/node-serialport

Access serial ports with JavaScript. Linux, OSX and Windows. Welcome your robotic JavaScript overlords. Better yet, program them!

Repository: https://github.com/serialport/node-serialport
Canonical: https://ross.abutalabs.com/products/node-serialport
Homepage: https://serialport.io
Language: TypeScript
License: MIT
License Family: permissive
Topics: javascript, serialport, robot, nodebots, iot, nodejs, serial-ports, promise, hardware, electron, serial, node-serialport
Last push: 2026-01-17T04:34:43+00:00

## Health v2 (maintenance only)
Score: 51/100 (v2, computed 2026-09-03T02:20:16.233290+00:00)
- activity 62, release rhythm 8, longevity 100
- inputs: {"age_days": 5839, "days_push": 228, "days_rel": 617, "gap_med": null, "n_releases_24m": 1}
- flags: none
- formula: round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)

## Adoption (not part of the score)
Stars 5991, forks 1013 (observed 2026-08-28T04:09:34.020351+00:00)

## What it is
Node SerialPort is a JavaScript/TypeScript library for reading from and writing to serial ports in Node.js and Electron. It provides cross-platform bindings for Linux, macOS, and Windows, a Node Stream interface, and parser packages for turning raw binary data into usable messages.

## Use cases
- talk to an Arduino from JavaScript
- read data from a serial device in Node.js
- build a NodeBot or robot controller
- create an Electron desktop app that communicates with hardware
- parse binary serial data into messages
- test serial communication with a mock binding
- diagnose or control devices over RS-232/USB serial

## When to choose
- you need serial port access from Node.js or Electron on Linux, macOS, or Windows
- you're building robotics, IoT, or hardware projects in JavaScript
- you want a stream-based API with pluggable parsers and mock bindings for testing

## When to avoid
- you need serial access in the browser without Electron
- your project is in Python, C, or another non-JavaScript language
- you need Bluetooth, USB HID, or other non-serial device protocols

## Facets
- artifact type: library
- maturity: stable
- function: sdk, file-system, parser, testing
- domain: iot, hardware, robotics, developer-tools, cross-platform
- platform: windows, cross-platform
- tags: serial-port, nodebots, arduino, hardware-access, stream-api, typescript, mock-bindings, nodejs, linux, macos, electron

## Member repositories
- serialport/node-serialport (main) score 51

## Provenance
- Observed fields: from GitHub, fetched 2026-08-28T04:09:34.020351+00:00.
- Health v2: computed from the inputs above; adoption is never an input.
- Inferred fields (summary, facets, guidance): AI-extracted, prompt v1, taxonomy v1, on 2026-08-29T17:49:51.683852+00:00, confidence not recorded.
  - readme: https://github.com/serialport/node-serialport (fetched 2026-08-28T04:09:34.020351+00:00, sha 75460064ac41)
  - homepage: https://serialport.io (fetched 2026-08-29T08:46:11.442272+00:00, sha d7a7f29ae3c9)
  - site_page: https://serialport.io/docs (fetched 2026-08-29T08:46:11.450899+00:00, sha 45d1d897e138)
  - site_page: https://serialport.io/docs/next (fetched 2026-08-29T08:46:11.453329+00:00, sha 5d8170d73f33)
  - site_page: https://serialport.io/docs/11.x.x (fetched 2026-08-29T08:46:11.464141+00:00, sha c51a841a015f)
  - site_page: https://serialport.io/docs/10.x.x (fetched 2026-08-29T08:46:11.466057+00:00, sha 3dae3c6ac7c2)
  - site_page: https://serialport.io/docs/9.x.x (fetched 2026-08-29T08:46:11.467788+00:00, sha d416cc1861e0)
  - site_page: https://serialport.io/docs/8.x.x (fetched 2026-08-29T08:46:11.469638+00:00, sha 4abb45015a33)
  - site_page: https://serialport.io/docs/7.x.x (fetched 2026-08-29T08:46:11.471443+00:00, sha e101e667dbbc)
  - site_page: https://serialport.io/docs/code-of-conduct (fetched 2026-08-29T08:46:11.473386+00:00, sha 1c8d8cb8b55e)
- Data as of 2026-08-30T08:39:29.467469+00:00.
