@thermal-label/brother-ql

September 21, 2026 · View on GitHub

TypeScript-first Brother QL label printer driver — Node USB/TCP and browser WebUSB.

CI codecov npm core npm node npm web License: MIT

Install

pnpm add @thermal-label/brother-ql-node    # Node USB/TCP
pnpm add @thermal-label/brother-ql-web     # Browser WebUSB

For ad-hoc printing from the terminal, install thermal-label-cli — it auto-detects every installed driver, no per-driver CLI needed.

Quick example (Node, USB)

import { discovery } from '@thermal-label/brother-ql-node';
import { MEDIA } from '@thermal-label/brother-ql-core';

const printer = await discovery.openPrinter();
try {
  // `image` is RawImageData — { width, height, data } where data is
  // an RGBA Uint8Array. Any pipeline that produces RGBA works.
  await printer.print(image, MEDIA[259]); // 62mm continuous
} finally {
  await printer.close();
}

Quick example (Browser, WebUSB)

import { requestPrinter } from '@thermal-label/brother-ql-web';
import { MEDIA } from '@thermal-label/brother-ql-core';

const printer = await requestPrinter(); // call from a user gesture
try {
  await printer.print(image, MEDIA[259]);
} finally {
  await printer.close();
}

Supported hardware

24 devices — 4 verified · 0 partial · 14 expected · 0 unsupported · 6 unverified

ModelKeyUSB PIDTransportsStatus
PT-E550WPT_E550W0x2060USB, TCP⏳ unverified
PT-P750WPT_P750W0x2062USB, TCP⏳ unverified
PT-P900PT_P9000x2083USB⏳ unverified
PT-P900WPT_P900W0x2085USB, TCP⏳ unverified
PT-P910BTPT_P910BT0x20c7USB, BT SPP⏳ unverified
PT-P950NWPT_P950NW0x2086USB, TCP⏳ unverified
QL-500QL_5000x2015USB🔄 expected
QL-550QL_5500x2016USB🔄 expected
QL-560QL_5600x2027USB🔄 expected
QL-570QL_5700x2028USB🔄 expected
QL-580NQL_580N0x2029USB, TCP🔄 expected
QL-600QL_6000x20c0USB🔄 expected
QL-650TDQL_650TD0x201bUSB🔄 expected
QL-700QL_7000x2042USB✅ verified
QL-710WQL_710W0x2043USB, TCP🔄 expected
QL-720NWQL_720NW0x2044USB, TCP✅ verified
QL-800QL_8000x209bUSB✅ verified
QL-810WQL_810W0x209cUSB, TCP🔄 expected
QL-820NWBcQL_820NWBc0x209dUSB, TCP, BT SPP✅ verified
QL-1050QL_10500x2020USB🔄 expected
QL-1060NQL_1060N0x202aUSB, TCP🔄 expected
QL-1100QL_11000x20a7USB🔄 expected
QL-1110NWBQL_1110NWB0x20a8USB, TCP🔄 expected
QL-1115NWBQL_1115NWB0x20abUSB, TCP🔄 expected

Click any model to open its detail page on the docs site, where engines, supported media, and verification reports live. The same data backs the interactive cross-driver table.

Documentation

Full docs at https://thermal-label.github.io/brother-ql/.

Packages

PackageRole
@thermal-label/brother-ql-coreProtocol encoding, device + media registries. Browser + Node.
@thermal-label/brother-ql-nodeNode USB (libusb) and TCP (port 9100) transport.
@thermal-label/brother-ql-webBrowser WebUSB transport.

The per-driver *-cli package was retired — use the unified thermal-label-cli instead.

Compatibility

Node≥ 20.9 (Node 24 LTS recommended)
BrowsersChrome / Edge 89+ (WebUSB), secure context (https:// or localhost)
Linuxtypically needs a udev rule for 04F9:* to access without sudo
Peers@thermal-label/contracts, @thermal-label/transport, @mbtech-nl/bitmap
LicenseMIT

Not affiliated with Brother. Trademarks belong to their owners.

Contributing

See CONTRIBUTING/ on the org .github repo — code of conduct, security policy, "adding a driver" guide, release process.