Skip to content

Getting started ​

Install neoc and run a first Lua script. Assumes a working CLI and basic Lua familiarity.

Installation ​

Pre-built binaries on GitHub Releases.

Linux / macOS ​

sh
curl -fsSL https://raw.githubusercontent.com/flying-dice/neoc/main/scripts/install.sh | bash

Downloads binary, places in $NEOC_INSTALL_DIR (default ~/.neoc/bin). Add to $PATH if needed.

Windows ​

powershell
irm https://raw.githubusercontent.com/flying-dice/neoc/main/scripts/install.ps1 | iex

From source ​

sh
cargo install --path .

Environment variables ​

NEOC_INSTALL_DIR : Install directory. Default: ~/.neoc/bin.

Running a script ​

Lua scripts are .lua files. The binary takes file paths or glob patterns, runs each match independently.

First script ​

lua
print("hello, neoc")
bash
neoc run hello.lua

Output: hello, neoc\n

Multiple scripts ​

bash
neoc run 'tests/**/*.test.lua'

Shell quoting prevents shell expansion; neoc expands the glob internally.

Execution model ​

Each script runs in its own LuaJIT VM. Runtime maintains a worker pool, dispatches scripts across it. Globals, locals, and userdata are private to each worker. Cross-worker state only via explicit std:workers surface.

See The sandboxing model for rationale and implications.

See also ​