renmori verify
renmori verify uses the protected build's own renmori-manifest.json to check whether the build has been modified since protection, whether any file required to run it is missing, and whether plaintext scripts or archives that could be extracted directly remain on disk. It only reads files and modifies nothing, so it can be run manually before release or used as a gate step in a CI pipeline.
Syntax
Checks
Except for a missing build manifest, which ends the command immediately, the results of the checks are collected and reported together. If any check fails, the command lists all problems and exits with code 1.
The container hash check detects the following: the container was replaced, truncated or corrupted in transit after protection, or the build manifest comes from a different protection run. The plaintext leftover check covers the cache/ directory, because the .rpyb files in that directory contain the compiled bytecode of the scripts.
Out of scope
verify is a static file check; the following are outside its scope:
- It does not run the game or decrypt the container, so it cannot confirm that every asset can be read correctly by the engine. For end-to-end verification, use
tools/verify_in_renpy.pyfrom the repository, which loads the protected build in a real Ren'Py SDK - It does not check files outside
game/, such as the per-platform launchers and the runtime inlib/ - It does not check non-script files kept on disk by
excludeorkeep_on_disk; these files exist as plaintext by design - It does not judge whether the protection strength used by the build meets release requirements; the protection strength is recorded in the
strengthfield of the manifest and can be checked separately by the pipeline
Output
Progress output goes to stderr, and the final JSON line goes to stdout.
Verification passed:
Verification failed:
Build manifest missing:
For the meaning of the fields and exit codes, see Output, Build Manifest and Exit Codes.
Exit codes
Examples
Verify manually before release:
Use as a gate in CI, printing only JSON:
Decide in a shell script whether to proceed with the upload based on the result:
No further changes should be made to the build between protect and verify. If the content needs adjusting, run protect again from a fresh distribution build or the backup instead of modifying the protected directory.