TypeScript-first DYMO D1 LabelManager driver — Node USB and browser WebUSB.
pnpm add @thermal-label/labelmanager-node # Node USB
pnpm add @thermal-label/labelmanager-web # Browser WebUSBFor ad-hoc printing from the terminal, install
thermal-label-cli — it
auto-detects every installed driver, no per-driver CLI needed.
import { discovery } from '@thermal-label/labelmanager-node';
import { TAPE_12MM } from '@thermal-label/labelmanager-core';
const printer = await discovery.openPrinter();
try {
// image is RawImageData — { width, height, data } where data is RGBA bytes.
await printer.print(image, TAPE_12MM);
} finally {
await printer.close();
}import { requestPrinter } from '@thermal-label/labelmanager-web';
import { TAPE_12MM } from '@thermal-label/labelmanager-core';
const printer = await requestPrinter(); // call from a user gesture
try {
await printer.print(image, TAPE_12MM);
} finally {
await printer.close();
}8 devices — 1 verified · 0 partial · 1 broken · 6 untested
| Model | Key | USB PID | Transports | Status |
|---|---|---|---|---|
| LabelManager 280 | LM_280 |
0x1006 | USB | ⏳ untested |
| LabelManager 400 | LM_400 |
0x0013 | USB | ⏳ untested |
| LabelManager 420P | LM_420P |
0x1004 | USB | ⏳ untested |
| LabelManager PC | LM_PC |
0x0011 | USB | ⏳ untested |
| LabelManager PnP | LM_PNP |
0x1002 | USB | ✅ verified |
| LabelManager Wireless PnP | LM_WIRELESS_PNP |
0x1008 | USB | ⏳ untested |
| LabelPoint 350 | LABELPOINT_350 |
0x0015 | USB | ⏳ untested |
| MobileLabeler | MOBILE_LABELER |
0x1009 | USB | ❌ broken |
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.
Full docs at https://thermal-label.github.io/labelmanager/.
- Getting started
- Hardware list
- D1 tape protocol (shared with the LabelWriter Duo in
@thermal-label/d1-core) - Node guide
- Web guide
- API reference
- Live demo
| Package | Role |
|---|---|
@thermal-label/labelmanager-core |
Protocol encoding, device + media registries. Browser + Node. |
@thermal-label/labelmanager-node |
Node USB transport. |
@thermal-label/labelmanager-web |
Browser WebUSB transport. |
The per-driver *-cli package was retired — use the unified
thermal-label-cli instead.
| Node | ≥ 20.9 (Node 24 LTS recommended) |
| Browsers | Chrome / Edge 89+, secure context (https:// or localhost) |
| Linux | typically needs a udev rule for 0922:*; usb_modeswitch may be required for first-run config |
| Devices | DYMO LabelManager (D1 tape) — see hardware list |
| Peers | @thermal-label/contracts, @thermal-label/transport, @mbtech-nl/bitmap |
| License | MIT |
Not affiliated with DYMO. Trademarks belong to their owners.
See CONTRIBUTING/
on the org .github repo.