"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
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.
🔥 Launch the Interactive Playground
Write and run CMRA code directly in your browser — no installation needed. Powered by Pyodide.
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. - Reliable Run command: Extension run uses
python -m cmra "<file>"by default (avoids global PATH issues). - Config override: Set
cmra.executablePathif you need a custom interpreter/command. - Diagnostics: Randomized dragon-themed diagnostics for
.cmra, concise=-style diagnostics for.cmrash.
Fire Dragon (.cmra)
Line 4: 'x' is but a myth in this realm.Hint: Bind it before you attempt to command it. 🐉Line 5: Fire Dragon rejects '=' in this chant.Hint: Use 'bind' for assignments in .cmra files.
Shadow Dragon (.cmrash)
Line 4: Undefined variable 'x'.Hint: Initialize it with '=' before using it.Line 5: Unexpected 'bind' in .cmrash.Hint: Use '=' for assignments.
Full catalog: cmra-vscode-extension/ERROR_MESSAGES.md
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.
# 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".\cmra.ps1 "test cases\test.cmra"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"| 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 |
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.
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 (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.cmraTest cases live in test cases/ (.cmra) and test cases cmrash/ (.cmrash).
Projects live in projects/: calculator, countdown, fizzbuzz, story_adventure.
| 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) |
CMRA is a learning project. Use freely, learn deeply, code fiercely! 🔥
May your code burn bright and your loops reverse true! 🐉🔥