Skip to main content

Create native web wrappers or write hybrid Desktop applications on Linux, with Python, JavaScript, HTML, and Blink

Project description

Just Another Desktop Environment Application Kit ( JAK )

Build web wrappers or hybrid web/desktop applications on Linux, using Python/JavaScript/HTML5/CSS3 powered by QTWebengine. Using web technologies we can create beautiful User Interfaces using a diverse amount of available library's and frameworks.

Codacy Badge Build Status PyPI version Gitter chat release License

Packaging status

Getting Started

  • Prerequisites
  • Python >= 3.8
  • PySide2 >= 5.14 or PyQt5 >= 5.13
  • desktop-file-utils, for application.desktop creation: optional
git clone

cd Jade-Application-Kit

Install using pip

pip3 install -r requirements.txt


pip3 install Jade-Application-Kit

Install manually

~/.virtualenv/python3 install


sudo python3 install

Install in Manjaro

sudo pacman -S python-jade-application-kit

Environment variables

JAK defaults to using PySide2 to use PyQt5 set this environment variable, this is read before the config file.


Config file

Setting bindings via config file, system wide is fetched last.

  • User file location = /username/.config/jak.conf
  • System wide location = /etc/jak.conf

Config file contents.



Please read for details on code of conduct, and the process for submitting pull requests.

Using from the command line

With the command line utility you can create a self-contained web wrapper's in a question of seconds.

jak-cli --url https://my-web-app-url  --title Mytitle

Creating Desktop files in the user directory ( ~/.local/share/applications ).

jak-cli --url --title Slack --cde --desc "Collaboration software for connected teams."

More options.

jak-cli --help

Using Python

#!/usr/bin/env python
from JAK.Application import JWebApp

url = "https://my-web-app-url"

webapp = JWebApp(title="Mytitle", online=True, web_contents=url)

URL Rules:

  • We can match domains by starting letters or using Python regex.
  • Block Rules: blocks any domain in the list.
  • WebBrowserWindow Rules: deny any domain in the list.
  • WebBrowserTab Rules: only allow domains in the list, if empty all are allowed, if they start with https:// they open in a new window.

Looking for wrapper's examples? Check Branches starting with wrapper/.



SemVer is used for versioning. For the versions available, see the tags on this repository.


See also the list of contributors who participated in this project.




Missing yours?, let me know.

Known Issues

  • Does not like NVIDIA cards and as such falls back to software rendering, so if you use one of them you have to do without GPU acceleration. Only PCI devices.
  • As of Python 3.8 PySide2 is not compatible =, until this is fixed upstream set bindings via environment variable or config file.


Jade Application Kit is covered by the GPL license.

Copyright (c) 2015-2019, Vitor Lopes. All rights reserved.

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for Jade-Application-Kit, version 3.5.6
Filename, size File type Python version Upload date Hashes
Filename, size Jade_Application_Kit-3.5.6-py3-none-any.whl (33.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size Jade-Application-Kit-3.5.6.tar.gz (65.6 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page