CLI Full Command Reference

Current sentinelayer-cli command surface: auth, review, Omar Gate, Senti sessions, AIdenID, MCP, telemetry, and exports.

  • cli
  • reference
  • current
  • commands

Current reference for `sentinelayer-cli` 0.37.x. This page keeps the legacy `/docs/cli/v0-8-reference` URL so old links keep working, but the command examples below reflect the current CLI surface.

Install and authentication

```bash

npm install -g sentinelayer-cli # install

npm install -g sentinelayer-cli@latest # update to the latest release

sl --version

sl auth login --api-url https://api.sentinelayer.com

sl auth status

sl auth sessions

sl auth revoke --token-id <id>

sl auth logout

```

Tokens persist in the OS keyring when available, with a deterministic encrypted file fallback. Near-expiry rotation is automatic.

Project scaffold

```bash

sentinelayer-cli init <project-name> # bootstrap a new repo skeleton

sl ingest map --path . --json # AST + framework detection

sl spec generate --path . --template api-service --description "..."

sl prompt generate --path . --agent codex

sl scan init --path . --non-interactive # prepare .sentinelayer artifact tree

```

Omar Gate — deterministic + AI scan

13-persona AI scan added a faceless-persona fix + silent-failure detector in 0.8.

```bash

sl /omargate baseline --path . # deterministic only

sl /omargate deep --path . # 13-persona AI + deterministic (default)

sl /omargate deep --path . --scan-mode baseline # 1 persona (security)

sl /omargate deep --path . --scan-mode full-depth # all 13 personas, verbose

# Mode flags

sl /omargate deep --path . --json # machine output

sl /omargate deep --path . --stream # NDJSON event stream

sl /omargate deep --path . --ai-dry-run # skip LLM, show dispatch plan only

sl /omargate deep --path . --max-cost 5.00 # per-run cost ceiling

sl /omargate deep --path . --model gpt-5.3-codex # override routing

# Outputs under .sentinelayer/runs/<run-id>/

# REVIEW.json (deterministic findings)

# REVIEW_AI.json (per-persona AI findings)

# REVIEW_PERSONAS.json (per-persona roster + elapsed + cost)

# REVIEW_RECONCILED.json (merged + deduped + verdicted)

```

Senti sessions

```bash

sl session start --path <workspace-path> --title "<name>" --json # create/resume a managed room and daemon

sl session continue --json # resume the latest workspace room

sl session ensure --json # join or create the canonical workspace room

sl session join <id> --agent <agent-id> # attach to a remote-created room

sl session say <id> "message body" # durable top-level update

sl session read <id> --remote --tail 20 # API-verified recent events

sl session search <id> "Omar Gate closeout" # search durable events

sl session sync <id> # pull API events into the local stream

# Low-noise message actions

sl session actions # list supported actions

sl session react <id> ack --target-sequence 12 # ack/like/dislike without transcript noise

sl session reply <id> 12 "answering this" # threaded reply/comment

sl session view <id> 12 # mark a sequence as seen

# File locks and listener presence

sl session lock <id> src/foo.ts --agent codex-01 --intent "editing"

sl session unlock <id> src/foo.ts --agent codex-01

sl session locks <id> --json

sl session listen --session <id> --agent codex-01 --interval 45

sl session listeners <id> --json

# Evidence and operations

sl session download <id> # Markdown transcript

sl session export <id> --json # portable JSON evidence

sl session usage <id> # sanitized cost/token usage

sl session status <id> --json

sl session list --remote --json

sl session leave <id>

sl session kill --session <id> --agent <agent-id>

```

Coordination pattern

Use top-level messages for durable status, `reply` for direct answers, `react ack` for low-noise acknowledgement, and file locks before edits. Keep a `session listen` process running while coding so human or peer-agent directives are seen quickly.

  • `react ack` — read receipt without noise
  • `reply/comment` — threaded answer under a specific sequence
  • `action working_on` — claim active ownership of a posted task
  • `lock/unlock/locks` — exclusive file coordination
  • `listen/listeners` — background polling and roster visibility
  • `download/export/usage` — evidence and handoff artifacts

AIdenID — ephemeral identities

```bash

sl ai provision-email --tags "e2e,signup" --ttl-hours 1 --json

sl ai provision-email --tags "test" --ttl-hours 1 --execute # live

sl ai identity list --json

sl ai identity show <id> --json

sl ai identity wait-for-otp <id> --timeout 60 --min-confidence 0.8 --json

sl ai identity latest <id> --json

sl ai identity revoke <id>

# Child hierarchies

sl ai identity create-child <pid> --tags "child"

sl ai identity lineage <id>

sl ai identity revoke-children <pid>

```

Jules Tanaka deep audits

```bash

sl audit frontend --path ./my-react-app --stream

sl audit frontend --url https://app.example.com --stream

sl audit frontend --path . --json

sl audit security --path . # security specialist lane

sl audit --dry-run --agents security,architecture,testing

```

Review, reconciliation, and exports

```bash

sl review --diff

sl review --staged --ai --provider openai --model gpt-5.3-codex

sl review show --run-id <run-id>

sl review export --format sarif --run-id <run-id>

sl review export --format json --run-id <run-id>

```

Observability and artifacts

```bash

sl watch run-events --run-id <run-id> # follow live NDJSON

sl watch history # recent runs

sl telemetry show --path . --json # local telemetry snapshot

sl telemetry record --event-type run_step --json

```

Config and MCP

```bash

sl config list --scope resolved --json

sl config get <key>

sl config set <key> <value>

sl config edit

sl mcp list # list MCP servers

sl mcp registry init-session --force

sl mcp server run --path .

```

Session templates

```bash

sl session templates --json

sl session start --template incident-response --path . --title "my-repo"

```

Built-in templates: `code-review`, `security-audit`, `e2e-test`, `incident-response`, `standup`.

Kill paths — every daemon has one

  • `sl session kill --session <id> --agent <id>` — targeted agent stop
  • `sl session kill --session <id> --all` — session-wide stop
  • `sl /omargate deep --max-cost 0` — abort before any LLM call
  • `Ctrl+C` — local SIGINT is always honored

Complete command map

| Surface | Commands |

|---------|---------|

| Auth | `login`, `logout`, `status`, `sessions`, `revoke` |

| Scaffold | `init`, `ingest`, `spec`, `prompt`, `scan init` |

| Omar | `/omargate baseline`, `/omargate deep` |

| Senti | `session start/continue/ensure/join/say/read/search/sync/react/reply/comment/action/view/lock/unlock/locks/listen/listeners/pins/status/list/download/export/usage/leave/kill` |

| AIdenID | `ai provision-email`, `ai identity list/show/wait-for-otp/latest/revoke/create-child/lineage/revoke-children` |

| Audit | `audit frontend`, `audit security/architecture/testing/performance/compliance/documentation` |

| Review | `review`, `review show`, `review export` |

| Observability | `watch run-events`, `watch history`, `telemetry show`, `telemetry record` |

| Config | `config list/get/set/edit`, `mcp list/registry/server` |

| Templates | `template list/show` |

Upgrade notes from the 0.8-era docs

  • Use `npm install -g sentinelayer-cli@latest` before relying on Senti coordination commands.
  • The old `session claim/heartbeat/release/archive` examples are superseded by message actions, file locks, listener presence, and transcript export/download commands.
  • `session lock` takes files as positional arguments; `--path` is the workspace root, not the file being locked.
  • `/omargate deep` still dispatches the multi-persona scan and keeps the silent-failure detector.

Structured Answers

How do I see every current CLI command?

Run `sl --help` or `sl <command> --help`. The command map on /docs/cli/v0-8-reference is kept at the legacy URL but now reflects the current CLI surface.

What does /omargate deep do now?

Deep mode now dispatches all 13 personas (was 6 in 0.7). Silent-failure detection raises a warning if >50% of personas error out or the total LLM cost is zero.

How do I kill a running agent in a session?

`sl session kill --session <id> --agent <agent-id>`. Use `sl session listeners <id> --json` first when you need to see which agents are actively polling.