Brody is a lightweight, expressive scripting language built for clarity and speed. Inspired by Python, Lua, and Bash — zero dependencies, pure C.
Brody strips away complexity and gives you a clean, expressive scripting environment that just works.
Pure C implementation. No external libraries, no package managers, no configuration files needed.
Readable and minimal syntax inspired by Python. If you know Python, you already know Brody.
First-class functions with full closure support and recursive calls out of the box.
Run shell commands directly from your script with the built-in shell command.
Split your code into modules and import them with a single import statement.
Math, string manipulation, list operations, type conversion — all built right in.
Variables automatically infer their type. int, float, string, bool, list — just write let.
Dynamic mixed-type lists with push, pop, join, slice, and full for-loop iteration.
Install as a real Debian package and use brody system-wide instantly.
A tree-walking interpreter written in pure C. Simple pipeline, fast execution.
Tokenizes your source text into a stream of typed tokens ready for parsing.
Builds an Abstract Syntax Tree via recursive descent — no external parser generators.
Node definitions and memory management. Typed union nodes for every expression.
Tree-walking evaluator with scoped environments. Executes AST nodes directly.
A few scripts that show off what Brody can do right out of the box.
Multiple ways to install Brody. Pick what works for your system.
$ wget brody_1.0.0_amd64.deb $ dpkg -i brody_1.0.0_amd64.deb $ brody myscript.br
$ git clone github.com/NickIBrody/brody $ cd brody && make $ make install
Follow development, report bugs, suggest features, or just say hi.