CMRA — Creative Minimal Recursive Automaton language runtime
Project description
🐉 CMRA Language (Chimera)
"Where code breathes fire and flows like flame..."
CMRA (Chimera) is an esoteric programming language exploring reversible execution and direction control through a dragon-inspired syntax. Programs can soar up or dive down through code at runtime.
🔥 GitHub: Chimera418/cmra
🌐 Playground: cmra-esolang.vercel.app/playground.html
📚 Docs: cmra-esolang.vercel.app
📖 User Guide: GUIDE.md
🙌 Origin
CMRA began as a workshop project I attended by
Tushar Sadhwani during a college multifest. The
prototype we built is in prototype.py. For a non‑aliased baseline, see Tushar's
esolangs repository. You can also read his
blog at tush.ar.
This is a tiny side project made for fun and learning. If you build something cool or want
to improve the interpreter, feel free to reach out on
GitHub (@Chimera418) or Discord gamingchimera.
✨ Try it Online
🔥 Launch the Interactive Playground
Write and run CMRA code directly in your browser — no installation needed. Powered by Pyodide.
⚡ Installation & Quick Start
CMRA Esoteric Language Extension (VS Code / Cursor)
For the best developer experience, install the official IDE extension:
- Marketplace: Install directly from the VS Code Marketplace or Open VSX Registry. Works on both VS Code and Cursor!
- Manual Install: Download the
.vsixfrom GitHub Releases.
Standalone Windows Executable
Don't have Python installed? No problem!
Download the standalone cmra.exe from the latest GitHub Releases and add it to your PATH to run CMRA programs natively.
pip install (recommended)
# Install from PyPI:
pip install cmra
# Or install from source (development):
pip install -e .
# Now use `cmra` and `cmrash` from anywhere inside the venv:
cmra "test cases\test.cmra"
cmrash "test cases\test.cmrash"
No-install PowerShell wrapper
.\cmra.ps1 "test cases\test.cmra"
Run with Python directly
python -m cmra.cli "test cases\test.cmra"
python cmra.py "test cases cmra\test.cmra" # legacy single-file
python cmrash.py "test cases cmrash\test.cmrash"
🔱 The Twin Dragons
| Dragon | Entry point | Keywords |
|---|---|---|
| 🐲 Fire Dragon | cmra.py / src/cmra/fire.py |
bind roar sniff dive soar murmur |
| 🌑 Shadow Dragon | cmrash.py / src/cmra/shadow.py |
= print check reverse ; |
| 🐉 Ancient Wyrm | prototype.py |
Compact baseline, inline sniff only |
🐲 Language at a Glance
murmur Fire Dragon — count 0 to 5
i bind 0
flag bind 1
sniff i <= 5 : sniff flag == 0 : dive
flag bind 0
sniff flag == 0 : roar i
sniff flag == 0 : i bind i + 1
flag bind 1
sniff i <= 5 : sniff flag == 1 : soar
bind— assign variableroar— printsniff … : action— conditional (inline or block)dive/soar— set execution direction forward / reverse- No loop keyword — direction reversal + flag guards make loops
→ See GUIDE.md for the full walkthrough.
⚡ Execution Model
A global DIRECTION (1 or -1) steps through lines. soar reverses it; dive restores forward. When direction goes past the first or last line, the program ends. Block sniff/check enters at the first (forward) or last (reverse) line of the block.
🎮 Test Cases & Projects
# Test cases (pip-installed cmra)
cmra "test cases\test.cmra"
cmra "test cases\test_strings.cmra"
cmra "test cases\test_arith.cmra"
# Projects
cmra projects\calculator.cmra
cmra projects\countdown.cmra
cmra projects\fizzbuzz.cmra
cmra projects\story_adventure.cmra
Test cases live in test cases/ (.cmra) and test cases cmrash/ (.cmrash).
Projects live in projects/: calculator, countdown, fizzbuzz, story_adventure.
📦 File Inventory
| Path | Purpose |
|---|---|
src/cmra/ |
Installable Python package |
src/cmra/cli.py |
Entry point for the cmra command |
src/cmra/fire.py |
Fire Dragon interpreter |
src/cmra/shadow.py |
Shadow Dragon interpreter |
src/cmra/runner.py |
Shared dispatch logic |
cmra.py |
Legacy Fire Dragon single-file |
cmrash.py |
Legacy Shadow Dragon single-file |
prototype.py |
Original workshop prototype |
cmra.ps1 / cmra.bat |
No-install launchers |
pyproject.toml |
Package metadata (pip install) |
index.html + styles.css |
Static docs site |
playground.html |
Browser REPL (Pyodide) |
GUIDE.md |
Full user guide |
keybind.txt |
Fire ↔ Shadow keyword cheatsheet |
projects/ |
Showcase programs |
test cases/ |
Regression tests (.cmra) |
test cases cmrash/ |
Regression tests (.cmrash) |
📜 License
CMRA is a learning project. Use freely, learn deeply, code fiercely! 🔥
May your code burn bright and your loops reverse true! 🐉🔥
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cmra-0.1.1.tar.gz.
File metadata
- Download URL: cmra-0.1.1.tar.gz
- Upload date:
- Size: 11.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0bca69e709fb455c082bce62a0700c854ea78105654c3492271db52797d62aae
|
|
| MD5 |
1e7c97c4ae417c7c4d15b73ff6f10c8c
|
|
| BLAKE2b-256 |
9c52949bcfafe9b7384e771478d54a524d5a926d7b679550ff571ce654ba229c
|
File details
Details for the file cmra-0.1.1-py3-none-any.whl.
File metadata
- Download URL: cmra-0.1.1-py3-none-any.whl
- Upload date:
- Size: 11.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
127e288fefa3855a0d25e5337f4a2246ed482ef43998d2d4be0e22f61920d2ee
|
|
| MD5 |
40f27fc402b719b726f574089df98f46
|
|
| BLAKE2b-256 |
fa7847c69ac33da2dbfaf71826a06f77df2c562e33273261763eec06f64dfbb2
|