Skip to content

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#

$intended openshell-compile --input <json> [--output <yaml>] [options]

Compile intent/LIM JSON into OpenShell runtime policy YAML (alias: nemoclaw-compile).

--inputstring *
Path to the JSON input file (see the input shape below). Resolved relative to the working directory.
--outputstring
Path to write the YAML. If omitted, the YAML is printed to stdout.
--runtimestring
Target runtime: generic (default), openclaw, claude-code, or codex-cli. Overrides `runtime` in the input file.
--provider(--providers)string
Provider hint(s), comma-separated: nvidia, anthropic. Overrides `providers` in the input file.
--preset(--presets)string
Comma-separated preset id(s) to request explicitly. Merged with presets inferred from intents.

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.

FieldTypeDefaultNotes
profileNamestring"intended-openshell"Name written into the emitted profile.
runtimegeneric | openclaw | claude-code | codex-cligenericSelects runtime-specific baseline presets.
providersarray of nvidia | anthropic[]Adds provider-specific presets (e.g. nvidia).
intentsUniversalIntent[][]Drives preset inference and allowed HTTP methods.
limEvaluationsDomainLIMEvaluationResult[][]LIM context; influences risk posture and archetypes.
requestedPresetspreset-id array[]Presets to force in regardless of inference.
additionalReadOnlyPathsstring array[]Extra read-only filesystem paths.
additionalReadWritePathsstring array[]Extra read-write filesystem paths.
geofencesOpenShellGeofence[][]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.

json
{
  "profileName": "ci-release-bot",
  "runtime": "openclaw",
  "providers": ["nvidia"],
  "requestedPresets": ["github"],
  "intents": [
    { "proposedAction": "dispatch release workflow", "targetSystem": "github" }
  ]
}

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#

bash
intended openshell-compile \
  --input intended-openshell.json \
  --output intended-openshell.yaml

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:

  • riskPosturebaseline or strict. strict narrows allowed HTTP methods per endpoint based on the intents and LIM evaluations.
  • inferredPresets — presets inferred from the intents, merged with runtime/provider baselines and any requestedPresets.

When you pass --output, the CLI also prints a short summary and a next-step hint:

text
Wrote OpenShell policy to intended-openshell.yaml
Risk posture: strict
Presets: github, nvidia, openclaw_api
Next: openshell policy set intended-openshell.yaml

The leading lines of the YAML itself look like:

yaml
# risk_posture: strict
# inferred_presets: github, nvidia, openclaw_api
version: 1
filesystem_policy:
  include_workdir: true
  read_only: []
  read_write: []
  # …

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.
  • CLI reference — install, authenticate, and the full command map
  • Gateway — how runtime policy is enforced around an agent
OpenShell Commands | Intended