> This page is for NeMo Relay, version v0.9.4.
> For other versions, use one of these documentation indexes:
> - Latest (v0.10.0) (default): https://docs.nvidia.com/nemo/relay/latest/llms.txt
> - dev: https://docs.nvidia.com/nemo/relay/dev/llms.txt
> - v0.10.0: https://docs.nvidia.com/nemo/relay/v0.10.0/llms.txt
> - v0.9.4: https://docs.nvidia.com/nemo/relay/v0.9.4/llms.txt
> - v0.8.4: https://docs.nvidia.com/nemo/relay/v0.8.4/llms.txt
> - v0.7.3: https://docs.nvidia.com/nemo/relay/v0.7.3/llms.txt
> - v0.6.0: https://docs.nvidia.com/nemo/relay/v0.6.0/llms.txt
> - v0.5.0: https://docs.nvidia.com/nemo/relay/v0.5.0/llms.txt

> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.nvidia.com/nemo/relay/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/relay/_mcp/server.

# Installation

Use this page when you are consuming a published NeMo Relay release from a
package manager.

If you are working from a source checkout, validating unpublished changes, or
contributing to the repository, use
[Development Setup](/contribute/development-setup) instead.

Choose the package by the boundary you want NeMo Relay to own or observe:

* Install the CLI when a local coding-agent harness owns the invocation
* Install a language binding when your application owns the tool or LLM call
* Install an integration package when a supported framework or agent harness
  owns the boundary

After installation, use [Quick Start](/getting-started/quick-start) to choose
the matching runtime path. If a supported framework or agent harness owns the
boundary, start from [Supported Integrations](/supported-integrations/about).

## CLI

Install the NeMo Relay CLI when you want the `nemo-relay` executable for
coding-agent hook and LLM gateway observability.

Install the latest stable release:

#### Python

```bash
pip install nemo-relay-cli-bin
```

To install the Python API and matching CLI together:

```bash
pip install "nemo-relay[cli]"
```

#### Unix shell

```bash
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/install.sh | sh
```

#### Windows PowerShell

```powershell
irm https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/install.ps1 | iex
```

The shell installer commands intentionally download the installer from `main`
and install the latest stable CLI release. The version of this documentation
page does not select the CLI version; set `NEMO_RELAY_VERSION` to install a
specific release.

The Unix installer downloads the matching GitHub Release binary to
`$HOME/.local/bin`. The PowerShell installer downloads `nemo-relay.exe` to
`%LOCALAPPDATA%\nemo-relay\bin`, adds that directory to the persistent user
`PATH`, and updates the installing PowerShell process. Newly opened shells
inherit the persistent `PATH` change. Verify that the command is available:

```bash
nemo-relay --version
```

After installation, `nemo-relay` can also install persistent Claude Code and
Codex integrations:

```bash
nemo-relay install claude-code
nemo-relay install codex
```

Refer to [Coding Agent Installation](/nemo-relay-cli/plugin-installation) for
the persistent integration workflow. For an administrator-managed
background service, use [Daemon](/daemon/about); install the binary here, then
follow its managed configuration and platform runbook.

> **Note**
>
> The installers download the published SHA-256 checksum for the selected release
> asset and fail without replacing an existing binary if verification does not
> succeed. They do not invoke `sudo`. The PowerShell installer updates the Windows
> user `PATH`; the Unix installer does not edit shell configuration.

### Supported Platforms

| Operating system | Architecture  | Release target               |
| ---------------- | ------------- | ---------------------------- |
| Linux (glibc)    | x86\_64       | `x86_64-unknown-linux-gnu`   |
| Linux (musl)     | x86\_64       | `x86_64-unknown-linux-musl`  |
| Linux (glibc)    | ARM64         | `aarch64-unknown-linux-gnu`  |
| Linux (musl)     | ARM64         | `aarch64-unknown-linux-musl` |
| macOS            | Apple Silicon | `aarch64-apple-darwin`       |
| Windows          | x86\_64       | `x86_64-pc-windows-msvc`     |
| Windows          | ARM64         | `aarch64-pc-windows-msvc`    |

Use the GNU target on glibc-based distributions such as Ubuntu, Debian, and
RHEL. Use the musl target on Alpine Linux and other musl-based systems. The
Unix shell installer intentionally selects the portable musl target on Linux.
For package versions that publish the corresponding artifacts, `pip` and `uv`
automatically select a target compatible with the host CPU and C library on
supported platforms.

The installer reports the detected operating system and architecture when no
matching asset exists. Intel macOS is not supported because no matching release
asset is published.

For support across the core library, plugins, worker runtimes, and CLI assets,
refer to the [Support Matrix](/reference/support-matrix).

### Installer Reference

#### Unix shell

Install a specific version:

```bash
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/install.sh | NEMO_RELAY_VERSION=0.9.0 sh
```

Install into another directory:

```bash
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/install.sh | sh -s -- --install-dir "$HOME/bin"
```

Add the selected directory to `PATH` before running `nemo-relay` if it is not
already present.

| Interface            | Purpose                                                                                                          |
| -------------------- | ---------------------------------------------------------------------------------------------------------------- |
| `NEMO_RELAY_VERSION` | Optional release tag; accepts a leading `v` and defaults to the latest stable release                            |
| `--install-dir DIR`  | Installer destination; defaults to `$HOME/.local/bin` or `%LOCALAPPDATA%\nemo-relay\bin` in Windows POSIX shells |
| `-h`, `--help`       | Display installer usage                                                                                          |

#### Windows PowerShell

Set the same environment variable before invoking the installer to install a
specific version:

```powershell
$env:NEMO_RELAY_VERSION = '0.9.0'
irm https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/install.ps1 | iex
```

To choose an installation directory, download the script and pass `-InstallDir`:

```powershell
iwr https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/install.ps1 -OutFile install.ps1
.\install.ps1 -InstallDir "$HOME\bin"
```

| Interface            | Purpose                                                                               |
| -------------------- | ------------------------------------------------------------------------------------- |
| `NEMO_RELAY_VERSION` | Optional release tag; accepts a leading `v` and defaults to the latest stable release |
| `-InstallDir DIR`    | Installer destination; defaults to `%LOCALAPPDATA%\nemo-relay\bin`                    |
| `-Help`              | Display installer usage                                                               |

On Windows, Git Bash, MSYS, Cygwin, and MINGW shells can use the Unix command.
They install the matching Windows `.exe` asset into the same
`%LOCALAPPDATA%\nemo-relay\bin` default directory and invoke PowerShell to
persist the Windows user `PATH` update.

Rerun the installer to upgrade or replace the existing binary. It verifies the
new download before replacing the binary in the selected installation directory.

### Remove a Script-Installed CLI

To remove a CLI installed with the Unix shell installer, run:

```bash
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/uninstall.sh | sh
```

For a non-default installation directory, pass the same directory used during
installation:

```bash
curl -fsSL https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/uninstall.sh | sh -s -- --install-dir "$HOME/bin"
```

To remove a CLI installed with the PowerShell installer, run:

```powershell
irm https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/uninstall.ps1 | iex
```

The uninstall scripts remove only the installed CLI binary. They leave the
installation directory, any `PATH` entry, Relay configuration and output, and
coding-agent integrations unchanged. They refuse removal when the installed
CLI has active Relay processes, including MCP clients owned by coding agents.
Close those agents and retry, or use `--force` (`-Force` in PowerShell) to
confirm termination of each detected process tree. Run `nemo-relay uninstall
all` before removing the binary if you also want to remove Relay-managed
coding-agent integrations.

`--force` is intentionally interactive; it does not terminate a detected
coding-agent process without its own confirmation.

A dry run exits nonzero when removal would be refused because Relay processes
are active.

Active managed daemon processes using the selected binary block removal even
with `--force` or `-Force`. This includes the broker, `daemon mcp`,
`daemon worker`, and `daemon hook`. Stop the managed deployment through its
service manager after closing affected coding-agent sessions and allowing shared
workers to drain. A worker can serve multiple sessions, and its local process
tree cannot identify every affected client.

The scripts preserve administrator-managed bundles, daemon identity and trust
state, and deployment services. Removing the binary does not tear down a managed
deployment or reset its configuration.

PowerShell cannot pass script parameters through the `irm ... | iex` form. To
use `-Force` or `-InstallDir`, download the script and invoke it directly:

```powershell
iwr https://raw.githubusercontent.com/NVIDIA/NeMo-Relay/main/uninstall.ps1 -OutFile uninstall.ps1
.\uninstall.ps1 -Force
```

For CLI installations managed by a package manager, use that package manager
instead:

```bash
pip uninstall nemo-relay-cli-bin
cargo uninstall nemo-relay-cli
```

### Alternative Installation Methods

The PyPI and installer methods install the same CLI release with a binary
compatible with the host platform. Use Cargo on unsupported platforms or when
you prefer to build from source:

```bash
cargo install nemo-relay-cli
```

If you already use `cargo-binstall`, it can download the same published release
asset through the Cargo interface:

```bash
cargo binstall nemo-relay-cli
```

For source installation and unsupported-platform guidance, refer to the
[CLI README](https://github.com/NVIDIA/NeMo-Relay/blob/0.9.4/crates/cli/README.md#installation-options).

## Python

Install the Python package when your application uses NeMo Relay through the
Python wrapper and owns the tool or LLM call boundary.

```bash
uv add nemo-relay==0.9.0
```

Use `uv add` from an application project that has a `pyproject.toml`; it records
`nemo-relay` as a project dependency. If you are only installing into an active
virtual environment and do not have project metadata, use `uv pip install
nemo-relay` instead. You can also use `pip install nemo-relay` if you are not
managing the environment with `uv`.

NeMo Relay publishes CPython 3.11 ABI3 wheels for x86\_64 and ARM64 Linux
systems. On supported CPython 3.11 or newer environments, `pip` and `uv` select
`manylinux_2_17` for glibc 2.17 or newer or `musllinux_1_2` for musl 1.2 or
newer. Supported Alpine Linux environments do not need a `--platform` override
or source build. Alpine environments outside this wheel coverage must use a
supported Python version and
[build from source](/contribute/development-setup#source-development).

## Node.js

Install the Node.js package when your application uses NeMo Relay through the
JavaScript API and owns the tool or LLM call boundary.

```bash
npm install nemo-relay-node@0.9.0
```

On supported x64 and ARM64 Linux systems, npm automatically installs the native
package for the host C library, including the musl package on Alpine Linux.

## Rust

Add the Rust crates when your application uses NeMo Relay directly from Rust.

```bash
cargo add nemo-relay@0.9.0
cargo add nemo-relay-adaptive@0.9.0
```

* `nemo-relay` provides the core runtime APIs for scopes, middleware, subscribers, plugins, tool calls, and LLM calls.
* `nemo-relay-adaptive` provides adaptive runtime primitives and Redis-backed learning components when you want adaptive tuning behavior in Rust.

## Integrations

Install integration packages when your application already uses one of the
supported framework or agent harness surfaces.

### OpenClaw

Install the OpenClaw plugin through OpenClaw so OpenClaw can register and manage
the package:

```bash
openclaw plugins install npm:nemo-relay-openclaw@0.9.0
openclaw gateway restart
```

Use the package name `nemo-relay-openclaw` for installation. Use the plugin ID
`nemo-relay` in OpenClaw configuration, inspection, and gateway status commands.
See the [OpenClaw Plugin Guide](/supported-integrations/openclaw-plugin) for
configuration and verification steps.

### Hermes Agent

Install Hermes Agent 0.18.2 or newer by following the
[official Hermes Agent installation guide](https://hermes-agent.nousresearch.com/docs/getting-started/installation).
NeMo Relay is built into Hermes Agent. No separate NeMo Relay package,
observability plugin, or Relay CLI setup is required. Hermes Agent understands
NeMo Relay plugin configurations.

### Python Framework Integrations

Install the Python package with the supported framework extras when your
application uses LangChain, LangGraph, or Deep Agents.

```bash
uv add "nemo-relay[langchain,langgraph,deepagents]==0.9.0"
```

The extras install the NeMo Relay Python package plus the dependencies needed by
the maintained public integrations. See
[Supported Integrations](/supported-integrations/about) for guide links and support
levels.