> get started_

Get started with Neper

Clone the repository, build the compiler once, then hand your coding agent one prompt. The same machine produces Windows, Linux and macOS executables, and none of it needs a third-party toolchain.

30 seconds: clone, prompt, cross compile. Narrated with a Windows voice.
No third-party toolchains. For any OS.

No LLVM, no MSVC or MinGW, no Xcode or macOS SDK, no system linker, no Docker, no sysroot. Neper's own emitter and linker write the Windows PE, the Linux ELF and the macOS Mach-O directly, so a Windows laptop builds for all three.

1. Get Neper

$ git clone https://github.com/nebosa-company/neper
$ cd neper
$ scripts/build-selfhost.ps1   # Windows; on Linux and macOS: scripts/build-selfhost.sh

The script prints the path of the compiler it built. Put that folder on your PATH as neper.

The one place a third-party tool appears: the very first compiler is built from a small C99 bootstrap, so that one step needs a C compiler on the machine. After it, Neper compiles itself, and building programs, for any target, uses nothing else.

2. Run a first program

use e.io

fn main(args: []str) -> err {
    try io.print("Hello, Neper")
    ret ok
}
$ neper run hello.e
Hello, Neper

3. Submit this prompt

Neper is built for coding agents. Open Claude Code, Codex, OpenCode or any agent in the cloned repository and submit:

Read docs/llm-neper-card.md first. Then write a Neper command-line
program, wordfreq.e, that reads a text file and prints its ten most
frequent words. Add @test functions, run them, and fix every
diagnostic by its code and span. Then build it for x64 windows,
x64 linux and aarch64 macos with emit-executable.

The card is the compiler-issued summary of the grammar and traps, so the model starts from the language as it is today. Diagnostics carry a stable code, an exact span and the expected type, which is what lets the agent repair its own mistakes.

4. Cross compile for any OS

$ neper emit-executable wordfreq.e . x64 windows   wordfreq.exe   --release
$ neper emit-executable wordfreq.e . x64 linux     wordfreq-linux --release
$ neper emit-executable wordfreq.e . aarch64 macos wordfreq-mac   --release
# also: aarch64 linux, x64 macos, wasm32 wasi

That is the whole build system. The output builds from one machine, with no SDK to download for the target, no cross compiler to configure and no container. Copy the file to the target machine and run it.

What this does not claim: a macOS binary is ad-hoc signed and not notarized, and you still need a Mac, or a runner, to run it. The macOS notes list what is verified. Ten languages, one window measures what other languages need to do the same.

Where next

Try it in your browser

Edit Neper and compile it to WebAssembly on the page, with the compiler itself running as WebAssembly. Nothing to install.

Source on GitHub

MIT licensed. Star it, fork it, read the compiler.

The README

Language shape, the standard library and build-from-source notes.

The LLM card

What your agent reads first: grammar, keywords, traps.

Show what you built

Tell us what you made. Discord is the fastest place to ask.