About QZ Tray
QZ Tray enables secure raw printing and scanning from a web browser to local printers (including thermal, label, and receipt printers) via a small background tray application and a WebSocket connection.
QZ Tray enables secure raw printing and scanning from a web browser to local printers (including thermal, label, and receipt printers) via a small background tray application and a WebSocket connectio
QZ Tray enables secure raw printing and scanning from a web browser to local printers (including thermal, label, and receipt printers) via a small background tray application and a WebSocket connection.
2026-09-11
Features
- Switch to OpenJDK 25 for the main app #1216
- Switch to OpenJFX 27 for HTML printing #1216
- Switch to Apache Ivy for dependency management #1216
- Add LocalNetworkAccess detection examples #1441
- Add detailed printer crawling to the log files printer.details.debug=true #830
- Add API to fetch app details qz.api.getVersion({ details: true }) #1497
- Linux: Prompt for CUPS install when missing #1393
- Linux: Add support for Firefox Flatpak #1476
- Linux: Improve dark/light mode handling #1509
- Linux: Improve desktop scale factor support #1509
- Theming: Switch to formdev/DarkLaf #1216
Fixes
- WebSocket: Suppress notifications for idle timeouts #691
- API: Harden qz.websocket.isActive() #1458
- macOS: Fix XML parsing bug for when offline #1444
- Windows: Fix backwards compatibility issues with Windows 7 #435
- Support printers with leading spaces: #1464
- PDF: Fix printing of PDF annotations: #1481
Company Branded
- Add more provisioning options: https://qz.io/docs/company-branded#provisioning
- Add support for dark-mode "About" logos #1513
- Fix handling of unicode characters: #1469, #1511
- Fix dist.minimal #1474
- Fix security.wss.httpsonly #1482
- Improve security.wss.alloworigin to support multiple origins #1477
- Clean up duplicate cert entries #1490
Maintenance
- Chrome: Remove browser modification for qz:launch #1452
- Add regression tests for critical META-INF/services #1453
- WebSocket: Increase default header size for incoming connections #1460
- HTML: Fix parsing of WebKit version #1437
Security
- Windows: Sign NSIS libraries #436
- Hardening: Add security.print.tohost toggle #1479
- Hardening: Guard against traversing into file junctions #1487
- Hardening: Add Basic Constraints to CA SSL cert #1492
- Hardening: Restrict URI launches to sane flags #1493
- Bump dependent libs, JDK
Full Changelog: v2.2.6...v2.3.0
| Publisher | QZ Industries, LLC |
|---|---|
| Version | 2.3.0 |
| Release date | 2026-09-11 |
| License | LGPL-2.1 |
| Installer type | nullsoft |
| Architecture | x64, arm64 |
| Package ID | QZIndustries.QZTray |
| Admin rights | Required |
| Install scope | All users |
winget install --id=QZIndustries.QZTray -ewinget upgrade --id=QZIndustries.QZTray -ewinget uninstall --id=QZIndustries.QZTray -e"qz-tray-2.3.0-x86_64.exe" /SYes. QZ Tray is free and open-source software released under the LGPL-2.1 license.
The latest version is 2.3.0, released on Sep 11, 2026.
The download button links to the official installer published on github.com, the same file Windows Package Manager installs. You can verify the downloaded file by comparing its SHA-256 checksum with 7a44a50f679f0a1dab6679e6c22158dd335511074f5fcc1b208b6f9caf711ba7.
QZ Tray runs on Windows and is available for 64-bit (x64), ARM64 systems.
Run the offline installer with "qz-tray-2.3.0-x86_64.exe" /S, or install it with Windows Package Manager: winget install --id=QZIndustries.QZTray -e --silent.
Open Settings › Apps › Installed apps, find QZ Tray and select Uninstall. From the command line, run winget uninstall --id=QZIndustries.QZTray -e.