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

# Configuration

> Complete reference for every OpenClaw SimpleX channel configuration field including connection settings, DM and group policies, and multi-account setup.

The plugin reads configuration from <code>channels.openclaw-simplex</code>.

## Minimal config

```json theme={null}
{
  "channels": {
    "openclaw-simplex": {
      "enabled": true,
      "connection": {
        "wsUrl": "ws://127.0.0.1:5225"
      }
    }
  }
}
```

## Single-account config

If <code>accounts</code> is not set, the root <code>channels.openclaw-simplex</code> object acts as the default account config.

```json theme={null}
{
  "channels": {
    "openclaw-simplex": {
      "enabled": true,
      "name": "SimpleX",
      "actions": {
        "reactions": true,
        "polls": true
      },
      "reactionLevel": "minimal",
      "dmPolicy": "pairing",
      "contextVisibility": "allowlist",
      "allowFrom": ["*"],
      "groupPolicy": "allowlist",
      "groupAllowFrom": [],
      "mediaMaxMb": 5,
      "messageTtlSeconds": 86400,
      "streaming": {
        "nativeTransport": false,
        "throttleMs": 2000,
        "minChars": 24,
        "wordBoundary": true
      },
      "filePolicy": {
        "autoAccept": true,
        "maxSizeMb": 5
      },
      "connection": {
        "wsUrl": "ws://127.0.0.1:5225",
        "connectTimeoutMs": 15000
      }
    }
  }
}
```

## Multi-account config

If <code>accounts</code> is set, each account entry can override the shared root config. This is the model to use when different SimpleX identities or runtimes should map to different OpenClaw channel accounts.

```json theme={null}
{
  "channels": {
    "openclaw-simplex": {
      "enabled": true,
      "dmPolicy": "pairing",
      "groupPolicy": "allowlist",
      "connection": {
        "wsUrl": "ws://127.0.0.1:5225"
      },
      "accounts": {
        "ops": {
          "name": "Ops",
          "enabled": true,
          "reactionLevel": "extensive",
          "contextVisibility": "allowlist",
          "allowFrom": ["alice", "bob"],
          "connection": {
            "wsUrl": "ws://127.0.0.1:7777"
          }
        }
      }
    }
  }
}
```

## Field reference

| Field                             | Meaning                                                                                                                                                                                                                |
| --------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `enabled`                         | Master toggle for the channel or account.                                                                                                                                                                              |
| `name`                            | Optional display name for an account.                                                                                                                                                                                  |
| `actions.reactions`               | Enable or disable agent reaction actions for this channel/account.                                                                                                                                                     |
| `actions.polls`                   | Enable or disable poll-style message actions for this channel/account.                                                                                                                                                 |
| `reactionLevel`                   | Agent reaction behavior: `off` \| `ack` \| `minimal` \| `extensive`.                                                                                                                                                   |
| `dmPolicy`                        | Direct-message policy: `open` \| `allowlist` \| `pairing` \| `disabled`. Effective default: `pairing`.                                                                                                                 |
| `contextVisibility`               | OpenClaw supplemental context visibility mode for the channel/account: `all` \| `allowlist` \| `allowlist_quote`. Use this when you want tighter control over what extra context the channel may expose to agent runs. |
| `allowFrom`                       | DM allowlist entries.                                                                                                                                                                                                  |
| `dmHistoryLimit`                  | Optional per-DM history limit.                                                                                                                                                                                         |
| `dms`                             | Per-DM config overrides using OpenClaw's shared DM config schema.                                                                                                                                                      |
| `groupPolicy`                     | Group-message policy: `open` \| `allowlist` \| `disabled`.                                                                                                                                                             |
| `groupAllowFrom`                  | Group allowlist entries.                                                                                                                                                                                               |
| `groups.<groupId>.requireMention` | Whether a group message must mention the bot before it is handled.                                                                                                                                                     |
| `groups.<groupId>.tools`          | Per-group tool policy using OpenClaw's shared tool policy schema.                                                                                                                                                      |
| `mediaMaxMb`                      | Maximum accepted/uploaded media size in MB.                                                                                                                                                                            |
| `markdown`                        | Markdown rendering config from OpenClaw's shared channel schema.                                                                                                                                                       |
| `blockStreaming`                  | If true, buffer the response instead of streaming partial output.                                                                                                                                                      |
| `blockStreamingCoalesce`          | Optional response coalescing behavior for blocked streaming.                                                                                                                                                           |
| `streaming.nativeTransport`       | Enables SimpleX-native live assistant text replies. Disabled by default so intermediate assistant text is not exposed unless explicitly enabled.                                                                       |
| `streaming.throttleMs`            | Minimum delay between SimpleX live message edits. Default: `2000`.                                                                                                                                                     |
| `streaming.minChars`              | Minimum added characters before a SimpleX live message update is sent. Default: `24`.                                                                                                                                  |
| `streaming.wordBoundary`          | Prefer live updates at word boundaries. Default: `true`.                                                                                                                                                               |
| `messageTtlSeconds`               | Optional SimpleX message time-to-live applied to outbound text, media, poll, action, and reply sends for this account.                                                                                                 |
| `filePolicy.autoAccept`           | Preferred file auto-accept setting. If omitted, the legacy `connection.autoAcceptFiles` setting is used.                                                                                                               |
| `filePolicy.maxSizeMb`            | Operator-facing receive-side file size policy for diagnostics.                                                                                                                                                         |
| `experimentalChannels`            | Enables capability-gated parsing for SimpleX channel-like targets such as `channel:<id>` and `!<id>`. This does not claim full SimpleX Channels support.                                                               |
| `connection.mode`                 | Connection mode. Only `external` is supported.                                                                                                                                                                         |
| `connection.wsUrl`                | WebSocket URL for the running `simplex-chat` WebSocket API. If set, this wins over `wsHost`/`wsPort`.                                                                                                                  |
| `connection.wsHost`               | Optional host fallback when `wsUrl` is not set. Default: `127.0.0.1`.                                                                                                                                                  |
| `connection.wsPort`               | Optional port fallback when `wsUrl` is not set. Default: `5225`.                                                                                                                                                       |
| `connection.allowUnsafeRemoteWs`  | Allow plaintext remote WebSocket endpoints. Keep this false unless the endpoint is protected by a private network, firewall, or authenticated TLS proxy.                                                               |
| `connection.autoAcceptFiles`      | Whether incoming file transfers should be auto-accepted by the SimpleX runtime.                                                                                                                                        |
| `connection.connectTimeoutMs`     | WebSocket connection timeout in milliseconds.                                                                                                                                                                          |
| `connection.commandTimeoutMs`     | Default SimpleX WebSocket command timeout in milliseconds.                                                                                                                                                             |
| `connection.directoryTimeoutMs`   | Shorter timeout for advisory contact and group directory lookups.                                                                                                                                                      |
| `accounts.<accountId>`            | Per-account overrides for the same schema.                                                                                                                                                                             |

<Note>
  A channel/account is considered configured only when <code>connection.wsUrl</code>, <code>connection.wsHost</code>, or <code>connection.wsPort</code> is present. If none of those are set, OpenClaw will not treat the channel as startup-ready.
</Note>

<Note>
  SimpleX-native live replies apply only to assistant text previews and final text. Media, polls, and explicit message actions continue to use normal SimpleX sends. If a live update fails or a payload contains media, the plugin falls back to normal delivery.
</Note>

## What belongs in plugin config vs runtime startup

This plugin talks to an already running external <code>simplex-chat</code> process. That means the OpenClaw config only models settings the plugin can truthfully use at runtime.

### Good fit for plugin config

* <code>connection.wsUrl</code>, <code>wsHost</code>, <code>wsPort</code>
* <code>connection.allowUnsafeRemoteWs</code>
* <code>connection.connectTimeoutMs</code>, <code>connection.commandTimeoutMs</code>, and <code>connection.directoryTimeoutMs</code>
* <code>connection.autoAcceptFiles</code>
* <code>streaming.nativeTransport</code>, <code>streaming.throttleMs</code>, <code>streaming.minChars</code>, and <code>streaming.wordBoundary</code>
* <code>messageTtlSeconds</code> and <code>filePolicy</code>
* OpenClaw policy and UX settings such as <code>dmPolicy</code>, <code>allowFrom</code>, <code>groupPolicy</code>, <code>contextVisibility</code>, <code>actions</code>, and <code>reactionLevel</code>

### Intentionally not mirrored into plugin config

These are primarily <code>simplex-chat</code> startup or environment flags, so they belong in the host-managed service command line, not in <code>channels.openclaw-simplex</code>:

* transport/bootstrap: <code>--server</code>, <code>--xftp-server</code>, <code>--socks-proxy</code>, <code>--socks-mode</code>, <code>--host-mode</code>, <code>--required-host-mode</code>, <code>--smp-proxy</code>, <code>--smp-proxy-fallback</code>, <code>--smp-web-port</code>
* local process/file layout: <code>-d/--database</code>, <code>-k/--key</code>, <code>--files-folder</code>, <code>--temp-folder</code>, <code>--log-file</code>
* runtime process behavior: <code>--device-name</code>, <code>--maintenance</code>, <code>--mute</code>, <code>--mark-read</code>, <code>--reactions</code>, <code>--create-bot-display-name</code>

Those flags can still be valuable, but the right place to set them is the supervised <code>simplex-chat</code> service definition described in [Runtime Setup](/guide/runtime-setup).
