Skip to main content

PYSX

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.

Install

Use Python 3.14 or newer and install pysx-framework from PyPI:

python -m pip install 'pysx-framework==0.7.0'

Or add it to a uv project with uv add 'pysx-framework==0.7.0'. The Python import remains pysx. Follow the quickstart to run your first application.

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:

Python counter example with PYSX template syntax highlighting

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.7.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pysx-framework 0.7.0
File Size Uploaded Provenance Actions
pysx_framework-0.7.0.tar.gz 288.7 kB With provenance Details for pysx_framework-0.7.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for pysx-framework 0.7.0
File Interpreter ABI Platform Actions
pysx_framework-0.7.0-py3-none-any.whl Python 3 none any Details for pysx_framework-0.7.0-py3-none-any.whl

Total release size: 639.7 kB

Release files / pysx_framework-0.7.0.tar.gz

Download URL pysx_framework-0.7.0.tar.gz
Size 288.7 kB
Tags Source
SHA-256 checksum
How to use checksums
3b90c3b043dab0635d5e2e7b3c4d4f424146429a1f14f6be610070fc5af136b9
BLAKE2b-256 checksum
How to use checksums
0fce79a6e3bc70b011b6b8ff7ca12fe6304358f48ecaa70bec3b71662750c04f
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 log

Release files / pysx_framework-0.7.0-py3-none-any.whl

Download URL pysx_framework-0.7.0-py3-none-any.whl
Size 350.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
29d6708564e0be6d63a1fa536e784440ff0545feb2775d840d44824b986e6a3e
BLAKE2b-256 checksum
How to use checksums
9148ec81551949db13a7c906bdd819de415d8945bca767837183ad7a69422db9
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 log

Security for pysx-framework 0.7.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

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for pysx_framework-0.7.0.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 14, 2026.

Transparency log

A 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.

Release history Release notifications | RSS feed

This release

0.7.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page