Skip to main content

labelwerk logo

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.

Linux AppImage Flatpak download Install with pip

Download · Installation · Printers · Parcel labels · Translations · Report a printer

CI Release PyPI License GPL-3.0-or-later Python 3.10+ Platform Linux


  • 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, *.labelwerk files
  • 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

labelwerk: a terminal label with text, QR code and frame on 62 mm tape

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 runtime org.freedesktop.Platform//25.08 from 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.

A return label converted for 62 mm tape

Drawing your own parcel label type: areas, rotation, space

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)

Source distribution for labelwerk 0.9.0
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)

Table of built distributions (wheels) for labelwerk 0.9.0
File Interpreter ABI Platform Actions
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 log

Release 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 log

Security 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.

Select from 2 files

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 log

A 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.

Release history Release notifications | RSS feed

This release

0.9.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page