Quick scripts without Python's footguns. One file, no build, no imports -- it reads the way you'd describe the work out loud. No truthy/falsy, no float surprises, errors that teach. Install from PyPI.
Designed so an LLM (or a human in a hurry) can write a correct script the first time -- and get a teaching error the rare time it doesn't.
is greater than, is at least, for each, where, sort by. No ==, !=, >=, <= to fumble.
No truthy/falsy. "5" + 3 is an error. 5 is "5" is an error. if 0 then is an error. Nothing silently coerces.
0.1 + 0.2 is exactly 0.3. One number type -- no binary-float papercuts.
Only nothing. A missing key returns nothing; a misspelled field is a hard error with a "did you mean" hint.
let is forever; var opts into change. Mutation is a choice you make on purpose.
where, sort by, take, map, group by, summarize -- bare names inside resolve to record fields.
Every error names the line, the offending value, and a one-line hint. No stack-trace archaeology.
--check-json emits structured { line, message, hint } so a model can self-correct before it ever runs the script.
cr8script ships the scaffolding to wire it into an agent: a grammar sheet, a structured self-correction loop, and a typed planning layer between prompt and code.
LLMS.md is a condensed grammar + rules reference written for a model to read first. AGENTS.md adds a system-prompt template and tool definitions.
--check-json returns structured diagnostics the model fixes against, then runs. A broken-to-fixed worked example ships in examples/agent_loop/.
LLM_MAP.md defines a typed planning-graph layer that can sit between the prompt and the generated .cr8 -- plan first, emit code second.
A single-file interpreter you can read in an afternoon. The language is independent of Python -- only the bootstrap isn't.
cr8script.py is a ~3k-line lexer, parser, tree-walking evaluator, REPL, and static checker. Python 3.9+.pip install cr8script, then cr8script --example tour for the language tour or cr8script for the REPL.math, http, time, json, and csv modules, plus top-level helpers like sum, average, keys, and assert..cr8 files, backed by a standalone linter.