Install NME on Windows, macOS, and Linux
You do not need to install anything to learn NME: needmoreeasy.com runs it in the browser. Install it when you want programs that save files, reach the network, or run without a browser.
NME turns your program into Python and runs it with Python, so a computer
needs two things: the nme command and Python 3.8 or newer.
Quick install
macOS and Linux — open Terminal and paste:
curl -fsSL https://needmoreeasy.com/install.sh | sh
Windows 10 and 11 — open PowerShell (press the Windows key, type
PowerShell, press Enter) and paste:
irm https://needmoreeasy.com/install.ps1 | iex
Either command downloads the prebuilt nme for your computer from the latest
GitHub release,
refuses it unless it matches the SHA-256 sum published with that release, and
adds its folder to PATH. On macOS and Linux that folder is ~/.nme/bin; on
Windows it is %LOCALAPPDATA%\nme\bin. Open a new terminal afterwards so
it can find nme.
At the end the installer says whether Python 3.8 or newer is already there. If
it is not, install it from python.org. On
Windows, keep the option that installs the py launcher. On Linux, your
package manager has it: sudo apt install python3, sudo dnf install python3,
or sudo pacman -S python.
Your first program:
nme --version
echo 'say Hello' > hello.nme
nme run hello
Expected version: nme 0.10.0. In PowerShell, write the file with
Set-Content hello.nme 'say Hello' instead of the echo line.
Update by running the same install command again. Uninstall by deleting
~/.nme (on Windows, %LOCALAPPDATA%\nme). On macOS and Linux, also delete
the two lines marked # NME in the start-up file the installer named
(~/.zshrc, ~/.bashrc, ~/.bash_profile, or ~/.profile). On Windows,
remove the folder from your user PATH under Settings → System → About →
Advanced system settings → Environment Variables.
Options. Put them before sh (for example
curl -fsSL https://needmoreeasy.com/install.sh | NME_VERSION=0.10.0 sh) or set
them with $env:NAME = 'value' in PowerShell before the install line:
NME_VERSION installs one particular version, NME_HOME installs somewhere
other than ~/.nme, and NME_NO_MODIFY_PATH=1 leaves PATH alone.
Download by hand
Every release
has one archive per computer, plus a SHA256SUMS file to check them against.
| Computer | Archive |
|---|---|
| Windows 10 or 11 (also Windows on ARM, through its built-in emulation) | nme-x86_64-pc-windows-msvc.zip |
| Mac with Apple silicon (M1 or later) | nme-aarch64-apple-darwin.tar.gz |
| Mac with an Intel processor | nme-x86_64-apple-darwin.tar.gz |
| Linux on x86-64 | nme-x86_64-unknown-linux-musl.tar.gz |
| Linux on 64-bit ARM (for example a Raspberry Pi 4 or 5 with a 64-bit system) | nme-aarch64-unknown-linux-musl.tar.gz |
Unpack it and put nme (on Windows, nme.exe) in a folder on your PATH.
The Linux builds are statically linked, so they run on any distribution.
On a Mac, a file downloaded with a web browser is marked as coming from the internet, and macOS refuses to open it because it is not signed by an Apple developer account. Clear that mark once, in the folder where you unpacked it:
xattr -d com.apple.quarantine nme
The install command above downloads with curl, which does not add the mark.
The archive also holds THIRD-PARTY-NOTICES.md and licenses/: the licences
of the open-source libraries compiled into nme.
Build from source
Build NME yourself to change the compiler, or on a computer with no prebuilt archive. You need Git, stable Rust with Cargo, and Python 3.8 or newer. Use the official Rust installer, Python downloads, and Git downloads. Pick your operating system below; each section is complete on its own.
Windows 11
- Install Git for Windows.
- Install Python from python.org. Keep the Python launcher (
py) enabled. - Download and run
rustup-init.exefrom the official Rust install page. Accept the stable MSVC toolchain. If asked, install Visual Studio C++ Build Tools (free Microsoft components Cargo needs to build). - Close and reopen PowerShell, then run. To use
nme native, open the Developer PowerShell for Visual Studio socl.exeis onPATH; ordinary PowerShell is enough for the CPython commands:
git clone https://github.com/needmoretruth/needmoreeasy.git
cd needmoreeasy
cargo install --path crates/nme-cli --locked
$env:Path = "$HOME\.cargo\bin;$env:Path"
nme --version
Expected NME version: 0.10.0. The $env:Path line makes the
just-installed command available in the current PowerShell session.
Set up PATH for future terminals. If a new PowerShell still cannot find
nme, add %USERPROFILE%\.cargo\bin to your user PATH. You do not need to
reinstall; & "$HOME\.cargo\bin\nme.exe" --version verifies the installed
binary directly.
First NME run (from the needmoreeasy folder where you cloned the
repository). NME chooses the Windows py launcher automatically:
nme run examples\hello-sentence
Common errors.
nmeis not recognized:~\.cargo\binis not on your userPATH. Add%USERPROFILE%\.cargo\binthere, or confirm the binary exists with& "$HOME\.cargo\bin\nme.exe" --version.- The Cargo build fails with a link or compiler error: the Visual Studio C++
Build Tools from step 3 are missing. Run
rustup-init.exeagain and choose to install them. nme runcannot find Python: Python 3.8 or newer must be installed with the Python launcher (py) enabled (step 2).
Windows 10
Windows 10 uses the same install as Windows 11. The complete steps are repeated here so this section can be followed on its own:
- Install Git for Windows.
- Install Python from python.org. Keep the Python launcher (
py) enabled. - Download and run
rustup-init.exefrom the official Rust install page. Accept the stable MSVC toolchain. If asked, install Visual Studio C++ Build Tools (free Microsoft components Cargo needs to build). - Close and reopen PowerShell, then run. To use
nme native, open the Developer PowerShell for Visual Studio socl.exeis onPATH; ordinary PowerShell is enough for the CPython commands:
git clone https://github.com/needmoretruth/needmoreeasy.git
cd needmoreeasy
cargo install --path crates/nme-cli --locked
$env:Path = "$HOME\.cargo\bin;$env:Path"
nme --version
Expected NME version: 0.10.0. The $env:Path line makes the
just-installed command available in the current PowerShell session.
Set up PATH for future terminals. If a new PowerShell still cannot find
nme, add %USERPROFILE%\.cargo\bin to your user PATH. You do not need to
reinstall; & "$HOME\.cargo\bin\nme.exe" --version verifies the installed
binary directly.
First NME run (from the needmoreeasy folder where you cloned the
repository). NME chooses the Windows py launcher automatically:
nme run examples\hello-sentence
Common errors.
nmeis not recognized:~\.cargo\binis not on your userPATH. Add%USERPROFILE%\.cargo\binthere, or confirm the binary exists with& "$HOME\.cargo\bin\nme.exe" --version.- The Cargo build fails with a link or compiler error: the Visual Studio C++
Build Tools from step 3 are missing. Run
rustup-init.exeagain and choose to install them. nme runcannot find Python: Python 3.8 or newer must be installed with the Python launcher (py) enabled (step 2).
Older Windows (7 and 8)
The official path is Windows 10 or 11. Current versions of the rustup installer and the Visual Studio C++ Build Tools require Windows 10 or newer, so building the NME command-line tool from source is not supported on Windows 7 or 8.
What still works: NME programs become plain Python, and Python 3.8 is the newest Python that runs on Windows 7 and 8. A program built on a Windows 10/11 machine can be copied to a Windows 7/8 machine and run with that Python. The NME command-line tool itself needs Windows 10 or 11.
macOS
Install Git through Xcode Command Line Tools when needed:
xcode-select --install
Install a current Python from python.org, then install Rust with the command
shown on the official rustup page. The same steps work on both Intel and
Apple Silicon (M-series) Macs; the python.org installer covers both. Open a
new Terminal and run (from the needmoreeasy folder where you cloned the
repository):
git clone https://github.com/needmoretruth/needmoreeasy.git
cd needmoreeasy
cargo install --path crates/nme-cli --locked
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"
nme --version
Expected NME version: 0.10.0. The export line must run before the
first nme command when Cargo warns that its binary directory is not on
PATH.
Set up PATH for future terminals. To keep the export line for future
terminals, add it to ~/.zshrc (the default macOS shell) or your shell's
profile. If Rust was installed with rustup, this equivalent command may
already exist:
source "$HOME/.cargo/env"
First NME run:
nme run examples/hello-sentence
Common errors.
nmeis not found in a new Terminal: theexportline is not saved yet. Add it to~/.zshrcor your shell's profile.- The Cargo build fails with a compiler error: Xcode Command Line Tools are
missing. Run
xcode-select --installand try again.
Debian and Ubuntu
Install Python, Git, a C build toolchain, and curl with apt, then install
stable Rust with rustup (the command shown on the official rustup page):
sudo apt install python3 python3-pip git curl build-essential
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
python3-pip is needed only for the optional Nuitka step below. Open a new
shell, then run (from the needmoreeasy folder where you cloned the
repository):
git clone https://github.com/needmoretruth/needmoreeasy.git
cd needmoreeasy
cargo install --path crates/nme-cli --locked
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"
nme --version
Expected NME version: 0.10.0. The export line is deliberately
before nme --version.
First NME run:
nme run examples/hello-sentence
Set up PATH for future terminals. If nme is not found in a new
terminal, add the export line to ~/.bashrc, ~/.zshrc, or the profile used
by your shell. Package-manager Cargo installations can install the binary
successfully to ~/.cargo/bin without adding that directory to the shell's
PATH; verify the install directly with
"${CARGO_HOME:-$HOME/.cargo}/bin/nme" --version.
Common errors.
nmeis not found: add the export line to~/.bashrc(or your shell's profile) and open a new terminal.cargoorrustupis not found right after the rustup command: the current shell was opened before the install. Open a new shell or runsource "$HOME/.cargo/env".- The optional Nuitka step reports "No module named pip": install
python3-pip(it is included in the install command above).
Fedora
Install Python, Git, a C build toolchain, and curl with dnf, then install
stable Rust with rustup (the command shown on the official rustup page):
sudo dnf install python3 python3-pip git curl gcc
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
python3-pip is needed only for the optional Nuitka step below. Open a new
shell, then run (from the needmoreeasy folder where you cloned the
repository):
git clone https://github.com/needmoretruth/needmoreeasy.git
cd needmoreeasy
cargo install --path crates/nme-cli --locked
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"
nme --version
Expected NME version: 0.10.0. The export line is deliberately
before nme --version.
First NME run:
nme run examples/hello-sentence
Set up PATH for future terminals. Fedora's system cargo, and some other
package-manager installations, can install the binary successfully to
~/.cargo/bin without adding that directory to the shell's PATH. If needed,
verify the install directly with
"${CARGO_HOME:-$HOME/.cargo}/bin/nme" --version, then add the export line to
~/.bashrc, ~/.zshrc, or the profile used by your shell.
Common errors.
nmeis not found: add the export line to~/.bashrc(or your shell's profile) and open a new terminal.cargoorrustupis not found right after the rustup command: the current shell was opened before the install. Open a new shell or runsource "$HOME/.cargo/env".- The optional Nuitka step reports "No module named pip": install
python3-pip(it is included in the install command above).
Arch Linux
Install Python, Git, a C build toolchain, and curl with pacman, then install
stable Rust with rustup (the command shown on the official rustup page):
sudo pacman -S python python-pip git curl base-devel
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
python-pip is needed only for the optional Nuitka step below. Open a new
shell, then run (from the needmoreeasy folder where you cloned the
repository):
git clone https://github.com/needmoretruth/needmoreeasy.git
cd needmoreeasy
cargo install --path crates/nme-cli --locked
export PATH="${CARGO_HOME:-$HOME/.cargo}/bin:$PATH"
nme --version
Expected NME version: 0.10.0. The export line is deliberately
before nme --version.
First NME run:
nme run examples/hello-sentence
Set up PATH for future terminals. If nme is not found in a new
terminal, add the export line to ~/.bashrc, ~/.zshrc, or the profile used
by your shell. Package-manager Cargo installations can install the binary
successfully to ~/.cargo/bin without adding that directory to the shell's
PATH; verify the install directly with
"${CARGO_HOME:-$HOME/.cargo}/bin/nme" --version.
Common errors.
nmeis not found: add the export line to~/.bashrc(or your shell's profile) and open a new terminal.cargoorrustupis not found right after the rustup command: the current shell was opened before the install. Open a new shell or runsource "$HOME/.cargo/env".- The optional Nuitka step reports "No module named pip": install
python-pip(it is included in the install command above).
Verify the complete toolchain
nme --version
nme modules
nme check examples/three-levels
nme run examples/hello-sentence
Expected NME version: 0.10.0. Expected random adapter: 0.0.1.
Advanced: choose a different Python command
NME automatically uses py on Windows and python3 elsewhere. Only unusual
setups need the advanced override:
nme run program --python python
nme compile program -o program --python python
On Windows, replace the final command with py.
Optional native executable
NME's normal build creates Python source and preserves complete Python
compatibility. compile uses the external Nuitka compiler to create a
standalone one-file artifact:
python3 -m pip install -U "Nuitka[app]"
python3 -m nuitka --version
nme compile examples/hello-sentence -o hello
Nuitka requires a platform C compiler and recommends testing standalone mode before one-file distribution for complex programs. NME's command uses one-file mode for the simplest handoff. Read the official Nuitka setup guide and user manual when your program includes data files or native packages.
Build on each target operating system; a Windows executable is not produced by running the command on macOS or Linux.
Update or uninstall a source build
Update the checkout and reinstall:
git pull --ff-only
cargo install --path crates/nme-cli --locked --force
Remove the installed CLI:
cargo uninstall nme-cli
The binary command is nme, while the Cargo package name is nme-cli.