# WhisperGate Integration (No-touch Template) This guide **does not** change your current OpenClaw config automatically. It only generates a JSON snippet you can review. ## Generate config snippet ```bash node scripts/render-openclaw-config.mjs \ /absolute/path/to/WhisperGate/plugin \ openai \ whispergate-no-reply-v1 \ 561921120408698910 ``` Arguments: 1. plugin path 2. provider alias 3. model name 4. bypass user ids (comma-separated, optional) ## Output The script prints JSON for: - `plugins.load.paths` - `plugins.entries.whispergate.config` You can merge this snippet manually into your `openclaw.json`. ## Installer script (with rollback) For production-like install with automatic rollback on error (Node-only installer): ```bash node ./scripts/install-whispergate-openclaw.mjs --install # or wrapper ./scripts/install-whispergate-openclaw.sh --install ``` Uninstall (revert all recorded config changes): ```bash node ./scripts/install-whispergate-openclaw.mjs --uninstall # or wrapper ./scripts/install-whispergate-openclaw.sh --uninstall # or specify a record explicitly # RECORD_FILE=~/.openclaw/whispergate-install-records/whispergate-YYYYmmddHHMMSS.json \ # node ./scripts/install-whispergate-openclaw.mjs --uninstall ``` Environment overrides: - `PLUGIN_PATH` - `NO_REPLY_PROVIDER_ID` - `NO_REPLY_MODEL_ID` - `NO_REPLY_BASE_URL` - `NO_REPLY_API_KEY` - `LIST_MODE` (`human-list` or `agent-list`) - `HUMAN_LIST_JSON` - `AGENT_LIST_JSON` - `CHANNEL_POLICIES_FILE` (standalone channel policy file path) - `CHANNEL_POLICIES_JSON` (only used to initialize file when missing) - `END_SYMBOLS_JSON` The script: - writes via `openclaw config set ... --json` - creates config backup first - restores backup automatically if any install step fails - restarts gateway during install, then validates `whisper-gateway/no-reply` is visible via `openclaw models list/status` - writes a change record for every install/uninstall: - directory: `~/.openclaw/whispergate-install-records/` - latest pointer: `~/.openclaw/whispergate-install-record-latest.json` Policy state semantics: - channel policy file is loaded once into memory on startup - runtime decisions use in-memory state - use `whispergate_policy` tool to update state (memory first, then file persist) - manual file edits do not auto-apply until next restart ## Notes - Keep no-reply API bound to loopback/private network. - If you use API auth, set `AUTH_TOKEN` and align provider apiKey usage.