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
| Piece | Source (license) | Built by | How 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.
- 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 - Provenance. GitHub signs a record of which repository, workflow and commit built
each file. With the GitHub CLI:
It fails if a single byte of the file differs from what the workflow built.gh attestation verify Modkeel_0.1.4_windows_x64-setup.exe -R Modkeel/app - 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
- The Companion sends nothing unless you tick Help other players, and shows
every field first (privacy). On NeoForge and Forge the loader itself
checks the repository's
updates.jsonfor a newer version. - The CLI and the app talk to Modrinth and GitHub
to find and download mods; to Mojang, Fabric and NeoForge for the game's mappings and
loaders when a check needs them; to Prism Launcher's metadata when it makes a new instance; to Adoptium when a build needs a JDK you do not have; and
to
api.modkeel.com/v1/cfto look mods up on CurseForge (CurseForge's key cannot ship inside a download, so our server asks for you; it receives the JAR fingerprints and keeps only a rate-limit counter on a hash of your IP that changes daily). Sharing build results with Modkeel is off. - The app also reads
latest.jsonfrom its GitHub releases at start, to offer updates.
Public history and scans
- The code is developed in Modkeel's private workspace, next to its lab data, and each change to a public piece is copied to its repository as its own commit, with its date. Commits in Modkeel/app and Modkeel/companion are signed (GitHub shows them as Verified).
- CodeQL scans the app and the Companion on every push and weekly, and both publish their OpenSSF Scorecard.
- Each repository has an
ARCHITECTURE.md: what every folder and main file does, so a person or an AI assistant can read the code quickly. - Modkeel's code, tests and texts are written with Claude (Anthropic's AI), directed by its developer, who reviews them and tests every release in real games before it ships.
Found something?
Security issues: see SECURITY.md in
the app or
the Companion.
Anything else: support.