cli reference
Intended Documentation
OpenShell Commands
Compile OpenShell runtime policy YAML from Open Intent intents and Domain LIM evaluations with @intended/cli's openshell-compile command — input shape, runtimes, providers, presets, risk posture, and output.
OpenShell Commands#
openshell-compile turns an intent/LIM JSON file into OpenShell runtime policy YAML — the sandbox profile (filesystem, process user, allowed network endpoints and binaries, and optional physical-AI geofences) that an OpenShell-compatible runtime such as OpenClaw enforces around an agent. The compile is fully local: it reads a JSON input, infers presets and a risk posture, and emits YAML. No API call is made and no credentials are needed.
Local, deterministic compile
Unlike the other CLI commands, openshell-compile does not talk to the Intended API. It runs compileOpenShellPolicy from @intended-inc/openshell-adapter over your input file and writes the result to stdout or a file.
Command#
nemoclaw-compile is an exact alias for openshell-compile. If --input is missing the command exits non-zero with --input is required.
Input shape#
The input file is parsed by IntendedOpenShellCompileInput. Every field has a default, so a minimal file can be as small as a single intent. --runtime, --provider/--providers, and --preset/--presets flags, when given, override the matching file fields.
| Field | Type | Default | Notes |
|---|---|---|---|
profileName | string | "intended-openshell" | Name written into the emitted profile. |
runtime | generic | openclaw | claude-code | codex-cli | generic | Selects runtime-specific baseline presets. |
providers | array of nvidia | anthropic | [] | Adds provider-specific presets (e.g. nvidia). |
intents | UniversalIntent[] | [] | Drives preset inference and allowed HTTP methods. |
limEvaluations | DomainLIMEvaluationResult[] | [] | LIM context; influences risk posture and archetypes. |
requestedPresets | preset-id array | [] | Presets to force in regardless of inference. |
additionalReadOnlyPaths | string array | [] | Extra read-only filesystem paths. |
additionalReadWritePaths | string array | [] | Extra read-write filesystem paths. |
geofences | OpenShellGeofence[] | [] | Physical-AI bounding regions (for openclaw + robotics). |
Valid preset ids are: claude_code, nvidia, github, clawhub, openclaw_api, openclaw_docs, npm_registry, telegram, discord, jira, slack, pypi, docker_hub.
Geofences are for physical runtimes
geofences apply to runtime: "openclaw" with NVIDIA providers — they define allow/deny bounding regions evaluated on the robot, below the gateway, before any pose-setting action. Digital coding-agent profiles omit them.
Usage#
Output#
The emitted YAML carries the resolved profile name, the inferred risk posture, and the preset list as header comments, followed by the OpenShell policy (filesystem policy, process user/group, named network policies, and any geofences). The compile result also surfaces:
riskPosture—baselineorstrict.strictnarrows allowed HTTP methods per endpoint based on the intents and LIM evaluations.inferredPresets— presets inferred from the intents, merged with runtime/provider baselines and anyrequestedPresets.
When you pass --output, the CLI also prints a short summary and a next-step hint:
The leading lines of the YAML itself look like:
When to use it#
- Stage and review a runtime sandbox profile before enabling execution.
- Inspect which endpoints, binaries, and (for robotics) geofences an agent will be allowed before rollout.
- Produce repeatable, diff-able runtime policy artifacts in CI or operator workflows.
Related#
- CLI reference — install, authenticate, and the full command map
- Gateway — how runtime policy is enforced around an agent