The repository or configuration that created this release differ from a previous release. View details.
pyside6-scintilla
Permissively-licensed PySide6 bindings for the Scintilla code editor component.
Status
See GitHub Issues for what's done and what's next.
Why this exists
The standard way to use Scintilla from Python + Qt is QScintilla (Riverbank Computing) — but it's a PyQt6 binding, with no PySide6 equivalent. Like PyQt6, it's also GPLv3 or commercially licensed.
Scintilla itself is licensed under the Historical Permission Notice and Disclaimer — a permissive license with no copyleft. This project aims to expose that permissive core directly to PySide6 users.
Goals
pyside6-scintilla aims to be:
- MIT licensed — usable in open-source or closed-source projects freely
- PySide6 native — built with shiboken6, integrating naturally with PySide6 widgets
- A faithful, low-level binding of Scintilla's
ScintillaEditBasewidget — not a reimplementation of QScintilla's higher-level API - Available as pre-built wheels for Linux (x86_64, aarch64), Windows (x86_64), and macOS (arm64, x86_64)
- Not affiliated with Riverbank Computing or the QScintilla project
Installation
Install from PyPI:
pip install pyside6-scintilla
PySide6-Essentials 6.11.x is installed automatically as a dependency; the
wheels bundle everything else ScintillaEditBase needs at runtime. Each
release is built for, and pinned to, one PySide6 minor (its binding libraries
aren't ABI-compatible across minors), so on another PySide6 minor pip picks
the release built for it, or refuses the install, rather than installing a
wheel that fails to import. Essentials
provides the whole PySide6 import namespace — only QtCore, QtGui and
QtWidgets are used here, so the ~175 MB of PySide6-Addons (Qt WebEngine,
Qt3D, QtCharts …) is left out. Install PySide6 yourself if you want them.
To build from source instead (e.g. for development), see
docs/development/build.md
for prerequisites (Qt 6.11 with Qt6Core5Compat, a C++17 compiler) and
platform-specific setup.
examples/highlighting/lexilla_highlighting/ uses
lexilla as a dev dependency, installed
from PyPI like any other package.
Usage
from PySide6.QtWidgets import QApplication
from pyside6_scintilla import ScintillaEdit
app = QApplication([])
editor = ScintillaEdit()
editor.setText("hello, world")
editor.show()
app.exec()
ScintillaEdit exposes a typed method per Scintilla message (e.g.
setText(), textLength(), gotoLine()) on top of ScintillaEditBase's
raw .send()/.sends() message API — the same SCI_* messages as the C
interface, not a QScintilla-style high-level API. See
examples/simple_scintilla_edit/
for a complete example (line-number margin, "Go to Line", block
selection/editing), or
examples/simple_scintilla_base_edit/
for the lower-level send/sends API.
Versioning
Version numbers follow <Scintilla version>.<binding revision> — e.g. 5.6.3.0
is binding revision 0 for Scintilla 5.6.3. The binding revision increments
for releases of this package that don't correspond to a new Scintilla version
(bug fixes, new API surface, CI changes, etc.), and resets to 0 when Scintilla
itself releases a new version.
Documentation
Full docs: https://borco.github.io/scintilla-py/. pyside6-scintilla lives in
the scintilla-py repo, next to
lexilla, under
packages/pyside6-scintilla/.
| Doc | Contents |
|---|---|
| docs/pyside6-scintilla/alternatives.md | How this compares to Monaco-based Qt bindings and other line-numbers + block-edit widgets |
| docs/pyside6-scintilla/auditing.md | How to verify the vendored Scintilla source matches upstream |
| docs/pyside6-scintilla/bindings.md | How the shiboken6 bindings are built, generated files, and the Scintilla-update procedure |
| docs/development/build.md | Build prerequisites, local build/rebuild, wheels, and publishing |
| docs/development/documenting.md | How the docs site is built, and how to add or update a page |
| docs/specs/ | Design specifications and action plans for in-progress and planned work |
| docs/development/mission.md | Project background, goals, and design decisions |
| docs/development/testpypi.md | Setting up TestPyPI trusted publishing |
| examples/ | Standalone example apps, including ones showing lexilla in use |
| GitHub Issues | Planned and in-progress work |
| Project board | Roadmap |
Development tools
Development scripts, run with uv run python <path> from the repo root (or
via the top-level Makefile):
| Script | Purpose |
|---|---|
| generate_scintilla_edit.py | Generates the typed ScintillaEdit class from Scintilla.iface (make scintilla-generate) |
| generate_pyi.py | Regenerates the .pyi type stub for _pyside6_scintilla (make scintilla-stubs) |
| check_docs_sync.py | Verifies shared content blocks stay in sync between each package's README and its docs page |
| clean_window_corners.py | One-off cleanup for Windows window screenshots used in docs |
License
src/scintilla/— HPND License (Scintilla, copyright Neil Hodgson)- Everything else — MIT License
Metadata
Release files for pyside6-scintilla 5.6.3.10
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Change of provenance
The repository or configuration that created these release files differ from that of a previous release.
We recommend inspecting the repository and configuration before proceeding. View details.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pyside6_scintilla-5.6.3.10.tar.gz | 2.0 MB | With provenance | Details for pyside6_scintilla-5.6.3.10.tar.gz |
Built distributions (wheels)
Total release size: 11.4 MB
Release files / pyside6_scintilla-5.6.3.10.tar.gz
Change of provenance
This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.
We recommend inspecting the repository and configuration before proceeding. View details.
| Download URL | pyside6_scintilla-5.6.3.10.tar.gz |
|---|---|
| Size | 2.0 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
972bf3a190bcc27803a39d270fd22c7eb0f9cce352861483dc3283a7ac6b6746
|
|
BLAKE2b-256 checksum How to use checksums |
6036d7d7267662c780e303b44688e978141c5ae787270596299b04f6d944d5e3
|
| 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 Nov 3, 2026.
Transparency logRelease files / pyside6_scintilla-5.6.3.10-cp311-abi3-win_amd64.whl
Change of provenance
This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.
We recommend inspecting the repository and configuration before proceeding. View details.
| Download URL | pyside6_scintilla-5.6.3.10-cp311-abi3-win_amd64.whl |
|---|---|
| Size | 1.4 MB |
| Tags | CPython 3.11 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
f33c81642bd3afb2bd0206826674812a89967dd52d421822e3496e04bf2a7172
|
|
BLAKE2b-256 checksum How to use checksums |
74449f95e5ee709ddc29f6b0ebd02f99c970585d930ce3f145b1561b3dd47540
|
| 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 Nov 3, 2026.
Transparency logRelease files / pyside6_scintilla-5.6.3.10-cp311-abi3-manylinux_2_38_aarch64.manylinux_2_39_aarch64.whl
Change of provenance
This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.
We recommend inspecting the repository and configuration before proceeding. View details.
| Download URL | pyside6_scintilla-5.6.3.10-cp311-abi3-manylinux_2_38_aarch64.manylinux_2_39_aarch64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.11 Linux glibc 2.38+ ARM64 Linux glibc 2.39+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
136941e642408f664dc5578aeb63dcc61ace10cb984820a7b3e33bc5983514f2
|
|
BLAKE2b-256 checksum How to use checksums |
b14ef1a7526ed2db267cbb42debcaaebe845ce56f44da167b3777a72ea85c99f
|
| 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 Nov 3, 2026.
Transparency logRelease files / pyside6_scintilla-5.6.3.10-cp311-abi3-manylinux_2_34_x86_64.whl
Change of provenance
This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.
We recommend inspecting the repository and configuration before proceeding. View details.
| Download URL | pyside6_scintilla-5.6.3.10-cp311-abi3-manylinux_2_34_x86_64.whl |
|---|---|
| Size | 1.2 MB |
| Tags | CPython 3.11 Linux glibc 2.34+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
07a6e3b1d18bee18aca2ca7d667caaf6db2faf7b3e2e1cf3593382765a5d42f3
|
|
BLAKE2b-256 checksum How to use checksums |
b455209ab0469a97ba2bef4eca084dcbdd9a0b3e04e593b769a8510b0f964a3c
|
| 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 Nov 3, 2026.
Transparency logRelease files / pyside6_scintilla-5.6.3.10-cp311-abi3-macosx_13_0_x86_64.whl
Change of provenance
This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.
We recommend inspecting the repository and configuration before proceeding. View details.
| Download URL | pyside6_scintilla-5.6.3.10-cp311-abi3-macosx_13_0_x86_64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.11 abi3 macOS 13.0+ x86-64 |
|
SHA-256 checksum How to use checksums |
74e87276a349de4b59c90e28d3f63559895ecd62be340a5fba4c3755ce8e7138
|
|
BLAKE2b-256 checksum How to use checksums |
2235781533c834810e270de80e0f9deaf89473f19dfb4f41a41c6983ac45e1aa
|
| 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 Nov 3, 2026.
Transparency logRelease files / pyside6_scintilla-5.6.3.10-cp311-abi3-macosx_13_0_arm64.whl
Change of provenance
This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.
We recommend inspecting the repository and configuration before proceeding. View details.
| Download URL | pyside6_scintilla-5.6.3.10-cp311-abi3-macosx_13_0_arm64.whl |
|---|---|
| Size | 2.8 MB |
| Tags | CPython 3.11 abi3 macOS 13.0+ ARM64 |
|
SHA-256 checksum How to use checksums |
826e845e059931d583daf3f175ea24f925982cafbb673a26437df0117d19b8b7
|
|
BLAKE2b-256 checksum How to use checksums |
ce5cfaad5b651f8c9b5275e6bbac45705e0f1e79e341d9677ef5fd74c0bf2466
|
| 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 Nov 3, 2026.
Transparency logSecurity for pyside6-scintilla 5.6.3.10
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.
Change of provenance
The repository and configuration that created this release differ from a previous release.
While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.
Repository
- Removed 5.6.3.9 github.com/borco/pyside6-scintilla
- Added 5.6.3.10 github.com/borco/scintilla-py
Attestation for pyside6_scintilla-5.6.3.10.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 Nov 3, 2026.
Transparency logA 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.