Last active
March 15, 2026 02:08
-
-
Save winse/78bd72b3eb1fa04622f749e897a54db2 to your computer and use it in GitHub Desktop.
re-install openclaw on pi-4
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # Re-install openclaw on pi-4 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Welcome to Ubuntu 24.04.4 LTS (GNU/Linux 6.8.0-1047-raspi aarch64) | |
| * Documentation: https://help.ubuntu.com | |
| * Management: https://landscape.canonical.com | |
| * Support: https://ubuntu.com/pro | |
| System information as of Sun Mar 1 11:26:23 UTC 2026 | |
| System load: 0.3 Temperature: 41.4 C | |
| Usage of /: 15.4% of 14.11GB Processes: 159 | |
| Memory usage: 6% Users logged in: 0 | |
| Swap usage: 0% IPv4 address for wlan0: 192.168.123.47 | |
| The list of available updates is more than a week old. | |
| To check for new updates run: sudo apt update | |
| The programs included with the Ubuntu system are free software; | |
| the exact distribution terms for each program are described in the | |
| individual files in /usr/share/doc/*/copyright. | |
| Ubuntu comes with ABSOLUTELY NO WARRANTY, to the extent permitted by | |
| applicable law. | |
| To run a command as administrator (user "root"), use "sudo <command>". | |
| See "man sudo_root" for details. | |
| ubuntu@ubuntu:~$ | |
| ubuntu@ubuntu:~$ df -h | |
| Filesystem Size Used Avail Use% Mounted on | |
| tmpfs 379M 3.2M 376M 1% /run | |
| /dev/sda2 15G 2.2G 12G 17% / | |
| tmpfs 1.9G 0 1.9G 0% /dev/shm | |
| tmpfs 5.0M 0 5.0M 0% /run/lock | |
| /dev/sda1 505M 94M 411M 19% /boot/firmware | |
| tmpfs 379M 12K 379M 1% /run/user/1000 | |
| ubuntu@ubuntu:~$ | |
| ubuntu@ubuntu:~$ sudo adduser openclaw | |
| info: Adding user `openclaw' ... | |
| info: Selecting UID/GID from range 1000 to 59999 ... | |
| info: Adding new group `openclaw' (1001) ... | |
| info: Adding new user `openclaw' (1001) with group `openclaw (1001)' ... | |
| info: Creating home directory `/home/openclaw' ... | |
| info: Copying files from `/etc/skel' ... | |
| New password: | |
| Retype new password: | |
| passwd: password updated successfully | |
| Changing the user information for openclaw | |
| Enter the new value, or press ENTER for the default | |
| Full Name []: | |
| Room Number []: | |
| Work Phone []: | |
| Home Phone []: | |
| Other []: | |
| Is the information correct? [Y/n] Y | |
| info: Adding new user `openclaw' to supplemental / extra groups `users' ... | |
| info: Adding user `openclaw' to group `users' ... | |
| ubuntu@ubuntu:~$ | |
| ubuntu@ubuntu:~$ sudo usermod -aG sudo openclaw | |
| ubuntu@ubuntu:~$ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| openclaw@ubuntu:~$ loginctl user-status $(whoami) | |
| openclaw (1001) | |
| Since: Sun 2026-03-01 11:34:04 UTC; 20s ago | |
| State: active | |
| Sessions: *4 | |
| Linger: no | |
| Unit: user-1001.slice | |
| ├─session-4.scope | |
| │ ├─1661 "sshd: openclaw [priv]" | |
| │ ├─1734 "sshd: openclaw@pts/1" | |
| │ ├─1735 -bash | |
| │ ├─1749 loginctl user-status openclaw | |
| │ └─1750 pager | |
| └─user@1001.service | |
| └─init.scope | |
| ├─1665 /usr/lib/systemd/systemd --user | |
| └─1667 "(sd-pam)" | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Listening on gpg-agent.socket - GnuPG cryptographic agent and passphrase cache. | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Listening on keyboxd.socket - GnuPG public key management service. | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Listening on pk-debconf-helper.socket - debconf communication socket. | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Listening on snapd.session-agent.socket - REST API socket for snapd user session agent. | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Listening on dbus.socket - D-Bus User Message Bus Socket. | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Listening on gpg-agent-ssh.socket - GnuPG cryptographic agent (ssh-agent emulation). | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Reached target sockets.target - Sockets. | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Reached target basic.target - Basic System. | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Reached target default.target - Main User Target. | |
| Mar 01 11:34:06 ubuntu systemd[1665]: Startup finished in 1.101s. | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ export HTTP_PROXY=http://192.168.123.165:23333 | |
| openclaw@ubuntu:~$ export HTTPS_PROXY=http://192.168.123.165:23333 | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" | |
| ==> Checking for `sudo` access (which may request your password)... | |
| [sudo] password for openclaw: | |
| ==> This script will install: | |
| /home/linuxbrew/.linuxbrew/bin/brew | |
| /home/linuxbrew/.linuxbrew/share/doc/homebrew | |
| /home/linuxbrew/.linuxbrew/share/man/man1/brew.1 | |
| /home/linuxbrew/.linuxbrew/share/zsh/site-functions/_brew | |
| /home/linuxbrew/.linuxbrew/etc/bash_completion.d/brew | |
| /home/linuxbrew/.linuxbrew/Homebrew | |
| ==> The following new directories will be created: | |
| /home/linuxbrew/.linuxbrew/bin | |
| /home/linuxbrew/.linuxbrew/etc | |
| /home/linuxbrew/.linuxbrew/include | |
| /home/linuxbrew/.linuxbrew/lib | |
| /home/linuxbrew/.linuxbrew/sbin | |
| /home/linuxbrew/.linuxbrew/share | |
| /home/linuxbrew/.linuxbrew/var | |
| /home/linuxbrew/.linuxbrew/opt | |
| /home/linuxbrew/.linuxbrew/share/zsh | |
| /home/linuxbrew/.linuxbrew/share/zsh/site-functions | |
| /home/linuxbrew/.linuxbrew/var/homebrew | |
| /home/linuxbrew/.linuxbrew/var/homebrew/linked | |
| /home/linuxbrew/.linuxbrew/Cellar | |
| /home/linuxbrew/.linuxbrew/Caskroom | |
| /home/linuxbrew/.linuxbrew/Frameworks | |
| Press RETURN/ENTER to continue or any other key to abort: | |
| ==> /usr/bin/sudo /usr/bin/install -d -o openclaw -g openclaw -m 0755 /home/linuxbrew/.linuxbrew | |
| ==> /usr/bin/sudo /bin/mkdir -p /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/etc /home/linuxbrew/.linuxbrew/include /home/linuxbrew/.linuxbrew/lib /home/linuxbrew/.linuxbrew/sbin /home/linuxbrew/.linuxbrew/share /home/linuxbrew/.linuxbrew/var /home/linuxbrew/.linuxbrew/opt /home/linuxbrew/.linuxbrew/share/zsh /home/linuxbrew/.linuxbrew/share/zsh/site-functions /home/linuxbrew/.linuxbrew/var/homebrew /home/linuxbrew/.linuxbrew/var/homebrew/linked /home/linuxbrew/.linuxbrew/Cellar /home/linuxbrew/.linuxbrew/Caskroom /home/linuxbrew/.linuxbrew/Frameworks | |
| ==> /usr/bin/sudo /bin/chmod ug=rwx /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/etc /home/linuxbrew/.linuxbrew/include /home/linuxbrew/.linuxbrew/lib /home/linuxbrew/.linuxbrew/sbin /home/linuxbrew/.linuxbrew/share /home/linuxbrew/.linuxbrew/var /home/linuxbrew/.linuxbrew/opt /home/linuxbrew/.linuxbrew/share/zsh /home/linuxbrew/.linuxbrew/share/zsh/site-functions /home/linuxbrew/.linuxbrew/var/homebrew /home/linuxbrew/.linuxbrew/var/homebrew/linked /home/linuxbrew/.linuxbrew/Cellar /home/linuxbrew/.linuxbrew/Caskroom /home/linuxbrew/.linuxbrew/Frameworks | |
| ==> /usr/bin/sudo /bin/chmod go-w /home/linuxbrew/.linuxbrew/share/zsh /home/linuxbrew/.linuxbrew/share/zsh/site-functions | |
| ==> /usr/bin/sudo /bin/chown openclaw /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/etc /home/linuxbrew/.linuxbrew/include /home/linuxbrew/.linuxbrew/lib /home/linuxbrew/.linuxbrew/sbin /home/linuxbrew/.linuxbrew/share /home/linuxbrew/.linuxbrew/var /home/linuxbrew/.linuxbrew/opt /home/linuxbrew/.linuxbrew/share/zsh /home/linuxbrew/.linuxbrew/share/zsh/site-functions /home/linuxbrew/.linuxbrew/var/homebrew /home/linuxbrew/.linuxbrew/var/homebrew/linked /home/linuxbrew/.linuxbrew/Cellar /home/linuxbrew/.linuxbrew/Caskroom /home/linuxbrew/.linuxbrew/Frameworks | |
| ==> /usr/bin/sudo /bin/chgrp openclaw /home/linuxbrew/.linuxbrew/bin /home/linuxbrew/.linuxbrew/etc /home/linuxbrew/.linuxbrew/include /home/linuxbrew/.linuxbrew/lib /home/linuxbrew/.linuxbrew/sbin /home/linuxbrew/.linuxbrew/share /home/linuxbrew/.linuxbrew/var /home/linuxbrew/.linuxbrew/opt /home/linuxbrew/.linuxbrew/share/zsh /home/linuxbrew/.linuxbrew/share/zsh/site-functions /home/linuxbrew/.linuxbrew/var/homebrew /home/linuxbrew/.linuxbrew/var/homebrew/linked /home/linuxbrew/.linuxbrew/Cellar /home/linuxbrew/.linuxbrew/Caskroom /home/linuxbrew/.linuxbrew/Frameworks | |
| ==> /usr/bin/sudo /bin/mkdir -p /home/linuxbrew/.linuxbrew/Homebrew | |
| ==> /usr/bin/sudo /bin/chown -R openclaw:openclaw /home/linuxbrew/.linuxbrew/Homebrew | |
| ==> Downloading and installing Homebrew... | |
| remote: Enumerating objects: 322255, done. | |
| remote: Counting objects: 100% (380/380), done. | |
| remote: Compressing objects: 100% (181/181), done. | |
| remote: Total 322255 (delta 264), reused 244 (delta 199), pack-reused 321875 (from 2) | |
| remote: Enumerating objects: 55, done. | |
| remote: Counting objects: 100% (33/33), done. | |
| remote: Total 55 (delta 33), reused 33 (delta 33), pack-reused 22 (from 1) | |
| ==> Updating Homebrew... | |
| ==> Downloading https://ghcr.io/v2/homebrew/core/portable-ruby/blobs/sha256:56b0017d634509e49272a6eccd88f888dd4031404e230f9defb3b21707781310 | |
| ######################################################################## 100.0% | |
| ==> Pouring portable-ruby-3.4.8.arm64_linux.bottle.tar.gz | |
| Warning: /home/linuxbrew/.linuxbrew/bin is not in your PATH. | |
| Instructions on how to configure your shell for Homebrew | |
| can be found in the 'Next steps' section below. | |
| ==> Installation successful! | |
| ==> Homebrew has enabled anonymous aggregate formulae and cask analytics. | |
| Read the analytics documentation (and how to opt-out) here: | |
| https://docs.brew.sh/Analytics | |
| No analytics data has been sent yet (nor will any be during this install run). | |
| ==> Homebrew is run entirely by unpaid volunteers. Please consider donating: | |
| https://github.com/Homebrew/brew#donations | |
| ==> Next steps: | |
| - Run these commands in your terminal to add Homebrew to your PATH: | |
| echo >> /home/openclaw/.bashrc | |
| echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)"' >> /home/openclaw/.bashrc | |
| eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)" | |
| - Install Homebrew's dependencies if you have sudo access: | |
| sudo apt-get install build-essential | |
| For more information, see: | |
| https://docs.brew.sh/Homebrew-on-Linux | |
| - We recommend that you install GCC: | |
| brew install gcc | |
| - Run brew help to get started | |
| - Further documentation: | |
| https://docs.brew.sh | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ echo >> /home/openclaw/.bashrc | |
| echo 'eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)"' >> /home/openclaw/.bashrc | |
| eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv bash)" | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ echo >> /home/openclaw/.bashrc | |
| echo 'export HOMEBREW_INSTALL_FROM_API=1' >> /home/openclaw/.bashrc | |
| echo 'export HOMEBREW_API_DOMAIN="https://mirrors.aliyun.com/homebrew-bottles/api"' >> /home/openclaw/.bashrc | |
| echo 'export HOMEBREW_BREW_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/brew.git"' >> /home/openclaw/.bashrc | |
| echo 'export HOMEBREW_CORE_GIT_REMOTE="https://mirrors.aliyun.com/homebrew/homebrew-core.git"' >> /home/openclaw/.bashrc | |
| echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.aliyun.com/homebrew/homebrew-bottles"' >> /home/openclaw/.bashrc | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ source .bashrc | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ brew update | |
| HOMEBREW_BREW_GIT_REMOTE set: using https://mirrors.aliyun.com/homebrew/brew.git as the Homebrew/brew Git remote. | |
| Already up-to-date. | |
| openclaw@ubuntu:~$ brew install gcc | |
| ==> Installing gcc | |
| ==> Pouring gcc--15.2.0_1.arm64_linux.bottle.tar.gz | |
| Warning: The post-install step did not complete successfully | |
| You can try again using: | |
| brew postinstall gcc | |
| ==> Summary | |
| 🍺 /home/linuxbrew/.linuxbrew/Cellar/gcc/15.2.0_1: 2,036 files, 401.9MB | |
| ==> Running `brew cleanup gcc`... | |
| Disable this behaviour by setting `HOMEBREW_NO_INSTALL_CLEANUP=1`. | |
| Hide these hints with `HOMEBREW_NO_ENV_HINTS=1` (see `man brew`). | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ sudo apt install build-essential unzip | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ brew cleanup --prune=all | |
| openclaw@ubuntu:~$ sudo reboot |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| openclaw@ubuntu:~$ export HTTP_PROXY=http://192.168.123.165:23333 | |
| openclaw@ubuntu:~$ export HTTPS_PROXY=http://192.168.123.165:23333 | |
| openclaw@ubuntu:~$ sudo cp /etc/apt/sources.list.d/ubuntu.sources /etc/apt/sources.list.d/ubuntu.sources.bak | |
| openclaw@ubuntu:~$ sudo sed -i 's|http://ports.ubuntu.com/|https://mirrors.aliyun.com/|g' /etc/apt/sources.list.d/ubuntu.sources | |
| openclaw@ubuntu:~$ sudo sed -i 's|http://ports.ubuntu.com/|https://mirrors.aliyun.com/|g' /etc/apt/sources.list.d/ubuntu.sources | |
| openclaw@ubuntu:~$ sudo apt install tmpreaper | |
| openclaw@ubuntu:~$ sudo tmpreaper 1h /var/tmp | |
| # vnc, chrome,font,tools | |
| #openclaw@ubuntu:~$ sudo apt curl jq xfce4 tightvncserver chromium-browser chromium-codecs-ffmpeg-extra xdg-utils fonts-wqy-microhei imagemagick scrot fonts-noto-color-emoji ristretto gedit | |
| #openclaw@ubuntu:~$ sudo apt sudo fc-cache -fv | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash | |
| % Total % Received % Xferd Average Speed Time Time Time Current | |
| Dload Upload Total Spent Left Speed | |
| 100 16774 100 16774 0 0 71417 0 --:--:-- --:--:-- --:--:-- 71683 | |
| => Downloading nvm from git to '/home/openclaw/.nvm' | |
| => Cloning into '/home/openclaw/.nvm'... | |
| remote: Enumerating objects: 403, done. | |
| remote: Counting objects: 100% (403/403), done. | |
| remote: Compressing objects: 100% (332/332), done. | |
| remote: Total 403 (delta 56), reused 168 (delta 43), pack-reused 0 (from 0) | |
| Receiving objects: 100% (403/403), 404.32 KiB | 2.59 MiB/s, done. | |
| Resolving deltas: 100% (56/56), done. | |
| * (HEAD detached at FETCH_HEAD) | |
| master | |
| => Compressing and cleaning up git repository | |
| => Appending nvm source string to /home/openclaw/.bashrc | |
| => Appending bash_completion source string to /home/openclaw/.bashrc | |
| => Close and reopen your terminal to start using nvm or run the following to use it now: | |
| export NVM_DIR="$HOME/.nvm" | |
| [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm | |
| [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ source .bashrc | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ nvm install 22 | |
| Downloading and installing node v22.22.0... | |
| Downloading https://nodejs.org/dist/v22.22.0/node-v22.22.0-linux-arm64.tar.xz... | |
| ##################################################################################################################################################################################### 100.0% | |
| Computing checksum with sha256sum | |
| Checksums matched! | |
| Now using node v22.22.0 (npm v10.9.4) | |
| Creating default alias: default -> 22 (-> v22.22.0 *) | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ npm config set registry https://registry.npmmirror.com | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ | |
| openclaw@ubuntu:~$ curl -fsSL https://openclaw.ai/install.sh | bash | |
| 🦞 OpenClaw Installer | |
| It's not "failing," it's "discovering new ways to configure the same thing wrong." | |
| ✓ Detected: linux | |
| Install plan | |
| OS: linux | |
| Install method: npm | |
| Requested version: latest | |
| [1/3] Preparing environment | |
| ✓ Node.js v22.22.0 found | |
| · Active Node.js: v22.22.0 (/home/openclaw/.nvm/versions/node/v22.22.0/bin/node) | |
| · Active npm: 10.9.4 (/home/openclaw/.nvm/versions/node/v22.22.0/bin/npm) | |
| [2/3] Installing OpenClaw | |
| ✓ Git already installed | |
| · Installing OpenClaw v2026.2.26 | |
| ✓ OpenClaw npm package installed | |
| ✓ OpenClaw installed | |
| [3/3] Finalizing setup | |
| 🦞 OpenClaw installed successfully (2026.2.26)! | |
| cracks claws Alright, what are we building? | |
| · Starting setup | |
| 🦞 OpenClaw 2026.2.26 (bc50708) — I speak fluent bash, mild sarcasm, and aggressive tab-completion energy. | |
| ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ | |
| ██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██ | |
| ██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██ | |
| ██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██ | |
| ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ | |
| 🦞 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 | |
| │ Enter model manually | |
| │ | |
| ◇ Default model | |
| │ 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 │ | |
| │ 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. │ | |
| │ 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 channel (QuickStart) | |
| │ Skip for now | |
| Updated ~/.openclaw/openclaw.json | |
| Workspace OK: ~/.openclaw/workspace | |
| Sessions OK: ~/.openclaw/agents/main/sessions | |
| │ | |
| ◇ Skills status ─────────────╮ | |
| │ │ | |
| │ Eligible: 4 │ | |
| │ Missing requirements: 40 │ | |
| │ Unsupported on this OS: 7 │ | |
| │ Blocked by allowlist: 0 │ | |
| │ │ | |
| ├─────────────────────────────╯ | |
| │ | |
| ◇ Configure skills now? (recommended) | |
| │ Yes | |
| │ | |
| ◇ Install missing skill dependencies | |
| │ 🔐 1password, 📰 blogwatcher, 📸 camsnap, 🧩 clawhub, 🧲 gifgrep, 🐙 github, 📧 himalaya, 📦 mcporter, 📄 nano-pdf, 💎 obsidian, 🎙️ openai-whisper, 🧾 summarize, 🎞️ | |
| │ video-frames, 𝕏 xurl | |
| │ | |
| ◇ Preferred node manager for skill installs | |
| │ npm | |
| │ | |
| ^^^^^^^^ | |
| │ | |
| ◇ 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? | |
| │ 🚀 boot-md, 📎 bootstrap-extra-files, 📝 command-logger, 💾 session-memory | |
| │ | |
| ◇ Hooks Configured ────────────────────────────────────────────────────────────────╮ | |
| │ │ | |
| │ Enabled 4 hooks: boot-md, bootstrap-extra-files, command-logger, session-memory │ | |
| │ │ | |
| │ You can manage hooks later with: │ | |
| │ openclaw hooks list │ | |
| │ openclaw hooks enable <name> │ | |
| │ openclaw hooks disable <name> │ | |
| │ │ | |
| ├───────────────────────────────────────────────────────────────────────────────────╯ | |
| Config overwrite: /home/openclaw/.openclaw/openclaw.json (sha256 f7cc0a14bbe6f49951e8f1d1ed3b368b420d974ef4d6d94f8b98ec8e2473c980 -> 42dd08d7bd5077831a7f2cf115cea32118024d3b2b7acf303174d91cfe9913cb, backup=/home/openclaw/.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 openclaw. │ | |
| │ │ | |
| ├───────────────────────────────────────────╯ | |
| │ | |
| ◇ Gateway service runtime ────────────────────────────────────────────╮ | |
| │ │ | |
| │ QuickStart uses Node for the Gateway service (stable + supported). │ | |
| │ │ | |
| ├──────────────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◑ Installing Gateway service…... | |
| Installed systemd service: /home/openclaw/.config/systemd/user/openclaw-gateway.service | |
| ◇ Gateway service installed. | |
| │ | |
| ◇ | |
| Health check failed: gateway closed (1006 abnormal closure (no close frame)): no close reason | |
| Gateway target: ws://127.0.0.1:18789 | |
| Source: local loopback | |
| Config: /home/openclaw/.openclaw/openclaw.json | |
| Bind: loopback | |
| │ | |
| ◇ Health check help ────────────────────────────────╮ | |
| │ │ | |
| │ Docs: │ | |
| │ https://docs.openclaw.ai/gateway/health │ | |
| │ https://docs.openclaw.ai/gateway/troubleshooting │ | |
| │ │ | |
| ├────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ 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=1e908d58a5f7b4b3fc98dde1a3150b793da473d9bbc8a4b5 │ | |
| │ Gateway WS: ws://127.0.0.1:18789 │ | |
| │ Gateway: not detected (gateway closed (1006 abnormal closure (no close frame)): no close │ | |
| │ reason) │ | |
| │ Docs: 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 │ | |
| │ │ | |
| ├───────────────────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ Dashboard ready ────────────────────────────────────────────────────────────────╮ | |
| │ │ | |
| │ Dashboard link (with token): │ | |
| │ http://127.0.0.1:18789/#token=1e908d58a5f7b4b3fc98dde1a3150b793da473d9bbc8a4b5 │ | |
| │ 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 openclaw@192.168.123.47 │ | |
| │ Then open: │ | |
| │ http://localhost:18789/ │ | |
| │ http://localhost:18789/#token=1e908d58a5f7b4b3fc98dde1a3150b793da473d9bbc8a4b5 │ | |
| │ Docs: │ | |
| │ https://docs.openclaw.ai/gateway/remote │ | |
| │ https://docs.openclaw.ai/web/control-ui │ | |
| │ │ | |
| ├──────────────────────────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ Web search (optional) ─────────────────────────────────────────────────────────────────╮ | |
| │ │ | |
| │ If you want your agent to be able to search the web, you’ll need an API key. │ | |
| │ │ | |
| │ OpenClaw uses Brave Search for the `web_search` tool. Without a Brave Search API key, │ | |
| │ web search won’t work. │ | |
| │ │ | |
| │ Set it up interactively: │ | |
| │ - Run: openclaw configure --section web │ | |
| │ - Enable web_search and paste your Brave Search API key │ | |
| │ │ | |
| │ Alternative: set BRAVE_API_KEY in the Gateway environment (no config changes). │ | |
| │ 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. | |
| openclaw@ubuntu:~$ |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| openclaw@ubuntu:~$ openclaw pairing approve feishu YR8JM7ZV | |
| 13:49:50 [plugins] feishu_doc: Registered feishu_doc, feishu_app_scopes | |
| 13:49:50 [plugins] feishu_wiki: Registered feishu_wiki tool | |
| 13:49:50 [plugins] feishu_drive: Registered feishu_drive tool | |
| 13:49:50 [plugins] feishu_bitable: Registered bitable tools | |
| 🦞 OpenClaw 2026.2.26 (bc50708) — I'm not saying your workflow is chaotic... I'm just bringing a linter and a helmet. | |
| │ | |
| ◇ Doctor changes ─────────────────────────────────────────────╮ | |
| │ │ | |
| │ Moved channels.feishu single-account top-level values into │ | |
| │ channels.feishu.accounts.default. │ | |
| │ │ | |
| ├──────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ Doctor ──────────────────────────────────────────────╮ | |
| │ │ | |
| │ Run "openclaw doctor --fix" to apply these changes. │ | |
| │ │ | |
| ├───────────────────────────────────────────────────────╯ | |
| Approved feishu sender ou_49868892e9b303a0170464a9898b1524. | |
| openclaw@ubuntu:~$ openclaw doctor --fix | |
| 🦞 OpenClaw 2026.2.26 (bc50708) — I don't judge, but your missing API keys are absolutely judging you. | |
| ▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄ | |
| ██░▄▄▄░██░▄▄░██░▄▄▄██░▀██░██░▄▄▀██░████░▄▄▀██░███░██ | |
| ██░███░██░▀▀░██░▄▄▄██░█░█░██░█████░████░▀▀░██░█░█░██ | |
| ██░▀▀▀░██░█████░▀▀▀██░██▄░██░▀▀▄██░▀▀░█░██░██▄▀▄▀▄██ | |
| ▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀ | |
| 🦞 OPENCLAW 🦞 | |
| ┌ OpenClaw doctor | |
| │ | |
| ◇ Doctor changes ─────────────────────────────────────────────╮ | |
| │ │ | |
| │ Moved channels.feishu single-account top-level values into │ | |
| │ channels.feishu.accounts.default. │ | |
| │ │ | |
| ├──────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ State integrity ─────────────────────────────────────────────────────────────────────────╮ | |
| │ │ | |
| │ - Config file is group/world readable (~/.openclaw/openclaw.json). Recommend chmod 600. │ | |
| │ │ | |
| ├───────────────────────────────────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ Doctor changes ──────────────────────────────────────────────╮ | |
| │ │ | |
| │ - Tightened permissions on ~/.openclaw/openclaw.json to 600 │ | |
| │ │ | |
| ├───────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ Gateway runtime ───────────────────────────────────────────────────────────────────────╮ | |
| │ │ | |
| │ System Node 22+ not found. Install via Homebrew/apt/choco and rerun doctor to migrate │ | |
| │ off Bun/version managers. │ | |
| │ │ | |
| ├─────────────────────────────────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ Gateway service config ───────────────────────────────────────────────────────────────╮ | |
| │ │ | |
| │ - Gateway service uses Node from a version manager; it can break after upgrades. │ | |
| │ (/home/openclaw/.nvm/versions/node/v22.22.0/bin/node) │ | |
| │ - System Node 22+ not found; install it before migrating away from version managers. │ | |
| │ │ | |
| ├────────────────────────────────────────────────────────────────────────────────────────╯ | |
| Installed systemd service: /home/openclaw/.config/systemd/user/openclaw-gateway.service | |
| Previous unit backed up to: /home/openclaw/.config/systemd/user/openclaw-gateway.service.bak | |
| │ | |
| ◇ Security ─────────────────────────────────╮ | |
| │ │ | |
| │ - No channel security warnings detected. │ | |
| │ - Run: openclaw security audit --deep │ | |
| │ │ | |
| ├────────────────────────────────────────────╯ | |
| │ | |
| ◇ Skills status ────────────╮ | |
| │ │ | |
| │ Eligible: 19 │ | |
| │ Missing requirements: 36 │ | |
| │ Blocked by allowlist: 0 │ | |
| │ │ | |
| ├────────────────────────────╯ | |
| │ | |
| ◇ Plugins ──────╮ | |
| │ │ | |
| │ Loaded: 5 │ | |
| │ Disabled: 32 │ | |
| │ Errors: 0 │ | |
| │ │ | |
| ├────────────────╯ | |
| │ | |
| ◇ | |
| │ | |
| ◇ Gateway ──────────────╮ | |
| │ │ | |
| │ Gateway not running. │ | |
| │ │ | |
| ├────────────────────────╯ | |
| │ | |
| ◇ Gateway connection ─────────────────────────────╮ | |
| │ │ | |
| │ Gateway target: ws://127.0.0.1:18789 │ | |
| │ Source: local loopback │ | |
| │ Config: /home/openclaw/.openclaw/openclaw.json │ | |
| │ Bind: loopback │ | |
| │ │ | |
| ├──────────────────────────────────────────────────╯ | |
| │ | |
| ◇ Memory search ───────────────────────────────────────────────────────────────────────────╮ | |
| │ │ | |
| │ Memory search is enabled but no embedding provider is configured. │ | |
| │ Semantic recall will not work without an embedding provider. │ | |
| │ │ | |
| │ │ | |
| │ Fix (pick one): │ | |
| │ - Set OPENAI_API_KEY, GEMINI_API_KEY, VOYAGE_API_KEY, or MISTRAL_API_KEY in your │ | |
| │ environment │ | |
| │ - Configure credentials: openclaw configure --section model │ | |
| │ - For local embeddings: configure agents.defaults.memorySearch.provider and local model │ | |
| │ path │ | |
| │ - To disable: openclaw config set agents.defaults.memorySearch.enabled false │ | |
| │ │ | |
| │ Verify: openclaw memory status --deep │ | |
| │ │ | |
| ├───────────────────────────────────────────────────────────────────────────────────────────╯ | |
| │ | |
| ◇ Gateway ────────────────────────────────────────────────────────────────────────╮ | |
| │ │ | |
| │ Runtime: running (pid 47697, state active, sub running, last exit 0, reason 0) │ | |
| │ │ | |
| ├──────────────────────────────────────────────────────────────────────────────────╯ | |
| Restarted systemd service: openclaw-gateway.service | |
| │ | |
| ◇ | |
| │ | |
| ◇ Gateway ──────────────╮ | |
| │ │ | |
| │ Gateway not running. │ | |
| │ │ | |
| ├────────────────────────╯ | |
| │ | |
| ◇ Gateway connection ─────────────────────────────╮ | |
| │ │ | |
| │ Gateway target: ws://127.0.0.1:18789 │ | |
| │ Source: local loopback │ | |
| │ Config: /home/openclaw/.openclaw/openclaw.json │ | |
| │ Bind: loopback │ | |
| │ │ | |
| ├──────────────────────────────────────────────────╯ | |
| Config overwrite: /home/openclaw/.openclaw/openclaw.json (sha256 7782e02766596cafa7d4b1b65c06087485a40534d497dc589977fed4098316c6 -> e6b960d73aaa3b409b927d7fc4a9882062a49c671a1ce31f6878b25a8476e6d8, backup=/home/openclaw/.openclaw/openclaw.json.bak) | |
| Updated ~/.openclaw/openclaw.json | |
| Backup: ~/.openclaw/openclaw.json.bak | |
| │ | |
| └ Doctor complete. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| openclaw@ubuntu:~$ vi .openclaw/openclaw.json | |
| openclaw@ubuntu:~$ systemctl --user restart openclaw-gateway | |
| openclaw@ubuntu:~$ journalctl --user -u openclaw-gateway -n 100 -f |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment