jac-desktop
Jac-native desktop target for Jac: a desktop app is one
jac nacompiled binary + the OS's own web engine - no Rust toolchain, no
PyInstaller, no separate process.
What you get
- A
desktopbuild target registered withjac-client's target registry, sojac build --client desktopandjac start --client desktopwork once this package is installed. - The build pipeline:
- builds your
clcodespace with the standard Vite pipeline (viaWebTarget), - compiles a native host (
na) that embeds CPython to serve that bundle on a loopback port and renders it in the OS-native webview (WebKitGTK on Linux / WKWebView on macOS / WebView2 on Windows), - produces a single self-contained binary under
.jac/client/desktop/.
- builds your
The native webview binding + build tooling live under
jac_desktop/native/webview/ (see its README for
the phase-by-phase design and the dependency-free test suite).
Install
pip install jac-client jac-desktop
Building a desktop app needs the OS web engine + a C toolchain so the native host
can link libwebview.so (built on first use). On Debian/Ubuntu:
sudo ./jac_desktop/native/webview/install_webkit_deps.sh
# (build-essential, pkg-config, libgtk-3-dev, libwebkit2gtk-4.1-dev)
Project flow
jac create --use fullstack my-app # or any project with a cl codespace
cd my-app
jac build --client desktop # -> .jac/client/desktop/<app> (single binary)
jac start --client desktop # build + launch the native window
Window geometry + app identity come from [plugins.desktop] in jac.toml:
[plugins.desktop]
name = "my-app"
[plugins.desktop.window]
title = "My App"
width = 1000
height = 700
Status
jac build --client desktop produces a working, self-contained native desktop
binary that renders your cl UI. The host embeds CPython (it serves the bundle
and is where sv runs in-process). Remaining: wiring the sv codespace/walkers
onto the embedded interpreter, HMR dev mode, and per-OS packaging/signing - see
issue #6436.
Metadata
Release files for jac-desktop 0.2.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| jac_desktop-0.2.2.tar.gz | 110.1 kB | Without provenance | Details for jac_desktop-0.2.2.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| jac_desktop-0.2.2-py3-none-any.whl | Python 3 | none | any | Details for jac_desktop-0.2.2-py3-none-any.whl |
Total release size: 409.5 kB
Release files / jac_desktop-0.2.2.tar.gz
| Download URL | jac_desktop-0.2.2.tar.gz |
|---|---|
| Size | 110.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
4fb676decd084a30a1563ae7b57d2103a555ecaed55a88cf42f131a98bf9aa57
|
|
BLAKE2b-256 checksum How to use checksums |
5db902338b021437b059380f007aef9698d1263227995799dd4a2c280d08aa23
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Release files / jac_desktop-0.2.2-py3-none-any.whl
| Download URL | jac_desktop-0.2.2-py3-none-any.whl |
|---|---|
| Size | 299.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
548b72e7753fdc374718372373bbb046fa69a0c12025b941421480bb89c906ba
|
|
BLAKE2b-256 checksum How to use checksums |
b6110a9a699982b0a9ad10f8fe597910c4523359deaedfb7d19ecdc88685488a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Security for jac-desktop 0.2.2
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
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.