***

title: CLI Reference
description: Current UE commandlet surface and the broader synchronous SDKOps layer
slug: ue/cli
------------

The UE plugin has two command-oriented layers:

* `SDKOps::*` in `CLI/CliOperations.h`, which exposes a broad synchronous C++ surface
* `UForbocAI_SDKCommandlet`, which currently validates and parses a smaller subset of commands

## Commandlet Invocation

### macOS

```bash
"/Users/Shared/Epic Games/UE_5.7/Engine/Binaries/Mac/UnrealEditor-Cmd" \
  "/Path/To/YourProject.uproject" \
  -run=ForbocAI_SDK -Command=<command> \
  -nosplash -nopause -unattended
```

### Windows

```powershell
& "C:\Program Files\Epic Games\UE_5.7\Engine\Binaries\Win64\UnrealEditor-Cmd.exe" `
  "C:\Path\To\YourProject.uproject" `
  -run=ForbocAI_SDK -Command=<command> `
  -nosplash -nopause -unattended
```

Optional overrides on any command:

* `-ApiUrl=https://api.forboc.ai`
* `-ApiKey=<key>`

## Commands Reachable Today Through The Commandlet

`RuntimeCommandlet.cpp` currently validates these commands:

* `doctor`
* `system_status`
* `npc_list`
* `npc_create -Persona="A cautious merchant"`
* `npc_process -Id="npc_123" -Input="What do you sell?"`
* `soul_export -Id="npc_123"`
* `config_set -Key="apiUrl" -Value="https://api.forboc.ai"`
* `config_get -Key="apiUrl"`

Aliases:

* `agent_list` -> `npc_list`
* `agent_create` -> `npc_create`
* `agent_process` -> `npc_process`

## Examples

```bash
# health
-run=ForbocAI_SDK -Command=doctor -ApiUrl=https://api.forboc.ai

# npc lifecycle
-run=ForbocAI_SDK -Command=npc_create -Persona="A suspicious innkeeper"
-run=ForbocAI_SDK -Command=npc_process -Id="npc_123" -Input="Do you have rooms?"

# config persistence (~/.forbocai.json)
-run=ForbocAI_SDK -Command=config_set -Key=apiUrl -Value=https://api.forboc.ai
-run=ForbocAI_SDK -Command=config_set -Key=apiKey -Value=YOUR_KEY
-run=ForbocAI_SDK -Command=config_get -Key=apiUrl
```

## Broader `SDKOps` Surface

`CLI/CliOperations.h` already exposes synchronous wrappers for more than the current commandlet whitelist, including:

* memory
* local and remote cortex
* ghost
* bridge validation and rulesets
* soul import, list, verify, local export
* vector init and embedding generation

If you need those from `UnrealEditor-Cmd`, extend the command validation and argument parsing in `RuntimeCommandlet.cpp`. If you are writing C++ tooling, call `SDKOps::*` directly instead.

## Config Keys

Supported persisted keys:

* `apiUrl`
* `apiKey`
* `modelPath`
* `databasePath`
* `vectorDimension`
* `maxRecallResults`

These are stored in `~/.forbocai.json` and can also be provided via environment variables such as `FORBOCAI_API_URL` and `FORBOCAI_API_KEY`.
