Full-data protection for commercial Ren'Py visual novels — 100% free
RenMori takes a Ren'Py 8.x build and produces a protected distribution: every asset — scripts, sprites, CGs, audio, video, fonts, translations, and configuration — is packed into an encrypted container and decrypted only inside the running engine. A game that runs on the player's machine can never be made uncrackable, so RenMori maximizes the cost of extraction — off-the-shelf unpackers and most lazy agents fail outright — but it cannot stop an expert-level reverse. The honest threat model is here.
1. Install & use the CLI
Install
pip install renmori
renmori --version
Requires Python 3.9+ on the developer's machine (reading a renmori.toml
config needs 3.11+, or pip install tomli on older versions). cryptography is
pulled in automatically. To work on the source instead:
git clone https://github.com/MewBaka/RenMori.git
cd RenMori && pip install -e .
Protect a game
-
Build your game in the Ren'Py launcher (Build Distributions). RenMori runs on that output and never touches your source.
-
Protect the build — the input is the built folder, or the
.zipthe launcher made (it is unzipped for you):renmori protect ./dist/MyGame-1.0-pc -o ./dist/MyGame-1.0-pc-protected # or straight from the archive: renmori protect ./dist/MyGame-1.0-pc.zip
The first full protect downloads the closed plugin for your platform from the public release, verifies it, and caches it — no manual step. On a terminal it asks first; in CI it downloads automatically.
-
Verify the result (usable as a CI gate):
renmori verify ./dist/MyGame-1.0-pc-protected
-
Ship the protected folder as your release (
renmori.rmc+renmori.rpetogether). Don't re-run the Ren'Py launcher on it — that rebuilds from source and drops the protection.
The command is zero-config by default, prints a machine-readable JSON result line
for CI, and has clear exit codes. An optional renmori.toml controls chunk size,
an exclude list, lockdown, strength, and key sources. For the open-source
baseline format (no plugin, fully offline), pass --strength baseline. Full
reference: the CLI docs and
the renmori.toml example.
2. Documentation
The full documentation lives at renmori.mewbaka.cn — the key pages, in the order you'll need them:
Understand it
- Introduction — what RenMori is and what it protects
- Research — what already exists and why a new tool is needed
- Architecture — the full design, layer by layer
- Threat model — what it stops, and what it cannot
Protect your game
- Quick start — from a build to a protected release
- CLI reference —
protect/verify, flags, and output - Configuration — the
renmori.tomlfile - The plugin — baseline vs. full protection and the closed binary
Automate in CI
- CI & key management — pipelines, secrets, and a sample GitHub Actions workflow
Ship
- Steam release — overlay, DRM, and Steamworks
Internals & reference
3. Licensing
RenMori — the framework and tools, the closed plugin, and the runtime that ships
inside a game — is under the RenMori License 1.0:
LICENSE (Chinese: LICENSE.zh-CN.md).
- Free to use. Protecting any Ren'Py game, commercial or not, is free, and the RenMori runtime may be redistributed embedded in a released game at no charge.
- No resale. Selling RenMori itself or a modified version, or running a paid "encryption-as-a-service" with it, is not permitted.
- This is a source-available license, not an OSI open-source one, because the no-resale term cannot be expressed under a permissive license.
Third-party notices are in NOTICE (note the FFmpeg LGPL/GPL terms). No
warranty of unbreakability is given — see the license and the
threat model.
Full terms and developer guidance are on the docs site: disclaimer, contribution terms, and notes for developers.
For licensing questions or technical help, contact: team@mewbaka.cn
Metadata
Release files for renmori 1.2.6
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| renmori-1.2.6.tar.gz | 57.2 kB | With provenance | Details for renmori-1.2.6.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| renmori-1.2.6-py3-none-any.whl | Python 3 | none | any | Details for renmori-1.2.6-py3-none-any.whl |
Total release size: 107.6 kB
Release files / renmori-1.2.6.tar.gz
| Download URL | renmori-1.2.6.tar.gz |
|---|---|
| Size | 57.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9e82577d104861cf61c6000012ff7354be01f1a9d659a4986d6812dab10b626b
|
|
BLAKE2b-256 checksum How to use checksums |
1078df102f9fcdd289ec704793a018aba0ed0db1f007adc047e22c3d32030402
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logRelease files / renmori-1.2.6-py3-none-any.whl
| Download URL | renmori-1.2.6-py3-none-any.whl |
|---|---|
| Size | 50.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
05b0bdb385c8a6871b7adc3d0ca5e94afc341498081031d3bfefa7ecb14301e8
|
|
BLAKE2b-256 checksum How to use checksums |
3211fd22f829d263a948a80bf6e451a930a8b7212fd25abb76768f8c790181d6
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logSecurity for renmori 1.2.6
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for renmori-1.2.6.tar.gz
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Oct 31, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.