NVIDIA NeMo Fabric Experimentation CLI
The nemo-fabric CLI is an experimentation surface. Use it for quick harness
probes, maintained examples, planning, and diagnostics. Applications and
services should construct FabricConfig through a language API directly.
The command implementation, built-in presets, and maintained example
definitions live in the Rust fabric-cli crate.
The nemo-fabric CLI is installed separately from the nemo-fabric-runtime
Python SDK. Installing the Python SDK does not install the CLI.
Install the CLI
The CLI currently builds from a NeMo Fabric source checkout. Install it with Cargo:
Set up the checkout’s Python environment when you want to run presets backed by Python adapters:
ADAPTER_PYTHON tells the Rust runtime which interpreter contains the selected
adapter and harness. Use an absolute path if you run nemo-fabric outside the
checkout.
Verify that the executable is available:
If the command is not found, add Cargo’s binary directory to your PATH:
When developing the CLI, run the workspace binary without installing it:
Installing the Python SDK does not install the CLI. Adapter packages and
credentials are also separate requirements for presets that launch an external
harness. Use the credential-free scripted preset to verify the CLI by itself.
Experiment With Presets
Presets are complete, embedded FabricConfig values intended for quick
experiments:
The scripted preset does not call a model. It returns a deterministic response
through the same NeMo Fabric runtime and adapter contract, which makes it useful for
checking CLI installation, request flow, and result formatting without network
access or credentials.
The four external-harness presets use NVIDIA_API_KEY. Hermes Agent and Deep Agents
target the public NVIDIA API Catalog at https://integrate.api.nvidia.com/v1.
Export the credential before running them:
Claude and Codex require the base URL for an NVIDIA endpoint that serves the selected frontier model and supports the harness protocol. Set it explicitly:
NeMo Fabric does not provide a default frontier URL because the correct endpoint depends on the model and the user’s access.
List the complete configurations maintained by the CLI:
Inspect a preset’s purpose and required environment variables:
Resolve the preset to inspect its complete run plan, including its typed configuration and adapter descriptor:
To display only the authored FabricConfig, filter the plan with jq:
Diagnose adapter availability, credentials, and other requirements before running the preset:
Run the preset with an input:
Override the preset’s default model and temperature for a quick experiment:
These flags preserve the preset’s provider, credential environment variable,
endpoint, and harness settings. Use a model that is available from the preset’s
provider and compatible with the selected harness. For example, a Claude preset
still requires an Anthropic Messages-compatible model, while a Codex preset
requires a Responses-compatible model. The plan and doctor commands accept
the same overrides.
Experiment With Examples
List the maintained workflows and inspect an example’s available variants:
Run an example with its default variant:
Select a different maintained harness variant when you want to compare its behavior:
The plan and doctor commands accept the same --example and --variant
selectors.
Scaffold Examples
Generate ordinary application code when you want to customize an example. The
default scripted variant is credential-free:
Add a selector such as --variant hermes to scaffold a non-default variant. A
non-default variant requires its adapter package and credentials.
Run a Python Scaffold
Create and activate a virtual environment, install the generated application, and run its launcher:
The Python scaffold constructs FabricConfig and calls the Python SDK
directly.
Run a Rust Scaffold
Build and run the generated Rust application:
The Rust scaffold constructs FabricConfig and calls fabric-core directly.
When the CLI is built from a source checkout, the generated manifest uses an
absolute path to that checkout’s crates/fabric-core. Keep the checkout
available, or replace the path dependency with a compatible published version
before moving the scaffold. Neither scaffold is loaded back into the central
CLI.
CLI Boundaries
The CLI has the following boundaries:
- Every preset and example variant constructs a complete typed
FabricConfig. - Examples reuse preset constructors and one shared workspace and skill asset tree; Python and Rust launchers do not duplicate those definitions.
- NeMo Fabric does not discover or persist YAML, TOML, or JSON agent configuration.
- JSON request payloads and harness-generated files are runtime inputs and outputs, not NeMo Fabric configuration sources.
- The CLI is not an application API, scheduler, evaluation framework, or production deployment interface.
Current lifecycle commands are plan, doctor, and run. Use preset list
and preset show to discover presets. Use example list and example show to
discover examples.