Project discontinued (v2.1.5)Mojic is discontinued. v2.1.5 is the final patch to the GitHub repository.The maintainer lost access to the npm account (forgotten password, and the recovery passcode file was lost during a Linux migration), so This makes the
npm install mojic currently fails with a 404 — the published @notamitgamer/mojic dependency can no longer be patched.To keep using it, install from source instead:mojic command available globally, same as an npm install would.Key features
- AES-256-CTR PRNG — a cryptographically secure PRNG (seeded via Scrypt) drives shuffling and polymorphism
- Polymorphic keywords — common C keywords (
int,void,return) map to emojis that change every time they appear, based on PRNG state — frequency analysis doesn’t work - XOR whitening — raw data (whitespace, variable names) is XORed with the AES keystream before encoding, so repeating patterns like 4-space indentation never produce the same emoji sequence twice
- Base-1024 compression — non-keyword code is compressed with a custom scheme (5 bytes → 4 emojis) to keep file size manageable
- Integrity sealed — every file ends with an HMAC-SHA256 signature; tampering triggers an immediate
FILE_TAMPEREDerror - Moon Header Protocol — metadata (salt + auth check) is encoded with a Moon/Clock phase alphabet (
🌑🌒🕐), so an incorrect password is detected instantly, before decryption even starts - Stream architecture — built on Node.js
Transformstreams for large files with minimal memory footprint
Get started
Copyright © 2025–2026 Amit Dutta