µNorman is a small programming language for AI agents. It has typed model calls, budgets in money and time, capabilities for tools, and dataflow concurrency. It's designed in the style of Norman Ramsey's Programming Languages: Build, Prove, and Compare, and implemented as a definitional interpreter in Rust.
Start with the guide: design/README.md. To point ask at a
real model, see LIVE-SETUP.md — including why an answer's
type is most of what you pay for on input, since its JSON schema is sent
with every ask.
cargo run -- examples/step5-examples.nrm # load a program and run its unit tests
cargo test # the design's example results and laws
No API key is needed for either command.
Status: research prototype. The guarantees are enforced when a program runs; the static type and effect system is designed but not built. Nothing has been benchmarked against a hand-written agent.
cargo run -- --live --trace examples/cp-agent.nrm # asks go to Claude; calls fail
cargo run -- --live --python python3 --trace examples/cp-agent.nrm # calls run real Python too
Warning:
--pythonhas no sandbox. It runs whatever code the model writes, with your user's permissions, on your machine. Use it only in a throwaway environment (a container or VM) you're willing to lose. A deadline that cuts a call kills the Python process, but nothing limits what the code can do before then.
µNorman is dual-licensed under either of
- the Apache License, Version 2.0 (LICENSE-APACHE), or
- the MIT License (LICENSE-MIT),
at your option. This is the convention of the Rust ecosystem, which the interpreter is written in. Apache-2.0 adds an explicit patent grant.
This covers the project's own work: the language design documents in
design/, the interpreter in src/, and the examples and
tests. The papers the design draws on are not distributed here; they're cited
in the Bibliography below, with links to where they're published.
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in this work, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.
Each paper is reviewed critically in
design/00-reading-notes.md, and the section
number there is given after each entry.
- Norman Ramsey. Seven Lessons in Program Design. Tufts University. The nine-step design process the whole project follows.
- Norman Ramsey. "An Imperative Core." Chapter 1 of Programming Languages: Build, Prove, and Compare. Cambridge University Press, 2022. https://www.cs.tufts.edu/~nr/build-prove-compare/. The model for µNorman's syntax, operational semantics, metatheory and definitional interpreter.
- Huanting Wang, Jingzhi Gong, Huawei Zhang, Jie Xu, and Zheng Wang. "AI Agentic Programming: A Survey of Techniques, Challenges, and Opportunities." arXiv:2508.11126v2, September 2025. https://arxiv.org/abs/2508.11126. Reading notes §1.
- Muyukani Kizito. "Turn: A Language for Agentic Computation." arXiv:2603.08755v1, March 2026. https://arxiv.org/abs/2603.08755. Reading notes §2.
- Stefan Szeider. "CP-Agent: Agentic Constraint Programming." In 3rd International Workshop on Large Language Models for Code (LLM4Code '26), Rio de Janeiro, 2026. https://doi.org/10.1145/3786181.3788711. Reading notes §3.
- Xinglin Wang, Zishen Liu, Shaoxiong Feng, Peiwen Yuan, Yiwei Li, Jiayi Shi, Yueqi Zhang, Chuyi Tan, Ji Zhang, Boyuan Pan, Yao Hu, and Kan Li. "On Time, Within Budget: Constraint-Driven Online Resource Allocation for Agentic Workflows." arXiv:2605.06110v2, May 2026. https://arxiv.org/abs/2605.06110. Reading notes §4.
- Ali Eslami and Jiangbo Yu. "A Control-Theoretic Foundation for Agentic Systems." arXiv:2603.10779v4, March 2026. https://arxiv.org/abs/2603.10779. Reading notes §5.
- Shubhi Asthana, Bing Zhang, Chad DeLuca, Hima Patel, and Ruchi Mahindru. "Runtime-Structured Task Decomposition for Agentic Coding Systems." In ACM Workshop on Agentic Software Engineering (ACM CAIS 2026), San Jose, 2026. arXiv:2605.15425v1. https://arxiv.org/abs/2605.15425. Reading notes §6.
- Yuanqi Du, Botao Yu, Tianyu Liu, Tony Shen, Junwu Chen, Jan G. Rittig,
Kunyang Sun, Yikun Zhang, et al. "Accelerating Scientific Discovery with
Autonomous Goal-evolving Agents." arXiv:2512.21782v2, March 2026.
https://arxiv.org/abs/2512.21782. Code at https://github.com/btyu/SAGA (MIT).
Reading notes §7; what it asks of µNorman is in
design/10-saga.md.