{"id":13448269,"url":"https://github.com/r0x0r/pywebview","last_synced_at":"2026-07-11T02:25:49.139Z","repository":{"id":23541734,"uuid":"26908699","full_name":"r0x0r/pywebview","owner":"r0x0r","description":"Build GUI for your Python program with JavaScript, HTML, and CSS","archived":false,"fork":false,"pushed_at":"2026-05-15T21:36:36.000Z","size":33997,"stargazers_count":5941,"open_issues_count":12,"forks_count":629,"subscribers_count":65,"default_branch":"master","last_synced_at":"2026-07-10T15:22:57.240Z","etag":null,"topics":["cef","cocoa","gtk","gui","html","javascript","linux","osx","python","qt","webkit","windows"],"latest_commit_sha":null,"homepage":"https://pywebview.flowrl.com","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/r0x0r.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"docs/contributing/README.md","funding":".github/funding.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":"r0x0r","patreon":"pywebview","open_collective":"pywebview","ko_fi":null,"tidelift":null,"community_bridge":null,"liberapay":null,"issuehunt":null,"otechie":null,"custom":null}},"created_at":"2014-11-20T11:05:46.000Z","updated_at":"2026-07-09T08:09:49.000Z","dependencies_parsed_at":"2024-01-05T10:09:40.754Z","dependency_job_id":"fcaa6ebd-9f75-425b-8aaa-1aa5935ef77d","html_url":"https://github.com/r0x0r/pywebview","commit_stats":{"total_commits":1707,"total_committers":136,"mean_commits":"12.551470588235293","dds":0.6631517281780902,"last_synced_commit":"869c7d1469d5784c22ccd1b59d64ea19d83791cc"},"previous_names":[],"tags_count":77,"template":false,"template_full_name":null,"purl":"pkg:github/r0x0r/pywebview","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r0x0r%2Fpywebview","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r0x0r%2Fpywebview/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r0x0r%2Fpywebview/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r0x0r%2Fpywebview/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/r0x0r","download_url":"https://codeload.github.com/r0x0r/pywebview/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/r0x0r%2Fpywebview/sbom","scorecard":{"id":136287,"data":{"date":"2025-08-04","repo":{"name":"github.com/r0x0r/pywebview","commit":"69c7e33054a007495191badfdd68d659ea3b3bac"},"scorecard":{"version":"v5.2.1-28-gc1d103a9","commit":"c1d103a9bb9f635ec7260bf9aa0699466fa4be0e"},"score":3.8,"checks":[{"name":"Maintained","score":10,"reason":"30 commit(s) and 25 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#maintained"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#dangerous-workflow"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#packaging"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/docs.yaml:1","Warn: no topLevel permission defined: .github/workflows/stale.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#token-permissions"}},{"name":"Code-Review","score":2,"reason":"Found 7/30 approved changesets -- score normalized to 2","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#code-review"}},{"name":"Security-Policy","score":10,"reason":"security policy file detected","details":["Info: security policy file detected: SECURITY.md:1","Info: Found linked content: SECURITY.md:1","Info: Found disclosure, vulnerability, and/or timelines in security policy: SECURITY.md:1","Info: Found text in security policy: SECURITY.md:1"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#security-policy"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#cii-best-practices"}},{"name":"Binary-Artifacts","score":2,"reason":"binaries present in source code","details":["Warn: binary detected: webview/lib/Microsoft.Web.WebView2.Core.dll:1","Warn: binary detected: webview/lib/Microsoft.Web.WebView2.WinForms.dll:1","Warn: binary detected: webview/lib/WebBrowserInterop.x64.dll:1","Warn: binary detected: webview/lib/WebBrowserInterop.x86.dll:1","Warn: binary detected: webview/lib/pywebview-android.jar:1","Warn: binary detected: webview/lib/runtimes/win-arm64/native/WebView2Loader.dll:1","Warn: binary detected: webview/lib/runtimes/win-x64/native/WebView2Loader.dll:1","Warn: binary detected: webview/lib/runtimes/win-x86/native/WebView2Loader.dll:1"],"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: BSD 3-Clause \"New\" or \"Revised\" License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#license"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":3,"reason":"branch protection is not maximal on development and all release branches","details":["Info: 'allow deletion' disabled on branch 'master'","Info: 'force pushes' disabled on branch 'master'","Warn: branch 'master' does not require approvers","Warn: codeowners review is not required on branch 'master'","Warn: no status checks found to merge onto branch 'master'"],"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#branch-protection"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#fuzzing"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/docs.yaml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/r0x0r/pywebview/docs.yaml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/stale.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/r0x0r/pywebview/stale.yml/master?enable=pin","Info:   0 out of   2 GitHub-owned GitHubAction dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#pinned-dependencies"}},{"name":"SAST","score":0,"reason":"SAST tool is not run on all commits -- score normalized to 0","details":["Warn: 0 commits out of 7 are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"26 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-grv7-fg5c-xmjg","Warn: Project is vulnerable to: GHSA-67mh-4wv8-2f99","Warn: Project is vulnerable to: GHSA-jchw-25xp-jwwc","Warn: Project is vulnerable to: GHSA-cxjh-pqwp-8mfp","Warn: Project is vulnerable to: GHSA-7wwv-vh3v-89cq","Warn: Project is vulnerable to: GHSA-c7qv-q95q-8v27","Warn: Project is vulnerable to: GHSA-4www-5p9h-95mh","Warn: Project is vulnerable to: GHSA-9gqv-wp59-fq42","Warn: Project is vulnerable to: GHSA-952p-6rrq-rcjv","Warn: Project is vulnerable to: GHSA-c76h-2ccp-4975","Warn: Project is vulnerable to: GHSA-cxrh-j4jr-qwg3","Warn: Project is vulnerable to: GHSA-vg6x-rcgg-rjx6","Warn: Project is vulnerable to: GHSA-x574-m823-4x7w","Warn: Project is vulnerable to: GHSA-4r4m-qw57-chr8","Warn: Project is vulnerable to: GHSA-xcj6-pq6g-qj4x","Warn: Project is vulnerable to: GHSA-356w-63v5-8wf4","Warn: Project is vulnerable to: GHSA-859w-5945-r5v3","Warn: Project is vulnerable to: PYSEC-2018-66 / GHSA-562c-5r94-xh97","Warn: Project is vulnerable to: PYSEC-2019-179 / GHSA-5wv5-4vpf-pj6m","Warn: Project is vulnerable to: PYSEC-2023-62 / GHSA-m2qf-hxjv-5gpq","Warn: Project is vulnerable to: PYSEC-2021-129 / GHSA-qhx9-7hx7-cp4r","Warn: Project is vulnerable to: PYSEC-2022-227 / GHSA-xhp9-4947-rq78","Warn: Project is vulnerable to: GHSA-3ww4-gg4f-jr7f","Warn: Project is vulnerable to: GHSA-9v9h-cgj8-h64p","Warn: Project is vulnerable to: PYSEC-2021-62 / GHSA-hggm-jpg3-v476","Warn: Project is vulnerable to: PYSEC-2017-8 / GHSA-q3cj-2r34-2cwc"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/c1d103a9bb9f635ec7260bf9aa0699466fa4be0e/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-08-16T06:38:58.597Z","repository_id":23541734,"created_at":"2025-08-16T06:38:58.597Z","updated_at":"2025-08-16T06:38:58.597Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35349259,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cef","cocoa","gtk","gui","html","javascript","linux","osx","python","qt","webkit","windows"],"created_at":"2024-07-31T05:01:40.579Z","updated_at":"2026-07-11T02:25:49.105Z","avatar_url":"https://github.com/r0x0r.png","language":"Python","funding_links":["https://github.com/sponsors/r0x0r","https://patreon.com/pywebview","https://opencollective.com/pywebview","https://www.patreon.com/bePatron?u=13226105","https://opencollective.com/pywebview/donate"],"categories":["Python","👓 Alternatives to the [Electron.js](https://electronjs.org) ⚛","图形用户界面","Others","Awesome Python","USER INTERFACE"],"sub_categories":["Python","GUI"],"readme":"\u003cp align='center'\u003e\u003cimg src='logo/logo.png' width=480 alt='pywebview logo'/\u003e\u003c/p\u003e\n\n\u003cp align='center'\u003e\u003ca href=\"https://opencollective.com/pywebview\" alt=\"Financial Contributors on Open Collective\"\u003e\u003cimg src=\"https://opencollective.com/pywebview/all/badge.svg?label=financial+contributors\" /\u003e\u003c/a\u003e \u003cimg src=\"https://badge.fury.io/py/pywebview.svg\" alt=\"PyPI version\" /\u003e \u003cimg src=\"https://img.shields.io/pypi/dm/pywebview\" alt=\"PyPI downloads\" /\u003e \u003ca href=\"https://ci.appveyor.com/project/r0x0r/pywebview\"\u003e\u003cimg src=\"https://ci.appveyor.com/api/projects/status/nu6mbhvbq03wudxd/branch/master?svg=true\" alt=\"Build status\" /\u003e\u003c/a\u003e\n\nhttps://pywebview.flowrl.com\n\u003c/p\u003e\n\n_pywebview_ is a lightweight native webview wrapper that allows to display HTML content in its own native GUI window. It gives you power of web technologies in your desktop application, hiding the fact that GUI is browser based. _pywebview_ ships with a built-in HTTP server, DOM support in Python and window management functionality.\n\n_pywebview_ is available for Windows, macOS, Linux (GTK or QT) and Android. It uses native GUI for creating a web component window: WinForms on Windows, Cocoa on macOS and QT or GTK on Linux. If you choose to freeze your application, _pywebview_ does not bundle a heavy GUI toolkit or web renderer with it keeping the executable size small.\n\n_pywebview_ provides advanced features like window manipulation functionality, event system, built-in HTTP server, native GUI elements like application menu and various dialogs, two way communication between Javascript ↔ Python and DOM support.\n\n_pywebview_ is created by [Roman Sirokov](https://github.com/r0x0r/).\n\n# Getting started\n\n## Install\n\n``` bash\npip install pywebview\n```\n\n_You might need additional libraries.  Refer to the [installation](https://pywebview.flowrl.com/guide/installation) page for details._\n\n## Hello world\n\n``` python\nimport webview\nwebview.create_window('Hello world', 'https://pywebview.flowrl.com/hello')\nwebview.start()\n```\n\nExplore _pywebview_ further by reading [documentation](https://pywebview.flowrl.com/guide), exploring [examples](https://pywebview.flowrl.com/examples) or [contributing](https://pywebview.flowrl.com/contributing). If React is your thing, get started right away with [React boilerplate](https://github.com/r0x0r/pywebview-react-boilerplate).\n\n# Contribution\n\n### Consulting services\n\nIf your company is looking for support with _pywebview_ or needs a hand with full-stack development, the author of _pywebview_ is available for hire. As a VAT-registered EU based professional, I specialize in a wide range of technologies, including JavaScript/TypeScript, React/Vue, Python, GIS, SQL databases, API integration, CI/CD pipelines and cloud solutions. For inquiries about availability and pricing details, reach out to roman@maumau.fi.\n\n### Code Contributors\n\nThis project thrives thanks to the contributions of our community. [[Learn how to contribute](docs/contributing/README.md)].\n\n\u003ca href=\"https://github.com/r0x0r/pywebview/graphs/contributors\"\u003e\u003cimg src=\"https://opencollective.com/pywebview/contributors.svg?width=890\u0026button=false\" /\u003e\u003c/a\u003e\n\n### Financial Contributors\n\nBecome a financial contributor and help us sustain our community. More donation options are outlined on the [Donating](https://pywebview.flowrl.com/contributing/donating.html) page.\n\n[![Github Sponsor](/docs/.vuepress/public/github_sponsor_button.png)](https://github.com/sponsors/r0x0r)\n\n[![Patreon](/docs/.vuepress/public/patreon.png)](https://www.patreon.com/bePatron?u=13226105)\n\n[![Open Collective](/docs/.vuepress/public/opencollective.png)](https://opencollective.com/pywebview/donate)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr0x0r%2Fpywebview","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fr0x0r%2Fpywebview","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fr0x0r%2Fpywebview/lists"}