Skip to main content

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 desktop build target registered with jac-client's target registry, so jac build --client desktop and jac start --client desktop work once this package is installed.
  • The build pipeline:
    1. builds your cl codespace with the standard Vite pipeline (via WebTarget),
    2. 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),
    3. produces a single self-contained binary under .jac/client/desktop/.

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)

Source distribution for jac-desktop 0.2.2
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)

Table of built distributions (wheels) for jac-desktop 0.2.2
File Interpreter ABI Platform Actions
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.

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