Skip to main content

English 简体中文

RenMori

Full-data protection for commercial Ren'Py visual novels. RenMori takes an already-built Ren'Py 8.x distribution and produces a protected one: every asset — scripts, sprites, CGs, audio, video, fonts, translations, and configuration — is packed into an encrypted container and decrypted only inside the running engine. Off-the-shelf unpackers and decompilers, and the agents that merely call them, fail outright, and every build differs so no single tool works across games.

A game that runs on the player's machine can never be made uncrackable — the engine must read its own assets, so the keys ship with it. RenMori does not claim otherwise; it raises extraction from "run a tool" to dedicated, per-title, per-version expert effort. The honest threat model is in docs/threat-model.md.

Chinese: README.zh-CN.md.


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

  1. Build your game in the Ren'Py launcher (Build Distributions). RenMori runs on that output and never touches your source.

  2. Protect the build — the input is the built folder, or the .zip the 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.

  3. Verify the result (usable as a CI gate):

    renmori verify ./dist/MyGame-1.0-pc-protected
    
  4. Ship the protected folder as your release (renmori.rmc + renmori.rpe together). 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: docs/usage.md and examples/renmori.toml.


2. Documentation

A hosted docs site is coming soon; until then the links below point at the sources in this repository. (Each page also has a *.zh-CN.md Chinese version.)

Understand it

Protect your game

Automate in CI

Ship


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 docs/threat-model.md.

Full terms and FAQ: (website coming soon).

Metadata

Release files for renmori 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for renmori 1.0.0
File Size Uploaded Provenance Actions
renmori-1.0.0.tar.gz 47.3 kB With provenance Details for renmori-1.0.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for renmori 1.0.0
File Interpreter ABI Platform Actions
renmori-1.0.0-py3-none-any.whl Python 3 none any Details for renmori-1.0.0-py3-none-any.whl

Total release size: 89.5 kB

Release files / renmori-1.0.0.tar.gz

Download URL renmori-1.0.0.tar.gz
Size 47.3 kB
Tags Source
SHA-256 checksum
How to use checksums
9db95db88e5b20b59077c591ab4056b7dd11956071552175d06176d99a11d0f1
BLAKE2b-256 checksum
How to use checksums
bc4f5ca6d25e1b9d00c3b0a645e961cece2248b20c1c42c8dc49f40bb359e412
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 30, 2026.

Transparency log

Release files / renmori-1.0.0-py3-none-any.whl

Download URL renmori-1.0.0-py3-none-any.whl
Size 42.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b0bb2e80ea06519909939cf90940703ef620bd3302bb3e10d2aa6244568644e8
BLAKE2b-256 checksum
How to use checksums
57c70d9cf5a12cdc534e9b74b3a9178b1373180ed04b028c3e374e2370d65dd9
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 30, 2026.

Transparency log

Security for renmori 1.0.0

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.

Select from 2 files

Attestation for renmori-1.0.0.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 30, 2026.

Transparency log

A 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.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page