> ## Documentation Index
> Fetch the complete documentation index at: https://docs2.openclaw.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Persetujuan

# `openclaw approvals`

Kelola persetujuan exec untuk **host lokal**, **host Gateway**, atau **host Node**.
Secara default, perintah menargetkan file persetujuan lokal di disk. Gunakan `--gateway` untuk menargetkan Gateway, atau `--node` untuk menargetkan Node tertentu.

Alias: `openclaw exec-approvals`

Terkait:

* Persetujuan exec: [Persetujuan exec](/id/tools/exec-approvals)
* Node: [Node](/id/nodes)

## `openclaw exec-policy`

`openclaw exec-policy` adalah perintah kemudahan lokal untuk menjaga konfigurasi
`tools.exec.*` yang diminta dan file persetujuan host lokal tetap selaras dalam satu langkah.

Gunakan saat Anda ingin:

* memeriksa kebijakan lokal yang diminta, file persetujuan host, dan penggabungan efektif
* menerapkan preset lokal seperti YOLO atau tolak-semua
* menyinkronkan `tools.exec.*` lokal dan file persetujuan host lokal

Contoh:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw exec-policy show
openclaw exec-policy show --json

openclaw exec-policy preset yolo
openclaw exec-policy preset cautious --json

openclaw exec-policy set --host gateway --security full --ask off --ask-fallback full
```

Mode output:

* tanpa `--json`: mencetak tampilan tabel yang dapat dibaca manusia
* `--json`: mencetak output terstruktur yang dapat dibaca mesin

Cakupan saat ini:

* `exec-policy` **hanya lokal**
* perintah ini memperbarui file konfigurasi lokal dan file persetujuan lokal secara bersamaan
* perintah ini **tidak** mendorong kebijakan ke host Gateway atau host Node
* `--host node` ditolak dalam perintah ini karena persetujuan exec Node diambil dari Node saat runtime dan harus dikelola melalui perintah persetujuan yang menargetkan Node
* `openclaw exec-policy show` menandai cakupan `host=node` sebagai dikelola Node saat runtime, bukan menurunkan kebijakan efektif dari file persetujuan lokal

Jika Anda perlu mengedit persetujuan host jarak jauh secara langsung, tetap gunakan `openclaw approvals set --gateway`
atau `openclaw approvals set --node <id|name|ip>`.

## Perintah umum

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw approvals get
openclaw approvals get --node <id|name|ip>
openclaw approvals get --gateway
```

`openclaw approvals get` kini menampilkan kebijakan exec efektif untuk target lokal, Gateway, dan Node:

* kebijakan `tools.exec` yang diminta
* kebijakan file persetujuan host
* hasil efektif setelah aturan presedensi diterapkan

Presedensi ini disengaja:

* file persetujuan host adalah sumber kebenaran yang dapat ditegakkan
* kebijakan `tools.exec` yang diminta dapat mempersempit atau memperluas maksud, tetapi hasil efektif tetap diturunkan dari aturan host
* `--node` menggabungkan file persetujuan host Node dengan kebijakan `tools.exec` Gateway, karena keduanya tetap berlaku saat runtime
* jika konfigurasi Gateway tidak tersedia, CLI kembali ke snapshot persetujuan Node dan mencatat bahwa kebijakan runtime akhir tidak dapat dihitung

## Ganti persetujuan dari file

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw approvals set --file ./exec-approvals.json
openclaw approvals set --stdin <<'EOF'
{ version: 1, defaults: { security: "full", ask: "off", askFallback: "full" } }
EOF
openclaw approvals set --node <id|name|ip> --file ./exec-approvals.json
openclaw approvals set --gateway --file ./exec-approvals.json
```

`set` menerima JSON5, bukan hanya JSON ketat. Gunakan salah satu dari `--file` atau `--stdin`, bukan keduanya.

## Contoh "Jangan pernah minta konfirmasi" / YOLO

Untuk host yang tidak boleh pernah berhenti pada persetujuan exec, atur default persetujuan host ke `full` + `off`:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw approvals set --stdin <<'EOF'
{
  version: 1,
  defaults: {
    security: "full",
    ask: "off",
    askFallback: "full"
  }
}
EOF
```

Varian Node:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw approvals set --node <id|name|ip> --stdin <<'EOF'
{
  version: 1,
  defaults: {
    security: "full",
    ask: "off",
    askFallback: "full"
  }
}
EOF
```

Ini hanya mengubah **file persetujuan host**. Untuk menjaga kebijakan OpenClaw yang diminta tetap selaras, atur juga:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw config set tools.exec.host gateway
openclaw config set tools.exec.security full
openclaw config set tools.exec.ask off
```

Mengapa `tools.exec.host=gateway` dalam contoh ini:

* `host=auto` tetap berarti "sandbox jika tersedia, jika tidak Gateway".
* YOLO berkaitan dengan persetujuan, bukan perutean.
* Jika Anda menginginkan exec host bahkan ketika sandbox dikonfigurasi, buat pilihan host eksplisit dengan `gateway` atau `/exec host=gateway`.

`askFallback` yang dihilangkan default-nya adalah `deny`. Atur `askFallback: "full"`
secara eksplisit saat memutakhirkan host tanpa UI yang harus mempertahankan perilaku tanpa permintaan konfirmasi.

Pintasan lokal:

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw exec-policy preset yolo
```

Pintasan lokal itu memperbarui konfigurasi `tools.exec.*` lokal yang diminta dan default
persetujuan lokal secara bersamaan. Maksudnya setara dengan penyiapan manual dua langkah
di atas, tetapi hanya untuk mesin lokal.

## Pembantu daftar izinkan

```bash theme={"theme":{"light":"min-light","dark":"min-dark"}}
openclaw approvals allowlist add "~/Projects/**/bin/rg"
openclaw approvals allowlist add --agent main --node <id|name|ip> "/usr/bin/uptime"
openclaw approvals allowlist add --agent "*" "/usr/bin/uname"

openclaw approvals allowlist remove "~/Projects/**/bin/rg"
```

## Opsi umum

`get`, `set`, dan `allowlist add|remove` semuanya mendukung:

* `--node <id|name|ip>`
* `--gateway`
* opsi RPC Node bersama: `--url`, `--token`, `--timeout`, `--json`

Catatan penargetan:

* tanpa flag target berarti file persetujuan lokal di disk
* `--gateway` menargetkan file persetujuan host Gateway
* `--node` menargetkan satu host Node setelah menyelesaikan id, nama, IP, atau prefiks id

`allowlist add|remove` juga mendukung:

* `--agent <id>` (default ke `*`)

## Catatan

* `--node` menggunakan resolver yang sama dengan `openclaw nodes` (id, nama, ip, atau prefiks id).
* `--agent` default ke `"*"`, yang berlaku untuk semua agent.
* Host Node harus mengiklankan `system.execApprovals.get/set` (aplikasi macOS atau host Node headless).
* File persetujuan disimpan per host di direktori state OpenClaw
  (`$OPENCLAW_STATE_DIR/exec-approvals.json`, atau
  `~/.openclaw/exec-approvals.json` saat variabel tidak disetel).

## Terkait

* [Referensi CLI](/id/cli)
* [Persetujuan exec](/id/tools/exec-approvals)
