# cr8script > An English-shaped scripting language for LLMs and anyone who wants quick > scripts without Python's footguns. Single-file Python interpreter, decimal > numbers by default, immutable bindings, and pipelines on records that read > like SQL. No build, no imports, no install beyond Python 3.9+. cr8script is designed so a language model can write `.cr8` code correctly the first time. The language refuses Python idioms (no truthy/falsy, no silent type coercion, no `null`), and ships a static checker that emits structured `{ line, message, hint }` JSON for an agent's self-correction loop. ## Repository - [GitHub: LofiFren/cr8script](https://github.com/LofiFren/cr8script): the language repo. The interpreter is one file (`cr8script.py`). - [README.md](https://github.com/LofiFren/cr8script/blob/main/README.md): human-facing overview, quick start, principles, and a code sample. - [LLMS.md](https://github.com/LofiFren/cr8script/blob/main/LLMS.md): the canonical reference for any LLM asked to read or write `.cr8`. Hard rules, syntax cheat sheet, built-ins, pipelines, soft vs. hard keywords, idioms. ## How to write cr8script correctly - [Hard rules — DO NOT do these](https://github.com/LofiFren/cr8script/blob/main/LLMS.md#hard-rules--do-not-do-these): the refusals (no `def`, no `:`, no `==`, no truthy/falsy, no `null`, 1-based indexing). - [Syntax cheat sheet](https://github.com/LofiFren/cr8script/blob/main/LLMS.md#syntax-cheat-sheet): bindings, conditionals, loops, functions, records, lists, text, error handling. - [Pipelines](https://github.com/LofiFren/cr8script/blob/main/LLMS.md#pipelines): `where`, `sort by`, `take`, `map`, `group by`, `summarize`. Bare names auto-resolve to record fields inside pipeline stages. - [Built-ins (top-level)](https://github.com/LofiFren/cr8script/blob/main/LLMS.md#built-ins-top-level--no-imports): `show`, `length`, `sum`, `count`, `average`, `min`, `max`, `to_text`, `to_number`, `range`, `keys`, `type`, `assert`. - [Modules](https://github.com/LofiFren/cr8script/blob/main/LLMS.md#modules-accessed-as-modulemember): `math`, `time`, `http`, `json`, `csv`. No imports needed. - [Canonical idioms](https://github.com/LofiFren/cr8script/blob/main/LLMS.md#canonical-idioms): the preferred way to do common things. ## Examples - [examples/hello.cr8](https://github.com/LofiFren/cr8script/blob/main/examples/hello.cr8): three-line "hello, world". - [examples/tour.cr8](https://github.com/LofiFren/cr8script/blob/main/examples/tour.cr8): the language end-to-end — bindings, conditionals, loops, functions, records, pipelines, json/csv, error handling. - [examples/load_test.cr8](https://github.com/LofiFren/cr8script/blob/main/examples/load_test.cr8): an HTTP load tester written in cr8. - [examples/make_mindmap.cr8](https://github.com/LofiFren/cr8script/blob/main/examples/make_mindmap.cr8): the program that emits the mindmap on this site. ## Self-correction loop ``` python3 cr8script.py --check-json file.cr8 # static diagnostics, JSON python3 cr8script.py file.cr8 # run ``` `--check-json` returns an array of `{ line, message, hint }` objects. Iterate against the checker until it is empty, then run the file. The checker traces field accesses back to record literals and flags typos with edit-distance suggestions. ## Status v1.1. Single-file Python interpreter (~2.8k lines). Tree-walking evaluator. Ten golden tests pass. Out of scope for now: regex, file I/O, dates, imports, async. Not on the roadmap: classes (cr8script is values, not objects).