Keep simplex-chat running
If you want the SimpleX runtime to start automatically on login or machine boot, let the host OS supervise it and keep OpenClaw focused on the channel connection itself.
The plugin CLI can generate and install a host service for the current machine:
systemd —user on Linux, launchd on macOS, and SysV init as a Linux fallback. It prints the generated service file and next commands first, and it asks for interactive approval before writing files. It prints supervisor commands for the operator to run instead of executing them from the plugin. Use —provider systemd, —provider launchd, or —provider sysvinit to override detection.
Common install options:
—dry-run with install to print the plan without writing files.
The repo also ships deployment templates under examples/:
examples/docker-compose.sidecar.yml: OpenClaw plus a privatesimplex-chatsidecar network.examples/systemd/simplex-chat.service: hardened user service template.examples/caddy/Caddyfile: TLS/auth proxy example for exceptional remote WebSocket access.
Decide which settings go where
Use this rule:- put OpenClaw channel behavior in
channels.openclaw-simplex - put
simplex-chatprocess startup flags in the supervised service command line
-
connection.wsUrl -
connection.allowUnsafeRemoteWs -
connection.connectTimeoutMs -
connection.autoAcceptFiles streaming.nativeTransportand related live-reply throttling fieldsmessageTtlSecondsandfilePolicydmPolicy,allowFrom,groupPolicy
- relay and proxy selection:
—server,—xftp-server,—socks-proxy,—host-mode,—smp-proxy - local storage/layout:
—database,—files-folder,—temp-folder,—log-file - runtime process behavior:
—device-name,—maintenance,—mute,—mark-read
Manual service files
The CLI helper above is the preferred path. These examples show what it writes and are useful when you want to manage the service definition yourself.- Linux
- macOS
Adjust the
ExecStart path if simplex-chat is installed somewhere other than %h/.local/bin/simplex-chat. The extra flags above are examples of runtime-owned settings that do not belong in OpenClaw channel config.Start it
- Linux
- macOS
Check status
- Linux
- macOS
active (running).Common startup flag patterns
These are reasonable patterns to consider when you runsimplex-chat as an external service:
- fixed local identity label:
—device-name “OpenClaw SimpleX” - explicit file locations:
—files-folder ~/.simplex/files —temp-folder ~/.simplex/tmp - custom relay policy:
—server “smp1.example.com smp2.example.com” —xftp-server “xftp1.example.com” - SOCKS/Tor routing:
—socks-proxy :9050 —host-mode onion —required-host-mode - stricter message routing:
—smp-proxy always —smp-proxy-fallback no
Maintenance mode
If you need to bring up the runtime without immediately serving chat traffic, run it with—maintenance and start chat manually inside the runtime later.
This is a simplex-chat operational mode, not an OpenClaw channel config field, so it belongs in the service command only when you intentionally want that behavior.
Remote WebSocket endpoints
Prefer loopback, a private sidecar network, orwss:// with access controls. Plaintext ws:// endpoints on non-loopback hosts are blocked by default because the WebSocket API controls the SimpleX runtime.
Only set connection.allowUnsafeRemoteWs: true when that endpoint is protected by a private network, firewall, or authenticated TLS proxy.