- Python 98%
- Shell 2%
| labelassister | ||
| packaging/arch | ||
| resources | ||
| scripts | ||
| .gitignore | ||
| app.py | ||
| LICENSE | ||
| pyproject.toml | ||
| README.md | ||
| uv.lock | ||
LabelAssister
A WYSIWYG label editor for the Brother QL-700 thermal printer (Linux). The little sister of your Brother: she helps you design and print labels, the same pixels on screen and on paper (300 dpi).
Features
- Roll widths: 12, 17, 24, 29, 38, 50, 54, 58, 62 mm, with free length in millimeters
- Printable area shown on the roll (from
brother_ql; estimated for the non-native 17/24/58 mm rolls) - Text blocks: any system font, size in mm, bold/italic/underline, alignment, 0–270° rotation, adjustable block width
- Images and PDF: insert JPEG/PNG images or PDF pages (with page selection), rendered at 300 dpi
- Full editing: mouse dragging and resizing, arrow keys (0.5 mm steps, 0.1 mm
with Shift),
Delto remove - Millimeter grid, zoom and "Fit" view
- Automatic length minimization to save tape
- Projects: save/load to JSON (images embedded), export to PNG or PDF
- Printing: multiple copies, auto-cut, automatic printer detection
- International: English by default, French included
Requirements
- Python ≥ 3.10
- A Brother QL-700 connected over USB
- Linux (udev) — other platforms untested
Installation
Requires uv and Python ≥ 3.10.
git clone https://your-forge.example/labelassister.git
cd labelassister
uv sync
Then start the editor:
uv run labelassister
Without installing
You can also run the application straight from the source tree:
uv sync
uv run python app.py
Releasing a new version
uv run bumpver update --patch
bumpver bumps the version (and rolls the date with --YYYY --0M --0D --patch
when a new day's release starts), regenerates uv.lock via its pre-commit hook
and creates the version commit itself.
Printer permissions
The printer needs to be reachable without sudo. Install the provided udev
rule once:
sudo cp resources/udev/60-brother-ql.rules /etc/udev/rules.d/
sudo udevadm control --reload && sudo udevadm trigger
If the printer shows up as a USB drive instead of a printer, disable the "Editor Lite" mode on the device.
Usage
Start the editor (see above), choose "Printer…" in the toolbar, pick the
backend (linux_kernel → /dev/usb/lpX or pyusb) and press Detect.
Create text blocks or drop in images/PDFs, arrange them with the mouse or the arrow keys (Shift for fine 0.1 mm moves), then press Print.
Keyboard shortcuts: Ctrl+Q quits, arrow keys move the selected block.
Compatible label cartridges
| Reference | Label type | Color / Printing | Dimensions / Packaging | Supported by LabelAssister |
|---|---|---|---|---|
| DK-44205 | Removable paper | Black on white | 62 mm x 30.48 m | Yes |
| DK-22212 | Continuous film | Black on white | 62 mm x 15.24 m | Yes |
| DK-11218 | Pre-cut labels (round) | Black on white | Diam. 24 mm (1,000 labels) | No |
| DK-11209 | Address labels | Black on white | 29 x 62 mm (800 labels) | No |
| DK-22225 | Continuous paper | Black on white | 38 mm x 30.48 m | Yes |
| DK-22223 | Continuous paper | Black on white | 50 mm x 30.48 m | Yes |
| DK-N55224 | Continuous paper adhesive-free | Black on white | 54 mm x 30.5 m | Yes |
| DK-22205 | Continuous paper | Black on white | 62 mm x 30.48 m | Yes |
| DK-11219 | Pre-cut labels (round) | Black on white | Diam. 12 mm (1,200 labels) | No |
| DK-11204 | Pre-cut labels | Black on white | 17 x 54 mm (400 labels) | Yes |
| DK-22210 | Continuous paper | Black on white | 29 mm x 30.48 m | Yes |
| DK-11202 | Shipping labels | Black on white | 62 x 100 mm (300 labels) | Yes |
| DK-11201 | Pre-cut labels | Black on white | 29 x 90 mm (400 labels) | Yes |
| DK-44605 | Continuous paper | Yellow | 62 mm x 30.48 m | Yes |
| DK-11221 | Pre-cut labels (square) | Black on white | 23 x 23 mm (1,000 labels) | Yes |
| DK-11203 | Pre-cut labels | Black on white | 17 x 87 mm (300 labels) | Yes |
| DK-22214 | Continuous paper | Black on white | 12 mm x 30.48 m | Yes |
| DK-22113 | Continuous film | Black on transparent | 62 mm x 15.24 m | Yes |
| DK-22606 | Continuous film | Black on yellow | 62 mm x 15.24 m | Yes |
| DK-22211 | Continuous paper | White (white labels) | 29 mm x 15.24 m | Yes |
| DK-11208 | Pre-cut labels | Black on white | 38 x 90 mm (400 labels) | Yes |
| DK-11207 | CD/DVD labels | Black on white | Diam. 58 mm (100 labels) | No |
Labels are matched by size, not by reference number. Continuous rolls of
12/17/24/29/38/50/54/58/62 mm and the die-cut sizes handled by
brother_ql (17x54, 17x87, 23x23, 29x42, 29x90, 38x90, 62x29, 62x100…)
are supported; round and CD/DVD labels are not.
Configuration
Preferences (default label size, font, grid, language) are stored with
QSettings in ~/.config/LabelAssister/LabelAssister.conf, following the
XDG convention.