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

# Environment Variables

> The complete reference of every environment variable SkillEvaluator reads — providers, embeddings, validation, and live evaluation.

Every environment variable SkillEvaluator reads, grouped by feature area. Each group links to the guide that explains the workflow the variables belong to — this page is the inventory, not the tutorial.

Boolean variables accept `1`, `true`, `yes`, or `on` (case-insensitive) as true, and `0`, `false`, `no`, or `off` as false.

Two historical SkillEvaluator prefixes coexist. `SKILL_EVAL_*` covers provider
and model configuration plus a small set of Tier 3 engine knobs;
`SKILLEVALUATOR_*` covers product-level validation, report paths, scanner
paths, and sandbox/runtime behavior. The prefixes are part of each variable's
literal public name and are not interchangeable. The separately documented
`SKILLSPECTOR_*` family belongs to SkillSpector, provider credential families
belong to their providers, and
[Harbor](https://github.com/harbor-framework/harbor), the open-source agent
evaluation framework used for Tier 3, owns the `HARBOR_*` in-container grader
contract. None belongs to either SkillEvaluator prefix.

## LLM provider

These variables select and configure the provider used for LLM-backed checks and judging. The setup walkthrough, including per-provider export blocks and default models, is in [Providers & Credentials](/skills/skillevaluator/configuration).

| Variable                                                                              | Default                     | Effect                                                                                                                                                                                                                                                                                |
| ------------------------------------------------------------------------------------- | --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SKILL_EVAL_LLM_PROVIDER`                                                             | auto-selected (see below)   | Provider for chat and judging: `openai`, `anthropic`, `nv_build`, `bedrock`, or `openai-compatible`.                                                                                                                                                                                  |
| `SKILL_EVAL_LLM_MODEL`                                                                | provider default            | Chat model override. Required for `openai-compatible` — that provider has no default. Setting it to an empty string is a configuration error.                                                                                                                                         |
| `SKILL_EVAL_LLM_BASE_URL`                                                             | provider default endpoint   | Endpoint override; takes precedence over `OPENAI_BASE_URL` and `ANTHROPIC_BASE_URL`. Required for `openai-compatible`. Ignored by `nv_build`, whose endpoint is fixed to `https://integrate.api.nvidia.com/v1` — point a custom endpoint at the `openai-compatible` provider instead. |
| `SKILL_EVAL_LLM_API_KEY`                                                              | —                           | API key for the `openai-compatible` provider (local servers still require it to be set).                                                                                                                                                                                              |
| `NVIDIA_API_KEY`                                                                      | —                           | Credential for the `nv_build` provider (NVIDIA Build).                                                                                                                                                                                                                                |
| `OPENAI_API_KEY`                                                                      | —                           | Credential for the `openai` provider.                                                                                                                                                                                                                                                 |
| `ANTHROPIC_API_KEY`                                                                   | —                           | Credential for the `anthropic` provider.                                                                                                                                                                                                                                              |
| `OPENAI_BASE_URL`                                                                     | `https://api.openai.com/v1` | Alternate OpenAI endpoint; `SKILL_EVAL_LLM_BASE_URL` wins when both are set.                                                                                                                                                                                                          |
| `ANTHROPIC_BASE_URL`                                                                  | Anthropic SDK default       | Alternate Anthropic endpoint; `SKILL_EVAL_LLM_BASE_URL` wins when both are set.                                                                                                                                                                                                       |
| `AWS_REGION`                                                                          | `us-west-2`                 | Region for the `bedrock` provider.                                                                                                                                                                                                                                                    |
| `AWS_ACCESS_KEY_ID`, `AWS_SECRET_ACCESS_KEY`, `AWS_SESSION_TOKEN`, `AWS_PROFILE`, ... | —                           | Standard AWS credential chain, used as-is by the `bedrock` provider.                                                                                                                                                                                                                  |

### Auto-selection

When `SKILL_EVAL_LLM_PROVIDER` is unset, auto-selection only happens when exactly one public credential is exported:

* `NVIDIA_API_KEY` → `nv_build`
* `OPENAI_API_KEY` → `openai`
* `ANTHROPIC_API_KEY` → `anthropic`

If none is set, LLM-backed commands fail with a configuration error. If more than one is set, that is also a configuration error — there is no silent preference order, so set `SKILL_EVAL_LLM_PROVIDER` explicitly when multiple keys are exported.

### SkillSpector bridge

The `--llm` security analysis runs [SkillSpector](https://github.com/NVIDIA/SkillSpector), which has its own provider environment. SkillEvaluator bridges your configured provider into that invocation with an isolated subprocess environment: only the selected provider's settings and a small set of basic process variables are forwarded, so ambient credentials for other providers never reach SkillSpector. The `nv_build` provider is bridged through SkillSpector's OpenAI-compatible path, pointing `OPENAI_BASE_URL` at the public NVIDIA Build endpoint.

| Variable                | Default                            | Effect                                                                                                                                                                                                                                                             |
| ----------------------- | ---------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| `SKILLSPECTOR_PROVIDER` | bridged from your provider         | Overrides the provider SkillSpector uses. Must name a supported public provider (`openai`, `anthropic`, `bedrock`, or `nv_build`) — only that provider's credential variables are forwarded. Any other value fails closed: SkillSpector runs without a credential. |
| `SKILLSPECTOR_MODEL`    | bridged from your configured model | Model SkillSpector uses for its LLM analysis.                                                                                                                                                                                                                      |

## Embeddings

Tier 2 semantic checks use an OpenAI-compatible embeddings API. Workflow context lives in [Providers & Credentials](/skills/skillevaluator/configuration#embeddings) and [Tier 2: Deduplication](/skills/skillevaluator/tier2-deduplication).

| Variable                        | Default                                 | Effect                                                                                                                                                                                                                                    |
| ------------------------------- | --------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SKILL_EVAL_EMBEDDING_PROVIDER` | falls back to `SKILL_EVAL_LLM_PROVIDER` | Embedding provider: `openai`, `nv_build`, or `openai-compatible`. `anthropic` and `bedrock` are rejected — they provide no embeddings API.                                                                                                |
| `SKILL_EVAL_EMBEDDING_MODEL`    | provider default                        | Embedding model override. Required for `openai-compatible`.                                                                                                                                                                               |
| `SKILL_EVAL_EMBEDDING_BASE_URL` | provider default endpoint               | Embedding endpoint override; for `openai-compatible` it falls back to `SKILL_EVAL_LLM_BASE_URL`. Ignored by `nv_build`, whose endpoint is fixed to `https://integrate.api.nvidia.com/v1` — use `openai-compatible` for a custom endpoint. |
| `SKILL_EVAL_EMBEDDING_API_KEY`  | falls back to `SKILL_EVAL_LLM_API_KEY`  | API key for `openai-compatible` embeddings. `openai` and `nv_build` use their own provider keys.                                                                                                                                          |

## Validation (Tier 1)

These variables tune the static and security checks. The check-by-check guide is [Tier 1: Validation](/skills/skillevaluator/tier1-validation).

| Variable                             | Default         | Effect                                                                                                                                                                                                                                                                                        |
| ------------------------------------ | --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SKILLEVALUATOR_PROFILE`             | `external`      | Default validation profile when no `--profile` flag is passed. The CLI flag always wins.                                                                                                                                                                                                      |
| `SKILLEVALUATOR_BANDIT_PATH`         | auto-discovered | Absolute path to the Bandit executable.                                                                                                                                                                                                                                                       |
| `SKILLEVALUATOR_SEMGREP_PATH`        | auto-discovered | Absolute path to the Semgrep executable.                                                                                                                                                                                                                                                      |
| `SKILLEVALUATOR_SKILLSPECTOR_PATH`   | auto-discovered | Absolute path to the SkillSpector executable.                                                                                                                                                                                                                                                 |
| `SKILLEVALUATOR_SCHEMA_ALLOWED_DIRS` | —               | Extra allowed skill-root directory names (comma- or whitespace-separated), e.g. `data,fixtures`. Additive only — names extend the built-in allowlist and never replace it.                                                                                                                    |
| `SKILLEVALUATOR_SUBMITTER`           | auto-detected   | Explicit submitter identity for the home-path PII check. It is combined with `GITHUB_ACTOR`, `USER`, `LOGNAME`, `USERNAME`, the OS login name, and the skill's declared author — every identity that resolves is protected. If none resolves, the home-path check is disabled with a warning. |
| `SKILLEVALUATOR_PREVIOUS_VERSION`    | —               | The previously published skill version that the opt-in version check (`--checks version`) compares against.                                                                                                                                                                                   |

The scanner path overrides fail closed: a value that is not an absolute, executable file is treated as a configuration error rather than silently falling back to another same-named binary on `PATH`. This prevents a planted executable from hijacking a security scan.

## Live evaluation (Tier 3)

These variables control where results land and how Harbor confines local mode.
The run workflow is [Tier 3: Live Evaluation](/skills/skillevaluator/tier3-live-evaluation);
execution environments are covered in
[Agents & Sandboxes](/skills/skillevaluator/agents-and-sandboxes).

| Variable                                              | Default                                  | Effect                                                                                                                                                                                                                                                                                                                                                                                        |
| ----------------------------------------------------- | ---------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `SKILLEVALUATOR_RESULTS_DIR`                          | `<skill>/evals/results`                  | External root for run results. Precedence for writes: the `--results-dir` flag, then this variable, then the legacy in-skill location. Read commands (`view`, `compare`) honor the same order and also fall back to the legacy location so older runs stay visible.                                                                                                                           |
| `SKILLEVALUATOR_LOCAL_SANDBOX`                        | `require`                                | Local-mode sandbox policy. `require` fails closed when no OS sandbox backend (Bubblewrap on Linux, Seatbelt on macOS) is usable; `prefer` degrades to advisory-only guardrails with a loud warning; `off` skips sandbox probing entirely — for skills you fully trust. No value enables native Windows: local mode fails closed there before anything runs — use WSL2 or `--env-mode docker`. |
| `SKILLEVALUATOR_LOCAL_ALLOW_NET`                      | `true`                                   | Network egress for local-mode trials. Set to `0` to airgap a skill that must not reach the network. Incompatible with the `nv_build` provider — NVIDIA Build local agents require network access, so airgapped runs are rejected up front.                                                                                                                                                    |
| `SKILLEVALUATOR_LOCAL_STRICT_READS`                   | `false`                                  | Tightens the sandbox's read-only view of the host system to a stricter path set.                                                                                                                                                                                                                                                                                                              |
| `SKILLEVALUATOR_LOCAL_INHERIT_AGENT_KEYS`             | `false`                                  | When true, local-mode trials inherit the host's agent credential variables into their ambient environment. Off by default so a hostile skill command cannot read credentials — agents and verifiers receive credentials per-exec instead.                                                                                                                                                     |
| `SKILLEVALUATOR_RUNTIME_DIR`                          | `~/.local/share/skillevaluator/runtimes` | Where local mode looks for managed agent CLIs. Must be a dedicated subdirectory — not the home directory or one of its parents.                                                                                                                                                                                                                                                               |
| `SKILL_EVAL_HARBOR_PREBUILD_TASK_ENVS`                | unset                                    | Set to exactly `1` to opt in to pre-building Harbor task environment images before trials start (other truthy spellings are not honored). Opt-in because concurrent trial cleanup can remove a shared prebuilt image that sibling trials still need.                                                                                                                                          |
| `SKILL_EVAL_JUDGE_MODEL`                              | falls back to `SKILL_EVAL_LLM_MODEL`     | Model override for the Tier 3 dimension judge in standard grading. `LLM_JUDGE_MODEL` is honored as a higher-precedence spelling; when neither is set, the judge uses `SKILL_EVAL_LLM_MODEL`, then the built-in judge default.                                                                                                                                                                 |
| `SKILLEVALUATOR_HARBOR_DIAGNOSTIC_ARTIFACT_MAX_BYTES` | `5242880` (5 MiB)                        | Size cap per diagnostic artifact copied from a Harbor trial into the results directory; oversized artifacts are skipped and recorded in the artifact manifest.                                                                                                                                                                                                                                |

## In-container grader contract

The `HARBOR_*` variables are read by your custom grader *inside* the task container — you never set them yourself, and each has a fixed in-container default. The full reward contract, with defaults and examples, lives in [Custom Graders & Tasks](/skills/skillevaluator/custom-graders).

| Variable             | What it carries                                                                                                                                                   |
| -------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `HARBOR_REWARD_JSON` | Path where your grader writes its `reward.json` score.                                                                                                            |
| `HARBOR_REWARD_TXT`  | Path for the compatibility `reward.txt` dual-write.                                                                                                               |
| `HARBOR_ENTRY_JSON`  | Path to the eval case entry being graded.                                                                                                                         |
| `HARBOR_ATIF_PATH`   | Path to the agent trajectory to grade, serialized in [Agent Trajectory Interchange Format (ATIF)](https://www.harborframework.com/docs/agents/trajectory-format). |
| `HARBOR_LOGS_DIR`    | Root of the in-container log tree; the agent trajectory lives under its `agent/` subdirectory.                                                                    |
| `HARBOR_TESTS_DIR`   | Directory holding the staged grader and test assets.                                                                                                              |
| `HARBOR_GRADER`      | Path to the staged `grader.py`.                                                                                                                                   |

## Set at runtime, not committed

Keep credentials out of skill repositories and CI configuration files. Export provider keys as masked secrets at runtime. Agent credentials for Tier 3 come only from the host environment — `evals/config.yml` `runtime_env` carries non-credential values, and any entry that names or references an operator-owned credential (`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, `NVIDIA_API_KEY`, their base-URL variables, `CLAUDE_CODE_USE_BEDROCK`, and the `AWS_*` credential variables) is rejected at run time, as are names that control the host process (`PATH`, `DOCKER_*`, proxy variables, `SKILLEVALUATOR_*`, and similar). See the blocked-names table in [Providers & Credentials](/skills/skillevaluator/configuration#tier-3-credentials-two-roles). With NVIDIA Build, one exported `NVIDIA_API_KEY` covers both the evaluator and the agents in the `docker` and `local` env-modes.

## See also

* [Providers & Credentials](/skills/skillevaluator/configuration) — the setup walkthrough behind the provider variables
* [CLI Reference](/skills/skillevaluator/cli-reference) — the per-run flags that override many of these variables
* [Gate Your CI](/skills/skillevaluator/ci-integration) — supplying these variables as masked CI secrets