Reactive interfaces, written in Python.
PYSX brings the feel of a reactive web app to Python. Write your interface with readable, indentation-based templates, keep state in signals, and let the page update as that state changes.
Python runs on the server. A small JavaScript client connects the browser to your application, sends user events, and applies the updates it receives.
How it works
The initial HTTP response contains the rendered page. The browser attaches to that same graph, preserving edits made before attachment. Each session gets its own reactive state. Signals hold values, derived signals compute from them, and effects track dependencies automatically. When a user clicks a button or edits a field, Python handles the event and sends changes back to the page.
Templates use Python 3.14+ t-strings to keep markup and live values together:
Changing count updates the displayed value. The browser applies targeted patches,
and keyed lists preserve unchanged rows so focus, selection, and scroll survive
updates.
Build with PYSX
- Reactive state: signals, derived values, batched updates, and writable views into structured data.
- Readable interfaces: t-string templates and composable, typed native elements.
- Live forms: two-way bindings, native validation, reset and submit handling, and caret-preserving server corrections.
- Async applications: owned resources, timers and server push update pages without another browser event.
- Document continuity: open pages restore compatible UI state after server loss. See recovery.
- Hosting: shared standalone and optional ASGI serving, request context, static assets and lifecycle hooks. See hosting.
- Scoped styling: typed styled bases, inherited rules, live CSS variables and isolated themes. See the styling guide.
- Editor support: VSCode syntax highlighting and advisory template diagnostics.
Playgrounds
Copy runnable starter applications into your own project, then run them the ordinary way:
pysx-playground # all of them, into ./playgrounds
pysx-playground counter # just one
pysx --app playgrounds.counter # run it
pysx --app playgrounds.counter --watch # edit the file and watch it reload
counter is the smallest useful live application, recovery a draft that survives a restart
with the tab open, and durable declared state reconstructed through a fresh application
graph.
Re-running pysx-playground <name> restores that playground to its shipped source and
clears its state, so it is also the reset.
Supported platforms
Python 3.14 or newer. The quality matrix has passed on Linux, macOS and Windows. See compatibility and support for tested versions, deployment requirements and maintenance windows.
PYSX is available under the MIT license.
Explore
Start with the quickstart, work through the interactive tutorial, or browse the API index.
- Examples — run the demos and explore reactive state and live forms.
- Tests — run the test suite and quality checks.
- Editor support — install the VSCode extension.
For the technical details, see the template grammar, native elements and bindings, and wire protocol.
Metadata
Release files for pysx-framework 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| pysx_framework-0.1.0-py3-none-any.whl | Python 3 | none | any | Details for pysx_framework-0.1.0-py3-none-any.whl |
Release files / pysx_framework-0.1.0-py3-none-any.whl
| Download URL | pysx_framework-0.1.0-py3-none-any.whl |
|---|---|
| Size | 350.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
6673f4819075909d4e7fc28093425bcf1ffab96b8a6c7d0b00a127bf534a65a2
|
|
BLAKE2b-256 checksum How to use checksums |
c5b207570bd92b2bbc3e8bc486a8e755d4233346a8f7745abdf2b9fe6e976c69
|
| 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 14, 2026.
Transparency logSecurity for pysx-framework 0.1.0
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.
Full provenance
1 file in this release has been uploaded with provenance metadata.
Attestation for pysx_framework-0.1.0-py3-none-any.whl
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 14, 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.