Reference·InstallIndex

Install

One line for Linux, macOS and Windows. What it prints, what it needs, where files land, and the mistakes people make.

.mdllms.txt
Commands and mistakes follow your system.

One line

Linux x86_64. glibc 2.38 or newer.

Apple Silicon, macOS 15 or newer, with Homebrew openssl@3 and zstd.

Windows x86_64, in PowerShell.

a shell
curl -fsSL https://nodecode.ai/install.sh | sh

It which release is current, , , beside any older version, , and .

PowerShell
irm https://nodecode.ai/install.ps1 | iex

It , , beside any older version, and .

$ curl -fsSL https://nodecode.ai/install.sh | shnodecode: reading https://preview.nodecode.ai/dl/stable-x86_64-linuxnodecode: release 8490b4803nodecode: downloading https://preview.nodecode.ai/dl/nodecode-8490b4803-x86_64-linux.tar.gznodecode: sha256 verifiednodecode: laid out 8490b4803 at /home/you/.local/share/nodecode/8490b4803nodecode: current is 8490b4803nodecode: linked /home/you/.local/bin/nodecodenodecode: the executable runsnodecode: open a new shell, then run 'nodecode' to start; the first launch opens the setup wizard
$ curl -fsSL https://nodecode.ai/install.sh | shnodecode: reading https://preview.nodecode.ai/dl/stable-arm64-darwinnodecode: release dc14c36f5nodecode: downloading https://preview.nodecode.ai/dl/nodecode-dc14c36f5-arm64-darwin.tar.gznodecode: sha256 verifiednodecode: laid out dc14c36f5 at /Users/you/.local/share/nodecode/dc14c36f5nodecode: current is dc14c36f5nodecode: linked /Users/you/.local/bin/nodecodenodecode: the executable runsnodecode: add /Users/you/.local/bin to your PATH: echo 'export PATH="$HOME/.local/bin:$PATH"' >> /Users/you/.zprofilethen open a new shell and run 'nodecode' to start; the first launch opens the setup wizard
PS> irm https://nodecode.ai/install.ps1 | iexnodecode: downloading https://preview.nodecode.ai/dl/nodecode-8490b4803-x86_64-windows.zipnodecode: sha256 verifiednodecode: installed 8490b4803 at C:\Users\you\AppData\Local\Programs\nodecode\8490b4803nodecode: added C:\Users\you\AppData\Local\Programs\nodecode\current to your user PATH; open a new terminal to pick it upnodecode: the executable runs

Open a new shellterminal. Then:

a shell
nodecode --version
it prints
nodecode 0.0.1+8490b4803
it prints
nodecode 0.0.1+dc14c36f5

Run nodecode to start. Next: Quickstart.

Passing a flag straight to sh

sh takes it as its own option and stops: sh: 0: Illegal option --. Nothing installs.

Instead: Hand it to the installer: curl -fsSL https://nodecode.ai/install.sh | sh -s -- --no-modify-path

Setting a variable in front of curl

It reaches curl, not the installer. The run still reads the channel.

Instead: Put it in front of sh: curl -fsSL https://nodecode.ai/install.sh | NODECODE_VERSION=8490b4803 sh

Running it with sudo

It installs into root's home, /root/.local/share/nodecode. Your own shell says nodecode: command not found.

Instead: Run it as yourself. It needs no root.

Installing again after nodecode: command not found

The shell you installed from keeps the PATH it started with. A second install changes nothing.

Instead: Open a new shell. If the run ended with add … to your PATH, run the echo line it printed first.

Pasting the line into Command Prompt

irm and iex are PowerShell. cmd answers 'irm' is not recognized as an internal or external command.

Instead: Open PowerShell and paste it there.

Running nodecode in a terminal opened before the install

The installer adds it to your user PATH. A terminal that was already open keeps the old one.

Instead: Open a new terminal.

Requirements

NeedsWithout itIt prints
x86_64Stopsno Linux build for aarch64 yet
glibc 2.38 or newerStopsglibc 2.35 is too old
curl or wgetStopsneed curl or wget to download
tarStopsneed tar to unpack
libsqlite3.so.0, libssl.so.3, libcrypto.so.3WarnsWARNING: not found: libsqlite3.so.0
A CA bundleWarnsWARNING: no CA bundle found
gitWarnsWARNING: git is not installed
NeedsWithout itIt prints
Apple SiliconStopsno macOS build for Intel yet
macOS 15 or newerStopsnodecode needs 15 (Sequoia) or newer
Homebrew openssl@3 and zstdStopsnodecode needs Homebrew's openssl@3 zstd
curl or wget, and tarStopsneed curl or wget to download
A CA bundle at /opt/homebrew/etc/openssl@3/cert.pemWarnsWARNING: no CA bundle at …
gitWarnsWARNING: git is not installed
NeedsWithout itIt prints
64-bit WindowsStopsnodecode needs 64-bit Windows
An AMD64 processorStopsnodecode ships for x86-64 Windows only today
Git for WindowsWarnsgit is not on PATH

No flag changes a stop. A warning lets the install go on.

Hunting for a flag past glibc 2.35 is too old

Ubuntu 22.04 and Debian 12 fail. No flag changes this.

Instead: Move to Ubuntu 24.04+, Debian 13+, Fedora 39+ or Arch.

Going on past WARNING: not found: libsqlite3.so.0

The install links the new build, then the build fails its own check: the executable did not answer. nodecode now points at a build that cannot start.

Instead: Install sqlite3 and OpenSSL 3 (sudo apt install libsqlite3-0 on Ubuntu), then run the installer again.

Going on past WARNING: no CA bundle found

Setup's provider list comes up empty. No error shows.

Instead: Install ca-certificates, then run nodecode again.

Installing openssl@3 alone

The build also opens Homebrew's zstd at every start. Without it, it does not answer at all.

Instead: brew install openssl@3 zstd, then run the installer again.

Going on past WARNING: no CA bundle at …

Setup's provider list comes up empty. No error shows.

Instead: brew reinstall ca-certificates.

Skipping Git for Windows

Shell commands run through its sh.exe. Without it they fail with git is not on PATH.

Instead: winget install --id Git.Git -e --source winget, then open a new terminal.

Going on past the git warning

Nodecode runs, but the layer, memory and checkpoint history are not committed.

Instead: Install git. xcode-select --install puts it on a Mac.

Where files land

~/
.local/share/nodecode/

The versions.

8490b4803/
The executable and src/. They stay together.
<newer>/
The newer release, beside it.
current
A symlink to 8490b4803/, the version in use.
current
A symlink to <newer>/ now. Nothing else moved.
base-url
The release host. Written only when NODECODE_BASE_URL was set at install.
.local/bin/nodecode
A symlink to current/nodecode.
.nodecode/
Your home: sessions, cells, keys. An install never touches it.
A new version lands beside the old one. A running Nodecode keeps the files it started with.
~/
.local/share/nodecode/

The versions.

dc14c36f5/
The executable and src/. They stay together.
<newer>/
The newer release, beside it.
current
A symlink to dc14c36f5/, the version in use.
current
A symlink to <newer>/ now. Nothing else moved.
base-url
The release host. Written only when NODECODE_BASE_URL was set at install.
.local/bin/nodecode
A symlink to current/nodecode.
.nodecode/
Your home: sessions, cells, keys. An install never touches it.
A new version lands beside the old one. A running Nodecode keeps the files it started with.
%LOCALAPPDATA%\Programs\nodecode\
8490b4803\
The executable, its DLLs and src\.
<newer>\
The newer release, beside it.
current
A junction to 8490b4803\, the version in use. Your user PATH holds current.
current
A junction to <newer>\ now. Your PATH did not change.
base-url
The release host. Written only when NODECODE_BASE_URL was set at install.
A new version lands beside the old one. A running Nodecode keeps the files it started with.

Your data lives in the home, ~/.nodecode/%USERPROFILE%\.nodecode\. See Files.

Waiting for the installer to edit your profile

It never writes to ~/.profile~/.zprofile. It prints the line to add and stops there.

Instead: Run the echo line it printed, then open a new shell.

Keeping an older nodecode first on PATH

You keep running the old build. The installer warns: 'nodecode' on your PATH is NOT the build just installed.

Instead: Remove the other one, or put ~/.local/bin ahead of it in PATH.

Copying the executable somewhere else

It reads its own src/ beside it. The two stay together.

Instead: Link it instead, as the installer does: ln -s ~/.local/share/nodecode/current/nodecode ~/bin/nodecode

Exporting NODECODE_HOME for Nodecode, then installing

install.sh reads the same name as its install folder. The versions land inside your home.

Instead: Leave it out of the install line: curl -fsSL https://nodecode.ai/install.sh | env -u NODECODE_HOME sh

Deleting an old version folder while Nodecode runs

A running Nodecode runs from the folder it started in.

Instead: Close it first. current already points at the new one.

Flags and variables

Flags go after sh -s --. Variables go in front of sh, not curl.

a shell
curl -fsSL https://nodecode.ai/install.sh | NODECODE_CHANNEL=stable sh -s -- --stage
FlagDoes
--no-modify-pathNo link in ~/.local/bin. It prints the path to run.
--stageLays the version out and probes it. current stays. Nothing restarts.
--linkPoints current at a version laid out earlier. No download. Needs NODECODE_VERSION.
-h, --helpPrints help.

With irm … | iex, set variables first. Parameters only reach the script when it runs as a file.

PowerShell
$env:NODECODE_VERSION = '8490b4803'; irm https://nodecode.ai/install.ps1 | iex
ParameterDoes
-Version LABELInstalls that release.
-FromZip PATHInstalls a local release zip. No download.
-NoModifyPathLeaves the user PATH alone. It prints the folder to add.
VariableDefaultDoes
NODECODE_VERSIONthe channel's releaseInstalls this version.
NODECODE_CHANNELstableNames the channel pointer to read.
NODECODE_BASE_URLhttps://preview.nodecode.ai/dlFetches from this host. Later updates read the same host.
NODECODE_STAGEfullfull, stage or link. Same as --stage and --link.
NODECODE_HOME~/.local/share/nodecodeInstall folder, for install.sh.
NODECODE_INSTALL_DIR%LOCALAPPDATA%\Programs\nodecodeInstall folder, for install.ps1.
NODECODE_NO_MODIFY_PATHunsetSame as -NoModifyPath, for install.ps1.

Using --link without a version

It stops: --link needs the version to point at: set NODECODE_VERSION.

Instead: curl -fsSL https://nodecode.ai/install.sh | NODECODE_VERSION=8490b4803 sh -s -- --link

Adding a flag from another installer

Anything else exits with code 2: install.sh: unknown argument --yes.

Instead: The flags are --no-modify-path, --stage, --link and -h.

Adding -Version after iex

iex runs the script but takes no parameters for it. PowerShell refuses the line.

Instead: Set the variable first, as above.

Upgrade

a shell
nodecode update

Installed builds also update themselves by default. A gateway running in the background moves to the new build. See Updates.

From source

Needs SBCL and just.

a shell
just build      # compile the system
just test       # run the core suite
just release    # dump ./nodecode
./nodecode

just check runs lint, build and test.

Waiting for a source build to update itself

Automatic updates are off in a source build.

Instead: Pull and run just release again. Or install a release with the line at the top.

Esc

    Loading the index…

    ↑↓ moveEnter openEsc close