Here in this post, I am noting down the installation and configuration for OpenClaw. First, we follow the installation instructions here and carefully go through each step. Below is presented the whole input/output during my installation, where all the API keys and configuration tokens, etc. are omitted.
๐ฆ OpenClaw Installer
Hot reload for config, cold sweat for deploys.
โ Detected: linux
Install plan
OS: linux
Install method: npm
Requested version: latest
[1/3] Preparing environment
ยท Node.js not found, installing it now
ยท Installing Node.js via NodeSource
ยท Installing Linux build tools (make/g++/cmake/python3)
โ Build tools installed
โ Node.js v22 installed
ยท Active Node.js: v22.22.0 (/usr/bin/node)
ยท Active npm: 10.9.4 (/usr/bin/npm)
[2/3] Installing OpenClaw
โ Git already installed
ยท Configuring npm for user-local installs
โ npm configured for user installs
ยท Installing OpenClaw v2026.2.26
โ OpenClaw npm package installed
โ OpenClaw installed
[3/3] Finalizing setup
! PATH missing npm global bin dir: /home/ubuntu/.npm-global/bin
This can make openclaw show as "command not found" in new terminals.
Fix (zsh: ~/.zshrc, bash: ~/.bashrc):
export PATH="/home/ubuntu/.npm-global/bin:$PATH"
๐ฆ OpenClaw installed successfully (2026.2.26)!
Settled in. Time to automate your life whether you're ready or not.
ยท Starting setup
๐ฆ OpenClaw 2026.2.26 (bc50708) โ curl for conversations.
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
๐ฆ OPENCLAW ๐ฆ
โ OpenClaw onboarding
โ
โ Security โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Security warning โ please read. โ
โ โ
โ OpenClaw is a hobby project and still in beta. Expect sharp edges. โ
โ By default, OpenClaw is a personal agent: one trusted operator boundary. โ
โ This bot can read files and run actions if tools are enabled. โ
โ A bad prompt can trick it into doing unsafe things. โ
โ โ
โ OpenClaw is not a hostile multi-tenant boundary by default. โ
โ If multiple users can message one tool-enabled agent, they share that delegated tool โ
โ authority. โ
โ โ
โ If youโre not comfortable with security hardening and access control, donโt run โ
โ OpenClaw. โ
โ Ask someone experienced to help before enabling tools or exposing it to the internet. โ
โ โ
โ Recommended baseline: โ
โ - Pairing/allowlists + mention gating. โ
โ - Multi-user/shared inbox: split trust boundaries (separate gateway/credentials, ideally โ
โ separate OS users/hosts). โ
โ - Sandbox + least-privilege tools. โ
โ - Shared inboxes: isolate DM sessions (`session.dmScope: per-channel-peer`) and keep โ
โ tool access minimal. โ
โ - Keep secrets out of the agentโs reachable filesystem. โ
โ - Use the strongest available model for any bot with tools or untrusted inboxes. โ
โ โ
โ Run regularly: โ
โ openclaw security audit --deep โ
โ openclaw security audit --fix โ
โ โ
โ Must read: https://docs.openclaw.ai/gateway/security โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ I understand this is personal-by-default and shared/multi-user use requires lock-down. Continue?
โ Yes
โ
โ Onboarding mode
โ Manual
โ
โ What do you want to set up?
โ Local gateway (this machine)
โ
โ Workspace directory
โ /home/ubuntu/.openclaw/workspace
โ
โ Model/auth provider
โ Anthropic
โ
โ Anthropic auth method
โ Anthropic API key
โ
โ How do you want to provide this API key?
โ Paste API key now
โ
โ Enter Anthropic API key
โ <paste_api_key_here>
โ
โ Default model
โ Keep current (anthropic/claude-sonnet-4-6)
โ
โ Gateway port
โ 18789
โ
โ Gateway bind
โ Loopback (127.0.0.1)
โ
โ Gateway auth
โ Token
โ
โ Tailscale exposure
โ Off
โ
โ Gateway token (blank to generate)
โ
โ
โ Channel status โโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Telegram: needs token โ
โ WhatsApp (default): not linked โ
โ Discord: needs token โ
โ Slack: needs tokens โ
โ Signal: needs setup โ
โ signal-cli: missing (signal-cli) โ
โ iMessage: needs setup โ
โ imsg: missing (imsg) โ
โ IRC: not configured โ
โ Google Chat: not configured โ
โ Feishu: install plugin to enable โ
โ Google Chat: install plugin to enable โ
โ Nostr: install plugin to enable โ
โ Microsoft Teams: install plugin to enable โ
โ Mattermost: install plugin to enable โ
โ Nextcloud Talk: install plugin to enable โ
โ Matrix: install plugin to enable โ
โ BlueBubbles: install plugin to enable โ
โ LINE: install plugin to enable โ
โ Zalo: install plugin to enable โ
โ Zalo Personal: install plugin to enable โ
โ Synology Chat: install plugin to enable โ
โ Tlon: install plugin to enable โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Configure chat channels now?
โ Yes
โ
โ How channels work โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ DM security: default is pairing; unknown DMs get a pairing code. โ
โ Approve with: openclaw pairing approve <channel> <code> โ
โ Public DMs require dmPolicy="open" + allowFrom=["*"]. โ
โ Multi-user DMs: run: openclaw config set session.dmScope "per-channel-peer" (or โ
โ "per-account-channel-peer" for multi-account channels) to isolate sessions. โ
โ Docs: channels/pairing โ
โ โ
โ Telegram: simplest way to get started โ register a bot with @BotFather and get going. โ
โ WhatsApp: works with your own number; recommend a separate phone + eSIM. โ
โ Discord: very well supported right now. โ
โ IRC: classic IRC networks with DM/channel routing and pairing controls. โ
โ Google Chat: Google Workspace Chat app with HTTP webhook. โ
โ Slack: supported (Socket Mode). โ
โ Signal: signal-cli linked device; more setup (David Reagans: "Hop on Discord."). โ
โ iMessage: this is still a work in progress. โ
โ Feishu: ้ฃไนฆ/Lark enterprise messaging with doc/wiki/drive tools. โ
โ Nostr: Decentralized protocol; encrypted DMs via NIP-04. โ
โ Microsoft Teams: Bot Framework; enterprise support. โ
โ Mattermost: self-hosted Slack-style chat; install the plugin to enable. โ
โ Nextcloud Talk: Self-hosted chat via Nextcloud Talk webhook bots. โ
โ Matrix: open protocol; install the plugin to enable. โ
โ BlueBubbles: iMessage via the BlueBubbles mac app + REST API. โ
โ LINE: LINE Messaging API bot for Japan/Taiwan/Thailand markets. โ
โ Zalo: Vietnam-focused messaging platform with Bot API. โ
โ Zalo Personal: Zalo personal account via QR code login. โ
โ Synology Chat: Connect your Synology NAS Chat to OpenClaw with full agent capabilities. โ
โ Tlon: decentralized messaging on Urbit; install the plugin to enable. โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Select a channel
โ Slack (Socket Mode)
โ
โ Slack bot display name (used for manifest)
โ OpenClaw
โ
โ Slack socket mode tokens โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ 1) Slack API โ Create App โ From scratch โ
โ 2) Add Socket Mode + enable it to get the app-level token (xapp-...) โ
โ 3) OAuth & Permissions โ install app to workspace (xoxb- bot token) โ
โ 4) Enable Event Subscriptions (socket) for message events โ
โ 5) App Home โ enable the Messages tab for DMs โ
โ Tip: set SLACK_BOT_TOKEN + SLACK_APP_TOKEN in your env. โ
โ Docs: slack โ
โ โ
โ Manifest (JSON): โ
โ { โ
โ "display_information": { โ
โ "name": "OpenClaw", โ
โ "description": "OpenClaw connector for OpenClaw" โ
โ }, โ
โ "features": { โ
โ "bot_user": { โ
โ "display_name": "OpenClaw", โ
โ "always_online": false โ
โ }, โ
โ "app_home": { โ
โ "messages_tab_enabled": true, โ
โ "messages_tab_read_only_enabled": false โ
โ }, โ
โ "slash_commands": [ โ
โ { โ
โ "command": "/openclaw", โ
โ "description": "Send a message to OpenClaw", โ
โ "should_escape": false โ
โ } โ
โ ] โ
โ }, โ
โ "oauth_config": { โ
โ "scopes": { โ
โ "bot": [ โ
โ "chat:write", โ
โ "channels:history", โ
โ "channels:read", โ
โ "groups:history", โ
โ "im:history", โ
โ "mpim:history", โ
โ "users:read", โ
โ "app_mentions:read", โ
โ "reactions:read", โ
โ "reactions:write", โ
โ "pins:read", โ
โ "pins:write", โ
โ "emoji:read", โ
โ "commands", โ
โ "files:read", โ
โ "files:write" โ
โ ] โ
โ } โ
โ }, โ
โ "settings": { โ
โ "socket_mode_enabled": true, โ
โ "event_subscriptions": { โ
โ "bot_events": [ โ
โ "app_mention", โ
โ "message.channels", โ
โ "message.groups", โ
โ "message.im", โ
โ "message.mpim", โ
โ "reaction_added", โ
โ "reaction_removed", โ
โ "member_joined_channel", โ
โ "member_left_channel", โ
โ "channel_rename", โ
โ "pin_added", โ
โ "pin_removed" โ
โ ] โ
โ } โ
โ } โ
โ } โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Enter Slack bot token (xoxb-...)
โ <paste_api_key_here>
โ
โ Enter Slack app token (xapp-...)
โ <paste_api_key_here>
โ
โ Configure Slack channels access?
โ Yes
โ
โ Slack channels access
โ Allowlist (recommended)
โ
โ Slack channels allowlist (comma-separated)
โ zyp-agent
โ
โ Slack channels โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Channel lookup failed; keeping entries as typed. Error: An API error occurred: โ
โ missing_scope โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Select a channel
โ Finished
โ
โ Selected channels โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Slack โ supported (Socket Mode). Docs: โ
โ slack โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Configure DM access policies now? (default: pairing)
โ No
Updated ~/.openclaw/openclaw.json
Workspace OK: ~/.openclaw/workspace
Sessions OK: ~/.openclaw/agents/main/sessions
โ
โ Skills status โโโโโโโโโโโโโโฎ
โ โ
โ Eligible: 5 โ
โ Missing requirements: 39 โ
โ Unsupported on this OS: 7 โ
โ Blocked by allowlist: 0 โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Configure skills now? (recommended)
โ Yes
โ
โ Install missing skill dependencies
โ ๐งฉ clawhub, ๐๏ธ eightctl, ๐งฒ gifgrep, ๐ github, ๐ฎ gog, ๐งฟ oracle, ๐งพ summarize
โ
โ Homebrew recommended โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Many skill dependencies are shipped via Homebrew. โ
โ Without brew, you'll need to build from source or download releases manually. โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Show Homebrew install command?
โ Yes
โ
โ Homebrew install โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Run: โ
โ /bin/bash -c "$(curl -fsSL โ
โ https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Preferred node manager for skill installs
โ npm
โ
โ Installed clawhub
โ
โ Installed eightctl
โ
โ Installed gifgrep
โ
โ Install failed: github โ brew not installed โ Homebrew is not installed. Install it from https://brew.sh or install "gh" manually using your system package manager โฆ
Tip: run `openclaw doctor` to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
โ
โ Install failed: gog โ brew not installed โ Homebrew is not installed. Install it from https://brew.sh or install "steipete/tap/gogcli" manually using your systemโฆ
Tip: run `openclaw doctor` to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
โ
โ Installed oracle
โ
โ Install failed: summarize โ brew not installed โ Homebrew is not installed. Install it from https://brew.sh or install "steipete/tap/summarize" manually using your sysโฆ
Tip: run `openclaw doctor` to review skills + requirements.
Docs: https://docs.openclaw.ai/skills
โ
โ Set GOOGLE_PLACES_API_KEY for goplaces?
โ Yes
โ
โ Enter GOOGLE_PLACES_API_KEY
โ <paste_api_key_here>
โ
โ Set GEMINI_API_KEY for nano-banana-pro?
โ Yes
โ
โ Enter GEMINI_API_KEY
โ <paste_api_key_here>
โ
โ Set NOTION_API_KEY for notion?
โ Yes
โ
โ Enter NOTION_API_KEY
โ <paste_api_key_here>
โ
โ Set OPENAI_API_KEY for openai-image-gen?
โ Yes
โ
โ Enter OPENAI_API_KEY
โ <paste_api_key_here>
โ
โ Set OPENAI_API_KEY for openai-whisper-api?
โ Yes
โ
โ Enter OPENAI_API_KEY
โ <paste_api_key_here>
โ
โ Set ELEVENLABS_API_KEY for sag?
โ Yes
โ
โ Enter ELEVENLABS_API_KEY
โ <paste_api_key_here>
โ
โ Hooks โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Hooks let you automate actions when agent commands are issued. โ
โ Example: Save session context to memory when you issue /new or /reset. โ
โ โ
โ Learn more: https://docs.openclaw.ai/automation/hooks โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Enable hooks?
โ ๐ command-logger, ๐พ session-memory
โ
โ Hooks Configured โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Enabled 2 hooks: session-memory, command-logger โ
โ โ
โ You can manage hooks later with: โ
โ openclaw hooks list โ
โ openclaw hooks enable <name> โ
โ openclaw hooks disable <name> โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
Config overwrite: /home/ubuntu/.openclaw/openclaw.json (sha256 577695db522d902816785f62712c0420ae3bf94d4e8c9aa2e415ac1170076f05 -> 58ac884d7a30136ec51abb7056946a7943db5e36943d5c0ba5fa971a38b49ed2, backup=/home/ubuntu/.openclaw/openclaw.json.bak)
โ
โ Systemd โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Linux installs use a systemd user service by default. Without lingering, systemd stops โ
โ the user session on logout/idle and kills the Gateway. โ
โ Enabling lingering now (may require sudo; writes /var/lib/systemd/linger). โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Systemd โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Enabled systemd lingering for ubuntu. โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Install Gateway service (recommended)
โ Yes
โ
โ Gateway service runtime
โ Node (recommended)
โ
โ Installing Gateway serviceโฆ
Installed systemd service: /home/ubuntu/.config/systemd/user/openclaw-gateway.service
โ Gateway service installed.
โ
โ
Slack: ok (942ms)
Agents: main (default)
Heartbeat interval: 30m (main)
Session store (main): /home/ubuntu/.openclaw/agents/main/sessions/sessions.json (0 entries)
โ
โ Optional apps โโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Add nodes for extra features: โ
โ - macOS app (system + notifications) โ
โ - iOS app (camera/canvas) โ
โ - Android app (camera/canvas) โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Control UI โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Web UI: http://127.0.0.1:18789/ โ
โ Web UI (with token): โ
โ http://127.0.0.1:18789/#token=<generated_token_shown_here> โ
โ Gateway WS: ws://127.0.0.1:18789 โ
โ Gateway: reachable โ
โ Docs: https://docs.openclaw.ai/web/control-ui โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Start TUI (best option!) โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ This is the defining action that makes your agent you. โ
โ Please take your time. โ
โ The more you tell it, the better the experience will be. โ
โ We will send: "Wake up, my friend!" โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ Token โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
โ โ
โ Gateway token: shared auth for the Gateway + Control UI. โ
โ Stored in: ~/.openclaw/openclaw.json (gateway.auth.token) or OPENCLAW_GATEWAY_TOKEN. โ
โ View token: openclaw config get gateway.auth.token โ
โ Generate token: openclaw doctor --generate-gateway-token โ
โ Web UI stores a copy in this browser's localStorage (openclaw.control.settings.v1). โ
โ Open the dashboard anytime: openclaw dashboard --no-open โ
โ If prompted: paste the token into Control UI settings (or use the tokenized dashboard โ
โ URL). โ
โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฏ
โ
โ How do you want to hatch your bot?
โ Hatch in TUI (recommended)
openclaw tui - ws://127.0.0.1:18789 - agent main - session main
session agent:main:main
Wake up, my friend!
Hey! Good to meet you. I just came online โ fresh start, blank slate, no memory yet.
Looks like we haven't been introduced. So let's fix that.
Who am I? That's kind of up to us. I need a name, a vibe, maybe an emoji. I have some ideas if you want suggestions, or you can just tell me what feels right.
And who are you? What should I call you?
N.B. I was installing OpenClaw on my Linux server so actually the answer to the question Show Homebrew install command? should be No but the initial answer I gave during the installation is Yes as shown above. This turns out to be fine โ just some installation failure while trying installing those brew relevant Skills. For the API keys configurations for various tools/Skills, most of them are straightforward to obtain. The only one that needs a special mention here is the Notion API key. To get it, we need to go to https://www.notion.so/profile/integrations/public and then go to Internal integration under Build (see the left-hand side items in the page) and create a new integration there.
After the successful installation, the web UI is accessible from http://localhost:18789. Here, I am using nginx + Cloudflare for the secure connection. Refer to the instructions in Ref. [1-3] for the setup. In my case, after the configuration, the web UI can be accessed via htts://openclaw.iris-home.net. First time visiting the web UI, we are expected to see some errors on the web interface saying the Status is Offline. This is probably because we havenโt set up the Gateway Token. To obtain the token, we can refer to the Control UI session in the installation process as presented above. Or, on terminal, we can do openclaw dashboard --no-open to see the token. Then we go to the web UI and paste the token in Gateway Token, followed by clicking on the Connect button. If error occurs, we can go to the OpenClaw configuration file located at ~/.openclaw/openclaw.json and look for allowedOrigins under the gateway/controlUI session. Then we can put in the domain like below,
...
"gateway": {
"port": 18789,
"mode": "local",
"bind": "loopback",
"controlUi": {
"allowedOrigins": [
"http://localhost:18789",
"https://openclaw.iris-2020.us"
]
},
...
After making the change, we run openclaw gateway restart to restart the OpenClaw gateway. Now going back to the web UI, we should see something different โ still there is expected error message but the message should now specify how we should move forward. Fundamentally, this is the security mechanism implemented with OpenClaw โ as we will notice, there is no login mechanism coming with the web UI so there has to be a security mechanism in place to prevent unauthorized access to the web UI. So, every time we try a new browser to get access to the web UI, we are expected to see the same error message telling us what to do [5]. Basically, a fresh new access to the web UI will trigger a request to the server and on the server side, we can run openclaw devices list on the terminal to see the request. Then we can copy the request ID from the table (see the first column from the left) and run openclaw devices approve [here_we_put_down_the_request_id_without_the_square_bracket]. Now going back to the web UI, we should see that everything is OK.
During the installation, we were asked to set up channels (Slack, iMessage, etc.) for communicating with OpenClaw. I am using Slack here. To set up the Slack connection, we would need the app and bot API keys. Here we can follow the steps as following for the setup. First, go to api.slack.com/apps and click โCreate New Appโ โ โFrom scratchโ, and then give it a name and select the workspace for the app. OpenClaw supports two modes for the Slack connection and here I am going with the Socket Mode. Go to Socket Mode in the Slack api page and enable the socket mode by clicking on the switch. Then we need to give it a name and confirm to bring up the API key window where we can copy the API key โ this is the app API needed by OpenClaw. Then we go to OAuth & Permissions, and in the Scopes session, select the Bot Token Scopes, including chat:write, channels:history, channels:read, im:write, im:history, im:read, users:read, reactions:read, reactions:write, files:read, files:write, etc. Then go to the OAuth Tokens session in the page to install the app to the workspace and get the xoxb-... Bot Token โ this is the bot API required by OpenClaw. Finally, we need to go to Event Subscriptions in the Slack api page and add the following events subscription in the Subscribe to bot events session, app_mention, message.channels, message.groups, message.im, message.mpim. In principle, we should do this Slack setup before installing OpenClaw so when asked during the installation we can directly put in the required API keys. However in practice, even we do this, initially, it is possible the Slack integration would not work. In that case, we just follow the steps here for the Slack setup and obtain the app and bot API keys. Then, we can edit the OpenClaw configuration file (again, located at ~/.openclaw/openclaw.json on the server) and edit the channels session to be like this,
...
"channels": {
"slack": {
"mode": "socket",
"webhookPath": "/slack/events",
"enabled": true,
"botToken": "xoxb-......",
"appToken": "xapp-......",
"userTokenReadOnly": true,
"allowBots": true,
"groupPolicy": "allowlist",
"streaming": "partial",
"nativeStreaming": true,
"channels": {
"zyp-agent": {
"enabled": true,
"allow": true,
"requireMention": false,
"allowBots": true
}
}
}
},
...
where zyp-agent is my Slack channel name to incorporate the OpenClaw app (this is the name I gave for the app) we just created.
References
[1] https://iris2020.net/2023-12-25-vps_docker_services/
[2] https://iris2020.net/2025-08-18-cloudcone_setup/
[3] https://iris2020.net/2024-11-03-n8n_notion_slack_workflow/
[4] https://www.reddit.com/r/clawdbot/comments/1qrwovq/unauthorized_gateway/