qtmonaco
Qt Monaco is a Python library for working with the Monaco Editor in Qt applications.
What it is and what it does
QTMonaco wraps the Monaco Editor—the same editor that powers VS Code—into a native Qt widget for Python applications. It provides syntax highlighting, code folding, find-and-replace, multiple cursors, and a minimap. The package includes a built-in Language Server Protocol client for Python via python-lsp-server, enabling advanced features like code completion and diagnostics.
The library is designed for developers building Qt applications (using PySide6 or PyQt6) who want a professional code editor embedded in their UI without building one from scratch. It handles the bridge between the web-based Monaco Editor and Qt's widget system, managing resources and exposing editor state through Qt signals and slots. Installation is low-friction—just the wheel plus two runtime dependencies—though you must supply a Qt framework yourself.
Use it for:
- Build a Python IDE or script editor within a Qt desktop application with syntax highlighting and LSP features.
- Create a code review or diff viewer that shows side-by-side comparisons with Monaco's rendering and theming.
- Embed a configuration or template editor in a scientific or engineering tool that needs language-aware editing.
- Develop a teaching tool or notebook interface where students write and run code in a familiar editor.
- Add a code snippet library or code generator UI to an existing Qt application.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Embeds the Monaco Editor (VS Code's editor) into Qt applications with syntax highlighting, code completion, and Language Server Protocol support.
Yes, with conditions. Install if you need a professional code editor in a Qt application and can accept Alpha-stage API stability. The license is unclear, so verify it matches your project's constraints before committing. Low install friction and active maintenance are in its favor; the small user base means less real-world battle-testing than mature packages.
Install
qtmonaco on PyPI
pip
pip install qtmonacouv
uv add qtmonacopoetry
poetry add qtmonacoInstalling qtmonaco
Before you install
Low friction: pure Python wheel with only two runtime dependencies. Active maintenance with recent commits. Alpha status means the API may shift, but installation itself is straightforward.
License in practice
License treatment is unclear—the fact sheet does not specify an SPDX identifier or raw license text. Verify the actual license before adopting in a commercial or restricted context.
Quickstart
pip install qtmonaco
from qtpy.QtWidgets import QApplication
from qtmonaco import Monaco
qapp = QApplication([])
widget = Monaco()
widget.set_language("python")
widget.set_text("print('hello')")
widget.show()
qapp.exec_()
Requires Python >=3.10 and either PySide6 or PyQt6 installed separately (not pulled in by default).
Verify before relying
- Whether the unclear license status has been resolved since the fact sheet was generated.
- Whether LSP support extends beyond Python (description says extended support is planned).
- Stability of the API given Alpha development status and whether breaking changes are expected.
- How many programming languages are actually supported by syntax highlighting.
Package facts
| License | not declared (unclear) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 2 — python-lsp-server, qtpy |
| Maintenance | actively maintained — 31 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 92,366/month — #13,455 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: qtmonaco-0.11.0-py3-none-any.whl
Tags
More Scientific/Engineering packages
NumPy provides an N-dimensional array object…
permissive · top 100 on PyPI
pandaspandas provides fast, flexible data structures…
permissive · top 100 on PyPI
scipyscipy provides numerical algorithms for…
permissive · top 100 on PyPI
scikit-learnscikit-learn provides a comprehensive Python…
permissive · top 1,000 on PyPI
dilldill extends Python's pickle module to…
permissive · top 1,000 on PyPI
multiprocessMultiprocess is an enhanced fork of Python's…
permissive · top 1,000 on PyPI
PySide6-EssentialsPySide6 Essentials provides Python bindings to…
copyleft · top 5,000 on PyPI
qtconsoleQtConsole is a Qt-based graphical console for…
permissive · top 5,000 on PyPI
streamlit-aceEmbeds an Ace code editor component into…
permissive · top 15,000 on PyPI
qasyncqasync integrates asyncio coroutines into…
permissive · top 15,000 on PyPI
PySide6PySide6 provides Python bindings to the Qt 6.0+…
copyleft · top 5,000 on PyPI
django-aceIntegrates the ACE code editor into Django…
permissive · top 15,000 on PyPI
QtPyQtPy provides a unified API for writing Qt…
permissive · top 5,000 on PyPI
streamlit-code-editorEmbeds an interactive code editor component…
unclear · top 15,000 on PyPI
PyQt6-WebEnginePyQt6-WebEngine provides Python bindings to…
copyleft · top 15,000 on PyPI
superqtProvides additional Qt widgets and UI…
permissive · top 15,000 on PyPI