This free tool flags PyQt imports and PyQt-only APIs that need changes for LGPL PySide6, with a fix for each line.

Try it freeFull version · $149 once →
What you get: The whole workspace in one pass plus an exportable migration report per file for release or licence sign-off
Updated 2026-09-29 · ReadyStack
Flags PyQt5/PyQt6 imports (GPL v3 or a paid Riverbank licence) and the PyQt-only APIs that break under LGPL PySide6: pyqtSignal, pyqtSlot, uic.loadUi, QRegExp, exec_, sip. One fix per line. Runs entirely in your browser — nothing is uploaded.
Same engine as the VS Code extension, byte for byte.
Free for the file open in your editor - no key, no limit. The workspace sweep and the report ask for a key.
Open VSX (Cursor, VSCodium)Team? One key for every ReadyStack linter, 5 seats, $149 once
The whole workspace in one pass plus an exportable migration report per file for release or licence sign-off
One payment, one licence key for this tool. The key is shown right after payment.
Commercial PyQt licence from Riverbank Computing: 670 USD per developer (price page read 2026-09-29)
Buy the full version — $29Need more than this one? ReadyStack Pass opens all 679 files and 561 full versions — $29/month or $199/year. See the Pass →
· ReadyStack
Real numbers from this tool, line by line.

6 findings in one 24-line PyQt5 invoice window: that is what a Python developer shipping a closed-source desktop app gets before moving from PyQt5 to PySide6. The import line, pyqtSignal, uic.loadUi, QRegExp, pyqtSlot and exec_() all have to change.
PyQt5 and PyQt6 are dual-licensed by Riverbank Computing: GPL v3, or a commercial licence. Riverbank's price page (read 2026-09-29) lists the commercial licence at 670 USD per developer. If your app is closed source and you ship PyQt under the GPL, the GPL asks you to publish your source. PySide6, the Qt for Python binding from The Qt Company, is LGPL v3, which lets a closed-source app link to it dynamically.
The second clock is Qt itself. PyQt5 runs on Qt 5.15, and The Qt Company ended Qt 5.15 standard support on 2025-05-26; 5.15.19 was the last Qt 5.15 release. On 2026-09-29 that is 491 days without standard support.
The obvious port is a search for "PyQt5" and a replace with "PySide6". It fixes the imports and nothing else. PySide6 has no pyqtSignal, pyqtSlot or pyqtProperty (it has Signal, Slot and Property). It has no uic module, so uic.loadUi needs QUiLoader or pyside6-uic. It has no QVariant. Qt 6 removed QRegExp, QDesktopWidget and QFontMetrics.width, and moved QAction from QtWidgets to QtGui. The file may import cleanly and then fail on the first signal connection, often on a path the tests never run.
PySide6 Migration Lint reads 2 inputs, the .py source text and today's date, and runs 14 rules. Each finding gives the line number and the PySide6 replacement. Comments are ignored, so a note like "# was: from PyQt5 import ..." stays quiet.
On the sample file, dirty.py, it reports:
The ported clean.py returns 0 findings. The PyQt5 import finding also carries the Qt 5.15 day count for the date you enter, so a file checked on 2025-03-01 says standard support ends in 86 days.
pyqt5-import, pyqt6-import, pyqt-signal, pyqt-slot, pyqt-property, uic-loadui, sip-module, pyqt-version-const, qvariant, qregexp, qdesktopwidget, fontmetrics-width, qaction-qtwidgets and exec-underscore.
The free version checks one .py file at a time with all 14 rules, in VS Code or on the web page, with no key. The full version scans the whole workspace in one pass and exports a migration report per file for release or licence sign-off.
It does not rewrite code and it is not legal advice: it shows which lines still tie you to PyQt, so you can port them or keep paying for a commercial PyQt licence.
It reads 2 inputs, the .py source text and today's date, and runs 14 rules that flag every PyQt5 or PyQt6 import and every PyQt-only API such as pyqtSignal, pyqtSlot, uic.loadUi, QRegExp, sip and exec_(). Each finding names the line and the PySide6 replacement. A sample PyQt5 invoice window returns 6 findings.
Python developers and small software companies who ship a closed-source desktop application built on PyQt5 or PyQt6, and who want to move to LGPL PySide6 instead of paying for a commercial PyQt licence per developer. It also suits teams still on Qt 5.15, whose standard support ended on 2025-05-26.
A text replace fixes the import lines only. Names like pyqtSignal, pyqtSlot, pyqtProperty, uic.loadUi, QVariant and QRegExp do not exist in PySide6, and QAction moved to QtGui in Qt 6. The file then fails at import time or on the first signal, often on a path your tests never run.
Free, with no key: one .py file at a time, with both inputs (source text and date), all 14 rules, and a fix line for every finding, in VS Code or the free web version. The licence key adds the whole workspace in one pass and an exportable migration report per file for release or licence sign-off.
Riverbank Computing lists its commercial PyQt licence at 670 USD per developer (price page read 2026-09-29), and a closed-source app that ships PyQt under the GPL v3 must publish its source. PySide6 is LGPL v3 from The Qt Company. This lint shows which lines still tie you to PyQt before you choose.
One question, answered by the person who built it. Your email only if you want the answer sent.
Paste this code into your page. It runs in your visitor’s browser and stays up to date. Nothing your visitors type is stored.
For businesses: your name and logo instead of ours, and each visitor’s result + e-mail in your inbox (only when they tick consent) — Pro from $19/month. See Pro →
For a team or company: for an invoice with your company details, a quote or several licences, write to [email protected].
Fdroid Inclusion Policy check — check gradle for forbiddenThis free browser tool checks Gradle files for dependencies forbidden by the F-Droid Inclusion Policy and lists FOSS replacements.FreeFull version $29
Liquibase 5 license Check — find liquibase lines in your filesThis browser tool flags Liquibase Community 5.x lines in project and configuration files and shows a Flyway line for each.FreeFull version $29
Vivado xsim Migration — check your vhdl for freeCheck VHDL for Vivado xsim constructs GHDL rejects or needs flags for, including UNISIM, XPM and VHDL-2008. One payment, one licence key…FreeFull version $29GNU Global C/C++ .vscode Config PackPaste a .vscode file. The 21 rules name the line and the fix. Left is the line that loads silently, right is the line that works.FreeFull version $29
Intel HEX & S-record Image AuditPaste a .hex or .s19 firmware image. Every checksum is recomputed and every bad record, overlap, gap, missing EOF and stray line is named…FreeFull version $29Color-Blind Safe IntelliJ Plugin - 4 IDE Themes with Measured Syntax Contrast (Red-Green & Blue-Yellow)FreeReadyStack
Calculators, templates and deadlines for the rules that change every year — free in your browser.