Small before powerful
A compact language surface is easier to learn, audit, and maintain. New features must earn their place.
A language for the code you need to trust
Nomo is a small, explicit programming language for systems tools, CLIs, and small services. It compiles to readable C99, then to a native executable you can inspect.
package app.main import std.io fn main() -> void { io.println("Hello, Nomo")}Language design
Nomo aims for code that remains understandable from source file to emitted C. Its constraints are part of the product, not temporary omissions.
A compact language surface is easier to learn, audit, and maintain. New features must earn their place.
Control flow, mutation, and failure stay visible. The code should tell you what the program can do.
Recoverable failure travels through Result. Programming defects stop through panic instead of hidden unwinding.
Nomo emits readable C99 before linking, keeping generated code and the native toolchain in reach.
nomo fmt Stable source formattingnomo check Parse and type-checknomo build Emit C99 and linknomo run Build and executePublished July 20, 2026
Early software. Expect sharp edges, fast changes, and an evolving standard library.
Release notesnomo-v0.0.0-20260721120555-aarch64-apple-darwin.tar.gz nomo-v0.0.0-20260721120555-x86_64-apple-darwin.tar.gz nomo-v0.0.0-20260721120555-x86_64-unknown-linux-gnu.tar.gz nomo-v0.0.0-20260721120555-x86_64-pc-windows-msvc.zip Nomo grows through executable examples, tests, and small RFCs. The repositories are public before the language is finished.