准备工作
#更新系统包列表
sudo apt update
#安装基础下载工具
sudo apt install -y curl
#安装并启动 OpenSSH 服务(方便通过 PC 远程管理)
sudo apt install -y openssh-server
使用官方提供的一键安装脚本进行部署
curl -fsSL https://molt.bot/install.sh | bash
安装过程
oem@oem-NUC7JYB:~$ sudo apt install curl
[sudo] password for oem:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following NEW packages will be installed:
curl
0 upgraded, 1 newly installed, 0 to remove and 281 not upgraded.
Need to get 227 kB of archives.
After this operation, 534 kB of additional disk space will be used.
Get:1 http://mirrors.tuna.tsinghua.edu.cn/ubuntu noble-updates/main amd64 curl amd64 8.5.0-2ubuntu10.7 [227 kB]
Fetched 227 kB in 1s (165 kB/s)
Selecting previously unselected package curl.
(Reading database ... 156255 files and directories currently installed.)
Preparing to unpack .../curl_8.5.0-2ubuntu10.7_amd64.deb ...
Unpacking curl (8.5.0-2ubuntu10.7) ...
Setting up curl (8.5.0-2ubuntu10.7) ...
Processing triggers for man-db (2.12.0-4build2) ...
oem@oem-NUC7JYB:~$ curl -fsSL https://openclaw.ai/install.sh | bash
🦞 OpenClaw Installer
Your terminal just grew claws—type something and let the bot pinch the busywork.
✓ 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.1 (/usr/bin/node)
· Active npm: 10.9.4 (/usr/bin/npm)
[2/3] Installing OpenClaw
· Git not found, installing it now
✓ Git installed
· Configuring npm for user-local installs
✓ npm configured for user installs
· Installing OpenClaw v2026.3.8
✓ OpenClaw npm package installed
✓ OpenClaw installed
[3/3] Finalizing setup
! PATH missing npm global bin dir: /home/oem/.npm-global/bin
This can make openclaw show as "command not found" in new terminals.
Fix (zsh: ~/.zshrc, bash: ~/.bashrc):
export PATH="/home/oem/.npm-global/bin:$PATH"
🦞 OpenClaw installed successfully (OpenClaw 2026.3.8 (3caab92))!
Cozy. I've already read your calendar. We need to talk.
· Starting setup
🦞 OpenClaw 2026.3.8 (3caab92) — Somewhere between 'hello world' and 'oh god what have I built.'
▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄
██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██
██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██
██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██
▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀
🦞 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
│ QuickStart
│
◇ QuickStart ─────────────────────────╮
│ │
│ Gateway port: 18789 │
│ Gateway bind: Loopback (127.0.0.1) │
│ Gateway auth: Token (default) │
│ Tailscale exposure: Off │
│ Direct to chat channels. │
│ │
├──────────────────────────────────────╯
│
◇ Model/auth provider
│ Skip for now
│
◇ Filter models by provider
│ All providers
│
◇ Default model
│ Keep current (default: anthropic/claude-opus-4-6)
│
◇ Model check ───────────────────────────────────────────────────────────────────────────╮
│ │
│ No auth configured for provider "anthropic". The agent may fail until credentials are │
│ added. │
│ │
├─────────────────────────────────────────────────────────────────────────────────────────╯
│
◇ 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 │
│ LINE: 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 │
│ │
├─────────────────────────────────────────────╯
│
◇ 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. │
│ LINE: LINE Messaging API webhook bot. │
│ 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. │
│ 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 channel (QuickStart)
│ Skip for now
Updated ~/.openclaw/openclaw.json
Workspace OK: ~/.openclaw/workspace
Sessions OK: ~/.openclaw/agents/main/sessions
│
◇ Web search ────────────────────────────────────────╮
│ │
│ Web search lets your agent look things up online. │
│ Choose a provider and paste your API key. │
│ Docs: https://docs.openclaw.ai/tools/web │
│ │
├─────────────────────────────────────────────────────╯
│
◇ Search provider
│ Skip for now
│
◇ Skills status ─────────────╮
│ │
│ Eligible: 3 │
│ Missing requirements: 41 │
│ Unsupported on this OS: 7 │
│ Blocked by allowlist: 0 │
│ │
├─────────────────────────────╯
│
◇ Configure skills now? (recommended)
│ Yes
│
◇ Install missing skill dependencies
│ Skip for now
│
◇ Set GOOGLE_PLACES_API_KEY for goplaces?
│ No
│
◇ Set GEMINI_API_KEY for nano-banana-pro?
│ No
│
◇ Set NOTION_API_KEY for notion?
│ No
│
◇ Set OPENAI_API_KEY for openai-image-gen?
│ No
│
◇ Set OPENAI_API_KEY for openai-whisper-api?
│ No
│
◇ Set ELEVENLABS_API_KEY for sag?
│ No
│
◇ 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?
│ Skip for now
Config overwrite: /home/oem/.openclaw/openclaw.json (sha256 a13f4309c085bbad8fdc1bf4b3146f5c528ca93602c2336ce3f6ed99ef5f80a2 -> 4a60cb87d5a5809d3200d2d4e0da493387036de202b8485ec78463c6e19d1a60, backup=/home/oem/.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 oem. │
│ │
├──────────────────────────────────────╯
│
◇ Gateway service runtime ────────────────────────────────────────────╮
│ │
│ QuickStart uses Node for the Gateway service (stable + supported). │
│ │
├──────────────────────────────────────────────────────────────────────╯
│
◑ Installing Gateway service….
Installed systemd service: /home/oem/.config/systemd/user/openclaw-gateway.service
◇ Gateway service installed.
^[[B^[[B^[[B^[[B^[[B│
◇
Agents: main (default)
Heartbeat interval: 30m (main)
Session store (main): /home/oem/.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=0850e685a9c1174324f70ebfe040a7978f71b98810a0cdbd │
│ 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 keeps dashboard URL tokens in memory for the current tab and strips them from the │
│ URL after load. │
│ 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?
│ Open the Web UI
│
◇ Dashboard ready ────────────────────────────────────────────────────────────────╮
│ │
│ Dashboard link (with token): │
│ http://127.0.0.1:18789/#token=0850e685a9c1174324f70ebfe040a7978f71b98810a0cdbd │
│ Copy/paste this URL in a browser on this machine to control OpenClaw. │
│ No GUI detected. Open from your computer: │
│ ssh -N -L 18789:127.0.0.1:18789 oem@192.168.8.112 │
│ Then open: │
│ http://localhost:18789/ │
│ http://localhost:18789/#token=0850e685a9c1174324f70ebfe040a7978f71b98810a0cdbd │
│ Docs: │
│ https://docs.openclaw.ai/gateway/remote │
│ https://docs.openclaw.ai/web/control-ui │
│ │
├──────────────────────────────────────────────────────────────────────────────────╯
│
◇ Workspace backup ────────────────────────────────────────╮
│ │
│ Back up your agent workspace. │
│ Docs: https://docs.openclaw.ai/concepts/agent-workspace │
│ │
├───────────────────────────────────────────────────────────╯
│
◇ Security ──────────────────────────────────────────────────────╮
│ │
│ Running agents on your computer is risky — harden your setup: │
│ https://docs.openclaw.ai/security │
│ │
├─────────────────────────────────────────────────────────────────╯
│
◇ Shell completion ────────────────────────────────────────────────────────╮
│ │
│ Shell completion installed. Restart your shell or run: source ~/.bashrc │
│ │
├───────────────────────────────────────────────────────────────────────────╯
│
◇ Web search ───────────────────────────────────────╮
│ │
│ Web search was skipped. You can enable it later: │
│ openclaw configure --section web │
│ │
│ Docs: https://docs.openclaw.ai/tools/web │
│ │
├────────────────────────────────────────────────────╯
│
◇ What now ─────────────────────────────────────────────────────────────╮
│ │
│ What now: https://openclaw.ai/showcase ("What People Are Building"). │
│ │
├────────────────────────────────────────────────────────────────────────╯
│
└ Onboarding complete. Use the dashboard link above to control OpenClaw.
添加模型
#使用Claude Code
curl -fsSL https://claude.ai/install.sh | bash
#获取Claude Token
claude setup-token
#在OpenClaw中配置Model
openclaw configure
1.选择Model
2.选择Anthropic
3.粘贴生成的token
4.选择模型anthropic/claude-opus-4-x
5.Continue
#使用GPT Plus订阅
npm i -g @openai/codex
#在OpenClaw中配置Model
openclaw configure
1.选择Model
2.选择OpenAI
3.选择OpenAI Codex(ChatGPT OAuth)
4.选择模型openai-codex/gpt-xx-codex
5.Continue
#使用gemini Pro订阅
npm install -g @google/gemini-cli
#在OpenClaw中配置Model
openclaw configure
1.选择Model
2.选择Google
3.选择Google Gemini CLI OAuth
4.选择google-gemini-cli/gemini-3-pro-preview
5.Continue
局域网访问(测试环境用)
# 修改绑定模式为 LAN
oem@oem-NUC7JYB:~$ openclaw config set gateway.bind "lan"
🦞 OpenClaw 2026.3.8 (3caab92) — Less clicking, more shipping, fewer "where did that file go" moments.
Config overwrite: /home/oem/.openclaw/openclaw.json (sha256 1207077e97f104bf987fd25dcdd33abcf3358e8bbb960996cce40e7ac0ae07ed -> 358d1dac3ec36229c0769138e511c49ba4f0c3db3c99ea5857f4e2f425291aa3, backup=/home/oem/.openclaw/openclaw.json.bak)
Updated gateway.bind. Restart the gateway to apply.
#controlUi中添加
"dangerouslyAllowHostHeaderOriginFallback": true,
"allowInsecureAuth": true,
"dangerouslyDisableDeviceAuth": true
# 重启 Gateway
oem@oem-NUC7JYB:~$ openclaw gateway restart
🦞 OpenClaw 2026.3.8 (3caab92) — I'm like tmux: confusing at first, then suddenly you can't live without me.
Restarted systemd service: openclaw-gateway.service
安全提醒:如果对外开放,建议启用认证:
# 使用 Token 认证
openclaw gateway run --auth token --token "your-secret-token"
相关命令
#运行配置向导
openclaw onboard
#前台运行(推荐首次使用)
openclaw gateway run
# 启动后台服务
openclaw gateway start
# 查看运行状态
openclaw gateway status
# 查看实时日志
openclaw logs --follow
#查看当前认证配置:
cat ~/.openclaw/openclaw.json | grep -A 5 '"auth"'
# 查看 gateway token
cat ~/.openclaw/openclaw.json | grep -A 5 '"gateway"' | grep '"token"'
#如果需要禁用认证(不推荐),可以使用:
openclaw gateway run --auth none
#访问web控制台
openclaw dashboard
# 仅打印 URL,不打开浏览器
openclaw dashboard --no-open
#配置AI模型
#OpenClaw 需要配置至少一个 AI 模型的 API 密钥才能正常工作
#配置 Anthropic Claude
# 方式 1:使用 config 命令(推荐)
openclaw config set ANTHROPIC_API_KEY "your-api-key-here"
# 方式 2:使用环境变量
export ANTHROPIC_API_KEY "your-api-key-here"
#配置其他模型
# OpenAI
openclaw config set OPENAI_API_KEY "your-key"
# DeepSeek
openclaw config set DEEPSEEK_API_KEY "your-key"
# 通义千问
openclaw config set DASHSCOPE_API_KEY "your-key"
#查看已配置的模型
openclaw models list