Before you get busy coding a new feature, create an issue and discuss the details in the issue tracker.

Environment set-up

This guide assumes you have a GitHub account, as well as Python 3, virtualenv and Git installed. The guide is written for Bash, for Windows you can use for example Bash bundled with Git.

  • Fork pywebview
  • Clone your forked repository
git clone<username>/pywebview
cd pywebview
  • Create a virtual environment
virtualenv -p python3 venv
source venv/bin/activate
pip install -e .
pip install pytest
  • Hello world
python examples/

Development work-flow

  • Create and checkout a new branch
git checkout -b new-branch master
  • Make your changes

  • Run tests

pytest tests
  • Commit and push your work
git add .
git commit -m "Your commit message goes here"
git push -u origin new-branch


pywebview uses pytest for testing.

To run all the tests in the project root directory

 pytest tests

To run a specific test

pytest tests/

Tests cover only trivial mistakes, syntax errors, exceptions and such. In other words there is no functional testing. Each test verifies that a pywebview window can be opened and exited without errors when run under different scenarios. Sometimes test fail / stuck randomly. The cause of the issue is not known, any help on resolving random fails is greatly appreciated.