Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 20 additions & 0 deletions docs/get-started/quickstart-hermes.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -130,6 +130,26 @@ Use these details when your first-run path needs more control.
Refer to [Previous onboarding session failed](../reference/troubleshooting#previous-onboarding-session-failed) for recovery details.
</Accordion>

<Accordion title="Use Portable Ollama">
On Linux, fresh Hermes Portable onboarding can run the selected Ollama model in a current-user rootless Podman container.
This path requires the Portable preflight to accept the current user's Podman and NVIDIA GPU authority.
Start fresh onboarding with an explicit Ollama model:

```bash
NEMOCLAW_PROVIDER=ollama \
NEMOCLAW_MODEL=qwen3-vl:4b \
nemohermes onboard --experimental-profile portable --fresh
```

This path does not inspect, start, or use a host Ollama process.
It does not use the default Docker runtime.
Before the provider-selection step completes, NemoClaw creates the receipt-owned runner, sends one validation request for the selected model, and confirms that the exact model is loaded.
NemoClaw records the provider selection only after those checks pass.

This onboarding path does not establish complete `destroy` or `uninstall` cleanup for the Portable Ollama runner.
Refer to [Set Up Ollama](../inference/local-inference/set-up-ollama#use-portable-ollama-with-hermes) for the fail-closed uninstall boundary.
</Accordion>

<Accordion title="Use the dashboard and API remotely">
Hermes forwards its dashboard on port `18789` and its OpenAI-compatible API on port `8642`.
A sandbox receives those ports when no other sandbox or host listener already holds them.
Expand Down
24 changes: 23 additions & 1 deletion docs/inference/set-up-ollama.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,29 @@ NemoClaw detects Ollama on the host and can install, start, or upgrade it on sup
## Prerequisites

- Install NemoClaw by following the [Quickstart](../../get-started/quickstart).
- Use a host where Ollama is running or where the onboard wizard can install or start it.
- For the host Ollama path, use a host where Ollama is running or where the onboard wizard can install or start it.

<AgentOnly variant="hermes">

## Use Portable Ollama with Hermes

Fresh Hermes Portable onboarding does not use the host Ollama setup described in the remaining sections.
It creates a receipt-owned Ollama runner through the current user's rootless Podman authority.
Run the fresh Portable command in the [Hermes quickstart](../../get-started/quickstart#use-portable-ollama) with `NEMOCLAW_PROVIDER=ollama` and an explicit `NEMOCLAW_MODEL`.

Before the provider-selection step completes, NemoClaw verifies the Portable network, registry, GPU, and Podman authority.
It then creates the runner, sends one validation request for the selected model, and confirms that the exact model is loaded.
This path does not inspect, start, or use a host Ollama process, and it does not use the default Docker runtime.

<Warning title="Portable Cleanup Boundary">
This path covers fresh onboarding and provider selection.
It does not establish complete `destroy` or `uninstall` cleanup for the Portable Ollama runner.
Portable uninstall stops when it cannot prove exact cleanup authority for a Portable lifecycle receipt with schema `5`.
It exits nonzero before deleting the runner or its receipt.
Preserve the Portable Ollama runner and its lifecycle receipt.
</Warning>

</AgentOnly>

## Install or Upgrade Ollama

Expand Down
2 changes: 1 addition & 1 deletion src/lib/onboard.ts
Original file line number Diff line number Diff line change
Expand Up @@ -3179,7 +3179,7 @@ async function runOnboard(opts: OnboardOptions = {}): Promise<void> {
recoverySessionId,
),
setupInference,
resolveHostLocalInferenceStartupSelection: () => null,
resolveHostLocalInferenceStartupSelection: setupNimFlow.createHermesPortableOllamaInferenceResolver({ runtimeContext: lockedRuntime.portableRuntimeContext, credentialEnv: OLLAMA_PROXY_CREDENTIAL_ENV, getReservationSessionId: () => session?.sessionId, runGatewayOpenshell: runCoreGatewayOpenshell }),
startRecordedStep,
recordStepComplete,
recordStepRejected,
Expand Down
Loading
Loading