Skip to content

thermal-label/brother-ql

Repository files navigation

@thermal-label/brother-ql

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 — 3 verified · 0 partial · 15 expected · 0 unsupported · 6 unverified

Model Key USB PID Transports Status
PT-E550W PT_E550W 0x2060 USB, TCP ⏳ unverified
PT-P750W PT_P750W 0x2062 USB, TCP ⏳ unverified
PT-P900 PT_P900 0x2083 USB ⏳ unverified
PT-P900W PT_P900W 0x2085 USB, TCP ⏳ unverified
PT-P910BT PT_P910BT 0x20c7 USB, BT SPP ⏳ unverified
PT-P950NW PT_P950NW 0x2086 USB, TCP ⏳ unverified
QL-500 QL_500 0x2013 USB 🔄 expected
QL-550 QL_550 0x2016 USB 🔄 expected
QL-560 QL_560 0x2018 USB 🔄 expected
QL-570 QL_570 0x2019 USB 🔄 expected
QL-580N QL_580N 0x201b USB, TCP 🔄 expected
QL-600 QL_600 0x2100 USB 🔄 expected
QL-650TD QL_650TD 0x201c USB 🔄 expected
QL-700 QL_700 0x2042 USB ✅ verified
QL-710W QL_710W 0x2044 USB, TCP 🔄 expected
QL-720NW QL_720NW 0x2045 USB, TCP 🔄 expected
QL-800 QL_800 0x209b USB ✅ verified
QL-810W QL_810W 0x209c USB, TCP 🔄 expected
QL-820NWBc QL_820NWBc 0x209d USB, TCP, BT SPP ✅ verified
QL-1050 QL_1050 0x2027 USB 🔄 expected
QL-1060N QL_1060N 0x2028 USB, TCP 🔄 expected
QL-1100 QL_1100 0x20a7 USB 🔄 expected
QL-1110NWB QL_1110NWB 0x20a8 USB, TCP 🔄 expected
QL-1115NWB QL_1115NWB 0x20ab USB, 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

Package Role
@thermal-label/brother-ql-core Protocol encoding, device + media registries. Browser + Node.
@thermal-label/brother-ql-node Node USB (libusb) and TCP (port 9100) transport.
@thermal-label/brother-ql-web Browser WebUSB transport.

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

Compatibility

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

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.

About

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

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

 
 
 

Contributors