labelwerk
Design and print labels on Brother QL label printers under Linux.
Text, images, symbols, barcodes and series on a label shown in real size – plus parcel labels
converted for the label printer. No P-touch Editor, no Wine.
Download · Installation · Printers · Parcel labels · Translations · Report a printer
- Text with per-character formatting, images (PNG, JPG, SVG, PDF pages, screenshots), symbols, barcodes and QR codes, decorative frames – placed freely on a label shown in real size
- Series from CSV/Excel or numbering, favourites,
*.labelwerkfiles - Parcel labels (DHL, Hermes, Amazon returns) converted for 62 mm tape or 4×6" labels
- Prints PDFs and images 1:1 (e.g. postage stamps), also from the command line
- English and German
Printers
| Status | Printers |
|---|---|
| tested | QL-600 with DK-22205 (62 mm continuous), USB |
| should work (untested) | QL-500/550/560/570/580N/650TD/700/710W/720NW/800/810W/820NWB, QL-1050/1060N/1100/1110NWB/1115NWB (102 mm) – USB or network |
| untested | red/black printing (QL-8xx with DK-22251), Zebra printers via ZPL (USB/network), any label printer set up in CUPS (e.g. Dymo LabelWriter) |
| not supported | P-touch tape printers (PT-…), Bluetooth printers |
The printer model is detected automatically (labelwerk printers). Tried an untested model? Please open an issue
with model, label roll and result.
Installation
Download from the latest release:
- AppImage – one file, runs on any distribution with glibc 2.28 or newer:
chmod +x labelwerk-*-x86_64.AppImage ./labelwerk-*-x86_64.AppImage # the app ./labelwerk-*-x86_64.AppImage cli printers # the command line
- Flatpak –
flatpak install --user labelwerk-*-x86_64.flatpak, then start it from the launcher (needs the runtimeorg.freedesktop.Platform//25.08from Flathub). - pip – Python 3.10 or newer:
pip install "labelwerk[gui]" labelwerk install-desktop # adds labelwerk to the app launcher
The printer needs access to /dev/usb/lp* – add yourself to the group lp once, then log in again:
sudo usermod -aG lp "$USER". On the QL-600 the Editor Lite LED must be off, otherwise it shows
up as a USB drive.
Usage
Start the app with labelwerk-gui (or from the launcher). The command line covers the basics:
labelwerk print "X1 -K3\nTerminal 24V" -l 62x29 --preview preview.png
labelwerk print "Shelf 4" -l auto # label from the loaded roll
labelwerk print-file stamp.pdf -l 62 # PDF/PNG/JPG 1:1
labelwerk parcel label.pdf -l 62 # convert a parcel label
labelwerk printers # detected printers and supported models
labelwerk labels # labels of the printer
labelwerk --help and labelwerk <command> --help list all options.
Parcel labels
Open a parcel label in the PARCEL tab (or labelwerk parcel): the type is recognized, the label is cut into
pieces and arranged on the tape – barcodes at full size. DHL domestic is tested on real labels; the other types are
measured from sample sheets and marked untested. You can draw your own types on any label. Always check that the
barcodes scan before shipping.
Translations
Translations are welcome – see src/labelwerk/po/README.md.
Development
git clone https://github.com/siN161/labelwerk.git && cd labelwerk
python3 -m venv .venv && source .venv/bin/activate
pip install -e ".[dev]"
QT_QPA_PLATFORM=offscreen pytest -q
Tests never talk to a printer. The core (src/labelwerk/*.py) has no Qt dependency; gui/ only displays and edits.
Packages: packaging/appimage/build.sh (Docker) and packaging/flatpak/build.sh (flatpak-builder).
License
GPL-3.0-or-later. Uses brother_ql-inventree (GPLv3+),
PySide6 (LGPL), segno (BSD-3-Clause) and more;
symbol licenses in src/labelwerk/clipart_data/LICENSES.md.
Metadata
Release files for labelwerk 0.9.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| labelwerk-0.9.0.tar.gz | 3.3 MB | With provenance | Details for labelwerk-0.9.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| labelwerk-0.9.0-py3-none-any.whl | Python 3 | none | any | Details for labelwerk-0.9.0-py3-none-any.whl |
Total release size: 6.2 MB
Release files / labelwerk-0.9.0.tar.gz
| Download URL | labelwerk-0.9.0.tar.gz |
|---|---|
| Size | 3.3 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
81babffaab37b6c25ce805e5c00701d919eaf1114856bf89922b3d4beaa670cd
|
|
BLAKE2b-256 checksum How to use checksums |
ca55a8465542052bcdc7b7f6dea0faabf576721e4a59236a6393c29a30e7a25d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logRelease files / labelwerk-0.9.0-py3-none-any.whl
| Download URL | labelwerk-0.9.0-py3-none-any.whl |
|---|---|
| Size | 2.9 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
ecce14840f3cca8cfbcdf3f0f674c7f1e45a10a829d93f45de9a54f9a216189d
|
|
BLAKE2b-256 checksum How to use checksums |
aad12befe8b229a92c0722d1abf26d0f2770d77e41f74ae2210476cbb5e4ab9c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logSecurity for labelwerk 0.9.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
Both files in this release have been uploaded with provenance metadata.
Attestation for labelwerk-0.9.0.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 20, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.