Verify

Don't take our word for it: check every file

Every Modkeel download is built from public source code on GitHub's machines, not on someone's computer, and each one can be traced to the exact commit that made it. This page shows how, with commands you can run.

Updated October 14, 2026. Covers the Modkeel app 0.1.4, the Modkeel Companion mod 0.3.0 and the Modkeel CLI 0.1.11.

At a glance

PieceSource (license)Built byHow to check a file
Modkeel app (Windows, macOS, Linux) Modkeel/app (MIT) release.yml SHA256SUMS, build provenance, VirusTotal report per file
Modkeel Companion (the mod) Modkeel/companion (MIT; lab data CC BY 4.0) release.yml SHA256SUMS, build provenance, rebuild it byte for byte, VirusTotal report per jar
Modkeel CLI (pip install modkeel, also the app's engine) Modkeel/modkeel (MIT) release.yml, uploaded to PyPI by Trusted Publishing PyPI provenance attestation

The app installers

Each release on the releases page is built for all three systems by one workflow run from the tagged commit.

  1. Checksum. Compare the file with the release's SHA256SUMS:
    sha256sum Modkeel_0.1.4_linux_amd64.AppImage
    certutil -hashfile Modkeel_0.1.4_windows_x64-setup.exe SHA256   # Windows
  2. Provenance. GitHub signs a record of which repository, workflow and commit built each file. With the GitHub CLI:
    gh attestation verify Modkeel_0.1.4_windows_x64-setup.exe -R Modkeel/app
    It fails if a single byte of the file differs from what the workflow built.
  3. Antivirus. The release notes list every file's VirusTotal result, whatever it says, with a link to the full report. The files are rescanned weekly and the table updated, so a false positive that an engine fixes disappears from it.

Updates are signed with the app's own update key; the installed app refuses an update whose signature does not match the public key built into it (src-tauri/tauri.conf.json).

The engine inside. The app does the work through the Modkeel CLI, the same one on PyPI at the version engine/requirements.txt pins. On Windows it runs inside python.org's embeddable Python, whose files are signed by the Python Software Foundation, rather than as one packed executable.

Why Windows or an antivirus may warn

The installers are not yet signed with a Microsoft or Apple certificate. Windows shows "Windows protected your PC" for any unsigned program it has not seen often (More info > Run anyway), and machine-learning antivirus engines sometimes flag unsigned installers. For 0.1.4, one engine of 70 flagged the Windows installer as a "potentially unwanted" program (Sophos, Generic ML PUA): a guess from the file's shape, not a known threat. None of the 40 programs and libraries inside it is flagged by Sophos; you can see every one in the report. The checks above are how you know the file is the one built from the public code.

The Companion mod

Jars on the releases page carry the same checksum and provenance (gh attestation verify <jar> -R Modkeel/companion). The mod's build is also reproducible: from the tagged source, with the JDK the workflow uses, you get the same bytes.

git clone https://github.com/Modkeel/companion && cd companion
git checkout v0.3.0
python build.py --all
sha256sum build/release/*.jar      # same as the release's SHA256SUMS

Before a release goes public, the maintainer rebuilds it this way and compares it with the GitHub build; if one byte differs, it is not published. The mod has no mixins (it does not patch the game's code).

The CLI on PyPI

PyPI accepts modkeel uploads only from the release workflow of Modkeel/modkeel (Trusted Publishing: no password or token exists to steal), and stores a signed attestation of which workflow made each file. To check one:

pip install pypi-attestations
python -m pypi_attestations verify pypi --repository https://github.com/Modkeel/modkeel \
    pypi:modkeel-0.1.11-py3-none-any.whl

It prints OK when the file on PyPI was built by that repository.

What each one connects to

Public history and scans

Found something?

Security issues: see SECURITY.md in the app or the Companion. Anything else: support.