> This page is for NeMo Fabric, version v0.4.0.
> For other versions, use one of these documentation indexes:
> - Latest (v0.4.0) (default): https://docs.nvidia.com/nemo/fabric/latest/llms.txt
> - dev: https://docs.nvidia.com/nemo/fabric/dev/llms.txt
> - v0.5.0: https://docs.nvidia.com/nemo/fabric/v0.5.0/llms.txt
> - v0.4.0: https://docs.nvidia.com/nemo/fabric/v0.4.0/llms.txt
> - v0.3.0: https://docs.nvidia.com/nemo/fabric/v0.3.0/llms.txt
> - v0.2.0: https://docs.nvidia.com/nemo/fabric/v0.2.0/llms.txt
> - v0.1.1: https://docs.nvidia.com/nemo/fabric/v0.1.1/llms.txt
> - v0.1.0: https://docs.nvidia.com/nemo/fabric/v0.1.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/fabric/llms.txt.
> For AI client integration (Claude Code, Cursor, etc.), connect to the MCP server at https://docs.nvidia.com/nemo/fabric/_mcp/server.

# NVIDIA NeMo Fabric Installation

> Install guide.

## Package Installation Method

The `nemo-fabric` package installs the NeMo Fabric runtime. Harness adapters can
run in that environment or in a separate environment with their harness
dependencies.

### Supported Python Versions

NeMo Fabric supports Python 3.11 through 3.14. Some integrations and adapters
have additional requirements. The Hermes Agent adapter does not support Python
3.14, and the Harbor integration requires Python 3.12 or later.

### Supported Platforms

NeMo Fabric supports the following platforms:

* Linux (x86\_64 and arm64)
* macOS (arm64)
* Windows (x86\_64)

### Choose an Installation

The following table shows a representative subset of package expressions and
the components they install. The sections that follow describe the complete
installation alternatives. A **No** entry means that the expression does not
install that component; the component can already exist in the environment or
be managed separately.

| Installation                                                          | Runtime | Collector | Adapter | Harness | Relay Python | Relay CLI |
| --------------------------------------------------------------------- | ------- | --------- | ------- | ------- | ------------ | --------- |
| `nemo-fabric`                                                         | Yes     | No        | No      | No      | No           | No        |
| `nemo-fabric[streaming]`                                              | Yes     | Yes       | No      | No      | No           | No        |
| `nemo-fabric[relay]`                                                  | Yes     | No        | No      | No      | Yes          | No        |
| `nemo-fabric[hermes-agent]`                                           | Yes     | No        | Yes     | No      | No           | No        |
| `nemo-fabric[hermes-agent]` plus `nemo-fabric-adapters-hermes[relay]` | Yes     | No        | Yes     | No      | Yes          | No        |
| `nemo-fabric-adapters-claude[harness]`                                | No      | No        | Yes     | Yes     | No           | Yes       |
| `nemo-fabric-adapters-claude[full]`                                   | No      | No        | Yes     | Yes     | No           | Yes       |
| `nemo-fabric-adapters-deepagents[full]`                               | No      | No        | Yes     | Yes     | Yes          | No        |
| `nemo-fabric-adapters-mini-swe-agent[full]`                           | No      | No        | Yes     | Yes     | Yes          | No        |
| `nemo-fabric-adapters-nooa[full]`                                     | No      | No        | Yes     | Yes     | Yes          | No        |
| `nemo-fabric-adapters-openclaw`                                       | No      | No        | Yes     | No      | No           | No        |
| `nemo-fabric-adapters-hermes[full]`                                   | No      | No        | Yes     | No      | Yes          | No        |
| `nemo-fabric-adapters-hermes[relay]`                                  | No      | No        | Yes     | No      | Yes          | No        |
| `nemo-fabric-adapters-claude`                                         | No      | No        | Yes     | No      | No           | No        |

An adapter package's `full` extra is scoped to the adapter environment and does
not install the NeMo Fabric runtime. For Claude and Codex, `full` is equivalent
to `harness`; both install the supported harness and `nemo-relay` CLI. For
LangChain Deep Agents and mini-SWE-agent, `full` installs the harness and NeMo
Relay Python package without the CLI. For Hermes Agent, `full` installs the
adapter and Relay Python package; Hermes Agent must be installed separately.

### Install the NeMo Fabric Runtime

Install the NeMo Fabric runtime:

```bash
pip install nemo-fabric
```

The `nemo-fabric` package installs the matching NeMo Fabric runtime
unconditionally.

Install the matching collector when an application uses the default
embedded collector for NeMo Relay ATOF streaming:

```bash
pip install "nemo-fabric[streaming]"
```

Applications that set `launch_collector=False` and use an externally managed
collector do not need this extra.

### Install a Complete Runtime and Harness

Use a `nemo-fabric` harness extra when the runtime, adapter, and harness run in
the same Python environment:

```bash
pip install "nemo-fabric[claude]"
pip install "nemo-fabric[codex]"
pip install "nemo-fabric[deepagents]"
pip install "nemo-fabric[mini-swe-agent]"
pip install "nemo-fabric[nooa]"
pip install "nemo-fabric[openclaw]"
```

Each `nemo-fabric` harness extra installs the corresponding adapter package
with its `harness` extra. You can combine independent `nemo-fabric` extras. For
example, the following command also installs Harbor; the Claude harness extra
supplies the Relay CLI, while `relay` supplies the Relay Python package:

```bash
pip install "nemo-fabric[claude,harbor,relay]"
```

The NOOA extra supports Python 3.12 and 3.13 only. On another supported Python
version, the command can succeed while its environment marker omits the NOOA
adapter.

The OpenClaw extra installs its adapter and HTTP client, but not OpenClaw.
Install the `openclaw` npm package separately before using that adapter.

The Claude and Codex harness extras install the `nemo-relay` CLI required for
Relay-enabled runs. The root `relay` extra installs only the Relay Python
package for SDK-native integrations.

### Install Hermes Agent

Hermes Agent 0.20 and later is no longer installable from PyPI. End users must
follow the [Hermes Agent installation guide](https://hermes-agent.nousresearch.com/docs/installation),
then install NeMo Fabric and the bare Hermes adapter into the Python environment
that runs Hermes Agent:

```bash
pip install "nemo-fabric[hermes-agent]"
```

These packages do not install Hermes Agent. Released Hermes Agent v2026.9.24
requires Relay 0.8.x and supports ordinary runs only with this adapter. Do not
install the adapter's Relay 0.9 `relay` or `full` extra into that environment.
Relay telemetry and streaming require the merged, unreleased upstream Hermes
revision on Python 3.14. For local development, create its isolated environment
from the repository root:

```bash
just install-hermes-agent
export ADAPTER_PYTHON="$PWD/.venv-hermes/bin/python"
```

For a Relay-enabled Hermes environment, install the adapter's `relay` extra
alongside `nemo-fabric[hermes-agent]`; the generic root `relay` extra does not
include the adapter's TOML writer dependency.

### Install Cline

The [Cline adapter](/nemo/fabric/integrations/harness-integrations/cline) requires Node.js 22.19.0 or newer and is distributed through npm. Install the NeMo Fabric runtime with pip, then install the supported Cline SDK and adapter in the Node.js project that owns the NeMo Fabric configuration:

```bash
pip install nemo-fabric
npm install --save-exact @cline/sdk@0.0.83
npm install nemo-fabric-adapters-cline
```

The adapter does not declare or install the Cline SDK as a package dependency. Refer to the [Cline adapter guide](/nemo/fabric/integrations/harness-integrations/cline) to configure adapter discovery and supported capabilities.

### Install an Adapter and Harness Without the Runtime

Use an adapter package's `harness` extra when a different environment runs NeMo
Fabric:

```bash
pip install "nemo-fabric-adapters-claude[harness]"
pip install "nemo-fabric-adapters-codex[harness]"
pip install "nemo-fabric-adapters-deepagents[harness]"
pip install "nemo-fabric-adapters-nooa[harness]"
```

This installation mode keeps the runtime dependencies out of the adapter
environment. Set `ADAPTER_PYTHON` in the runtime environment to the adapter
environment's Python interpreter. A Python adapter and its Python harness must
use the same interpreter. Use matching NeMo Fabric
release versions for the runtime and adapter package unless a different pairing
has been explicitly validated.

The OpenClaw adapter does not provide `harness` or `full` extras. Install
`nemo-fabric-adapters-openclaw` directly and install the `openclaw` npm package
separately.

### Add an Adapter to an Existing Harness Environment

Install an adapter package without an extra when the environment already
supplies and manages a compatible harness:

```bash
pip install nemo-fabric-adapters-claude
pip install nemo-fabric-adapters-codex
pip install nemo-fabric-adapters-deepagents
pip install nemo-fabric-adapters-hermes
pip install nemo-fabric-adapters-nooa
pip install nemo-fabric-adapters-openclaw
```

Bare adapter distributions install only adapter-owned dependencies. They do not
install the NeMo Fabric runtime or the harness.

If the existing harness and runtime share an environment, install the runtime
and bare adapter together. The following example preserves the existing Codex
SDK instead of installing the adapter's supported SDK version:

```bash
pip install nemo-fabric nemo-fabric-adapters-codex
```

### Install NeMo Relay

[NeMo Relay](https://docs.nvidia.com/nemo/relay) integration occurs in two
ways:

* [Python package](https://pypi.org/project/nemo-relay/)
* [NeMo Relay CLI](https://crates.io/crates/nemo-relay-cli)

The required integration depends on the agent harness. Relay-enabled runs with
the Claude, Codex, and Pi adapters require the
[`nemo-relay` CLI](https://crates.io/crates/nemo-relay-cli).

#### NeMo Relay Python Package

The root `relay` extra installs a version of the NeMo Relay Python package known
to be compatible with the installed version of NeMo Fabric:

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

LangChain Deep Agents, Hermes Agent, mini-SWE-agent, and NOOA import the NeMo
Relay Python package directly. Their adapter packages provide `relay` and
`full` extras:

```bash
pip install "nemo-fabric-adapters-deepagents[relay]"
pip install "nemo-fabric-adapters-hermes[relay]"
pip install "nemo-fabric-adapters-mini-swe-agent[relay]"
pip install "nemo-fabric-adapters-nooa[relay]"
pip install "nemo-fabric-adapters-deepagents[full]"
pip install "nemo-fabric-adapters-hermes[full]"
pip install "nemo-fabric-adapters-mini-swe-agent[full]"
pip install "nemo-fabric-adapters-nooa[full]"
```

Use `relay` when the environment already manages the harness. For Deep Agents,
mini-SWE-agent, and NOOA, use `full` to install the harness and Relay package
together. Hermes Agent's `relay` and `full` extras install Relay 0.9 but not
Hermes Agent. Claude and Codex do not provide a
`relay` extra because their adapters launch the external CLI instead of
importing this Python package.

Python-backed Relay integrations require `nemo-relay>=0.9,<0.10`. NeMo Fabric
does not merge user or workspace `plugins.toml` files with its runtime-owned
configuration. Remove or relocate a user
`plugins.toml` or the nearest `.nemo-relay/plugins.toml` before starting a
Relay-enabled Deep Agents, Hermes Agent, or mini-SWE-agent runtime. System
configuration in `/etc/nemo-relay/plugins.toml` remains administrator
controlled.

#### Migrate Relay Observability Configurations from 0.6

Relay 0.7 requires observability schema version 3. Move flat OpenTelemetry
exporter fields into entries under `opentelemetry.endpoints`. In the Python SDK,
replace the removed `RelayOtlpConfig` model with `RelayOpenTelemetryConfig` and
one or more `RelayOpenTelemetryEndpointConfig` entries.

#### NeMo Relay CLI

Claude and Codex harness extras install their compatible CLI binary without
the Relay Python package. Pi requires a separate CLI installation alongside
the npm adapter. Install the `>=0.9,<0.10` range:

```bash
pip install "nemo-relay-cli-bin>=0.9,<0.10"
```

If `cargo-binstall` is available, install the pinned CLI with Cargo:

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

After installation, run `nemo-relay --version` and confirm the version is in
the `>=0.9,<0.10` range. When Relay is enabled with
`FabricConfig.enable_relay(...)`, the Claude, Codex, and Pi adapters start and
supervise the CLI gateway automatically.

The Pi adapter also requires a user-supplied path to the
[Relay 0.9 Pi extension](https://github.com/NVIDIA/NeMo-Relay/tree/0.9.3/crates/cli/assets/pi-extension).
Set
`harness.settings.relay_extension_path` to the extension file or package
directory; relative paths resolve from `environment.workspace`. Relay-enabled
Pi configurations must also set `runtime.artifacts` so NeMo Fabric can provide
the adapter-owned Relay configuration. Refer to the
[Pi adapter guide](/nemo/fabric/integrations/harness-integrations/pi) for the complete
configuration and the embedded collector streaming workflow. Do not set
`launch_collector=False` for Pi streaming because the Pi extension does not
attach the NeMo Fabric request IDs required by an externally managed collector.

## Deployment Scenarios

Choose a deployment scenario based on where the consumer, runtime, adapter, and harness need to run.

### Runtime and Harness in the Same Environment

The NeMo Fabric runtime, selected adapter, and harness share one environment. This is the simplest scenario for local development and the [quickstart](/nemo/fabric/getting-started/quickstart).

Install the runtime with the harness extra, or install the runtime and a bare adapter beside an existing harness. The package options earlier in this guide describe both approaches.

### Isolated Task Environment

The host application constructs and serializes the final typed `FabricConfig`. It then runs NeMo Fabric, the selected adapter, and the harness inside an isolated task environment such as a Docker container or sandbox. Adapter discovery and task-path resolution occur inside that environment.

Harbor uses this model. Install its integration in the host environment:

```bash
pip install "nemo-fabric[harbor]"
```

Install NeMo Fabric, the selected adapter, and the harness in the task environment. For a Hermes Agent task, install Hermes Agent according to its installation guide, then add `nemo-fabric`, `nemo-fabric-adapters-hermes`, and optionally `nemo-fabric[relay]`.

Relay-enabled Claude, Codex, or Pi tasks also require the adapter-compatible NeMo Relay CLI in the task environment. Pi additionally requires its matching Relay extension. Refer to the [Harbor integration guide](/nemo/fabric/integrations/consumer-integrations/harbor) for details.

### Runtime and Harness in Separate Environments

The NeMo Fabric runtime and agent harness can run in separate, locally accessible Python environments. This scenario isolates their Python dependencies while the runtime launches the adapter through the adapter environment's interpreter.

Install `nemo-fabric` in the runtime environment. Install the adapter and harness in the second environment, then set `ADAPTER_PYTHON` in the runtime environment:

```bash
export ADAPTER_PYTHON="/path/to/adapter-environment/bin/python"
```

On Windows, use the adapter environment's Python executable:

```powershell
$env:ADAPTER_PYTHON = "C:\path\to\adapter-environment\Scripts\python.exe"
```

Use matching NeMo Fabric release versions for the runtime and adapter unless a different pairing has been validated.

## Source Installation Method

**Prerequisites:**

* Rust and Cargo
* Python 3.11 through 3.14
* [uv](https://docs.astral.sh/uv/getting-started/installation/)
* `just` 1.50.0+

1. Create a Python virtual environment and activate it (replace `3.13` with your preferred Python version):

```bash
uv venv -p 3.13 --seed .venv
source .venv/bin/activate
just install-hermes-agent
```

2. Build the Rust core and Python libraries.

```bash
just build-all
```

The above command will install only those dependencies that are strictly necessary for the build.
Alternately If you want to install all optional dependencies, you can run:

```bash
uv sync --all-groups --all-extras
```

Then run the build command with the `no_uv=true` flag to avoid re-installing the dependencies:

```bash
just no_uv=true build-all
```