A simple module for making HTML GUI applications with python3

gui, html, javascript, electron, asyncio, tornado, websocket
pip install guy==0.7.6


GUY is a py3 module, which let you quickly release a GUI (html/js) for yours python (>=3.5) scripts, targetting any platforms ... and android too.

A simple guy's app code, could be :

from guy import Guy

class Simple(Guy):
    """<button onclick="self.test()">test</button>"""

    async def test(self):
        print("Your name is", await self.js.prompt("What's your name ?") )

if __name__ == "__main__":

A guy's app can be runned in 3 modes :

  • can reuse a chrome browser (in app mode), on the host. To keep the minimal footprint. (app mode)
  • can embbed its CEF (like electron) (thanks cefpython3), to provide all, to the users. (cef mode)
  • can act as a classical web server. Any browser can be a client (server mode)

A guy's app can be released as :

  • a simple py3 file, with only guy dependancy (app mode & server mode)), or with guy+cefpython3 dependancies (cef mode))
  • a freezed executable (pyinstaller compliant) (all modes)
  • a pip/package app (all modes)
  • an apk for android (with buildozer/kivy) (app mode only)

Read the Guy's DOCUMENTATION !

Available on :

Here is a demo (sources), of a simple guy's app (server mode).

Here is a demo (sources), of a guy's app serving a vuejs/sfc UI.

Here is a simple guy's app (app mode):

On Ubuntu
On Android10

Join the chat at https://gitter.im/guy-python/community

If you want to build guy app, without any html/js/css knowlegments, you can try gtag : it's a guy sub module which let you build GUI/GUY app in more classical/python3 way.