2026年2月19日 星期四

在 MacOS 中以非管理者(Non-administrator)安全執行 Openclaw

以管理者權限執行 openclaw 很方便,但是相對的也讓 openclaw 能取得電腦上所有檔案,甚至雲端的所有檔案及服務。

如果以非管理者,就是一般使用者權限執行 openclaw,能限制 openclaw的使用範圍及能取得的資料。在只有一台電腦也想使用 Openclaw 的情況,能維持基本可控制的安全性。

關鍵是在有管理者權限帳號安裝必要程式,到新建立的一般使用者權限帳號安裝openclaw 及執行openclaw。

使用 nvm (node version manager) 安裝 node.js 可以讓 node.js 在使用者家目錄內執行,openclaw 也以這個 node.js 執行,就可以不需要管理者權限的情況下運作大部分功能。

 
一開始是在 arch linux 上執行 openclaw ,發現使用 nvm 管理 node.js 執行環境時,執行 openclaw 基本功能,包含以Telegram傳送指令都不需要 sudo 權限,標準安裝完成就可以開未登入時自動啟動,這點比 MacOS 好。
 
詢問蝦蝦他是怎麼做到開機自動啟動,回答說是靠 systemd 的 Linger 機制,我執行 openclaw 的帳號有啟用 Linger ,所以安裝時把 openclaw-gateway.service 放到 ~/.config/systemd/user/ 內,開機就會自動啟動。
 

管理者帳號環境

 

1. 建立專用帳號

1.1 到 系統設定/使用者與群組 點 [加入使用者...] 按鈕

1.2 設定視窗中的 [新增使用者] 項目選擇[一般] ,其他項目依序填入資料後按 [建立使用者]

1.3 假設建立的帳號名稱是 [MY-ID]


2. 安裝 Homebrew 

2.1 開啟 [終端機]

2.2 執行 homebrew 網站上提供的安裝指令 

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)”

2.3 安裝完成後會顯示以下3行指令,會將homebrew相關設定加入目前使用者的操作環境。可以先以滑鼠反白這2行指令後複製,方便之後紀錄在文件。

echo >> /Users/[目前登入帳號ID]/.zprofile 

echo 'eval "$(/opt/homebrew/bin/brew shellenv zsh)"' >> /Users/[目前登入帳號ID]/.zprofile

eval "$(/opt/homebrew/bin/brew shellenv zsh)"

假設目前帳號是ABC,指令會是

echo >> /Users/ABC/.zprofile 

echo 'eval "$(/opt/homebrew/bin/brew shellenv zsh)"' >> /Users/ABC/.zprofile

eval "$(/opt/homebrew/bin/brew shellenv zsh)"

 

2.4 完成後可以輸入指令測試

brew help

2.5 因為要打的字太多,寫到一個文字檔案方便到另一個帳號時複製貼上使用。這裡存到每個帳號都可以讀取的 /Users/Shared 資料夾

vi ~/../Shared/homebrew.txt

2.6 先按鍵盤的i進入編輯模式,這時再貼上之前複製的指令。按ESC離開編輯模式,按 : 進入命令模式,再輸入 wq 後按Enter 儲存。

 

3. 安裝擷取畫面及模擬滑鼠鍵盤程式peekaboo

3.1 如果沒安裝xcode,要先到 app store 安裝 xcode

3.2 執行 github 上 peekaboo repo 提供的安裝指令 

brew install steipete/tap/peekaboo

3.3 設定測試 peekaboo 需要的權限(可不做)

3.3.1 到 系統設定/隱私與安全性 ,點 螢幕與系統錄音 右側的小箭頭。

3.3.2 按 螢幕與系統錄音 下方的 + ,輸入密碼後,在出現的檔案選擇視窗右側[搜尋]欄位輸入Terminal

3.3.3 會在左側看到[終端機],選擇[終端機]後按[打開]

3.3.4 開啟一個終端機,輸入網站中的範例指令

peekaboo image --mode screen --retina --path ~/Desktop/screen.png
3.3.5 會出現請求權限對話框,按同意後就會在[桌面]資料夾看到擷取畫面檔案 screen.png

4. 登出目前帳號,在登入畫面選新建立的[MY-ID]帳號登入 




一般使用者帳號環境 

 

5. 設定 homebrew 環境

5.1 在終端機開啟之前儲存的 homebrew 設定指令文件 

vi ~/../Shared/homebrew.txt

5.2 另外開啟一個終端機,把分別貼上文件中的3行指令,把原本指令中 [目前登入帳號ID] 改成現在登入的[MY-ID] 後執行

假設新帳號是 XYZ ,指令會是

echo >> /Users/XYZ/.zprofile 

echo 'eval "$(/opt/homebrew/bin/brew shellenv zsh)"' >> /Users/XYZ/.zprofile

eval "$(/opt/homebrew/bin/brew shellenv zsh)"

 

5.3 輸入 brew help 測試 homebrew 環境正常

 

6. 安裝 nvm (node version manager)

6.1 執行在 github nvm repo 提供的安裝指令  

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash

6.2 執行安裝完成後出現的3行設定指令

export NVM_DIR="$HOME/.nvm"
[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"
[ -s "$NVM_DIR/bash_completion" ] && \. “$NVM_DIR/bash_completion" 

6.3 執行指令測試 nvm正常

nvm list

6.4 安裝 node.js 網站上列出最新的長期支援版 24.13.1 (22版以上就可以) 

nvm install 24.13.1

6.5 如果 AI 要用 google gemini,可以在這個時候安裝 gemini-cli 並完成帳號設定,用其他AI可以跳過這個步驟,在安裝openclaw時再看用什麼方式連接,或是參考其他設定教學

6.5.1 安裝google gemini-cli

npm install -g @google/gemini-cli

6.5.2 執行googel gemini-cli ,會要求在瀏覽器登入要使用的gooogle帳號驗證 

gemini

 

7. 執行安裝 openclaw

curl -fsSL https://openclaw.ai/install.sh | bash

7.1 以方向鍵選擇選項,如果有多個項目,按空白鍵會反白選取,確認選取完成後按Enter

7.2 如果要連接 Telegram 通訊軟體,先在 Telegram 搜尋 @BotFather ,要選帳號旁邊有藍色標籤白色勾的才是正確。

7.2.1 在和 BotFather 對話中輸入建立新機器人指令 /newbot

7.2.2 輸入機器人名稱,會在對話框看到的名稱

7.2.3 輸入機器人的ID,必須要是 _bot 結尾。例如 abcd_bot。

7.2.4 會收到 BotFather 回傳一串文字,包含 Bot token,

格式是 1122334455:aabbccddeeffgg

這個 Token 要保密不可以公開

7.3 跟著步驟安裝完成,可以輸入指令測試

openclaw help

 

8. 設定 openclaw 

openclaw onboard --install-daemon

8.1 步驟中如果選擇 Telegram ,會需要填入取得的 Bot token

8.2 最後可以選擇 web 界面操作,方便設定

 

9. openclaw 常用指令

9.1 顯示主控台網頁連結 

 openclaw dashboard

9.2 手動安裝 gateway 

openclaw gateway install

9.3 手動啟動

openclaw gateway start

9.4 手動停止

openclaw gateway stop

 9.5 修復 openclaw

openclaw doctor --fix

 9.6 查看狀態

openclaw status

 

10. 此時的 openclaw 只有在這個新帳號登入時,才會自動啟動。

如果登入其他帳時,則不會啟動。可以在終端機輸入 sudo su - [MY-ID] 切換到有openclaw 的帳號,執行 openclaw gateway start 手動啟動。或是以下列方法加入成 LaunchDaemon,就會在登入任何帳號時啟動openclaw。

 

11. 允許 Telegram 傳送指令

11.1 打開 Telegram 的機器人帳號,如果成功連接,左下角會有Menu 按鈕,打開會有 Show available commands. /help 等選項。

11.2 輸入 /help 測試連線

會收到 OpenClaw: access not configured. 相關訊息。

最重要的是 Pairing code: 後的英文數字

例如 AABBCCDDEE 

如果重新設定會不同 

11.2 回到前面步驟的的web 界面

如果已經關閉,可以入數 openclaw dashboard ,會顯示網址 

11.3 點 web界面的左側 Chat 按鈕

11.4 在最底部輸入框輸入

  approve telegram AABBCCDDEE

11.5 完成後可以在 Telegram 傳送指令測試

例如 send hello to telegram,看是否收到 openclaw 回傳 hello

 

 

14. 在登入 [MY-ID]帳號時,才可以測試 peekaboo 的截圖和控制功能

12.1 查詢 openclaw 和 node 程式位置 

12.1.1 開啟終端機輸入指令查詢

whereis openclaw

whereis node 

以 nvm 安裝會在 /Users/[MY-ID]/.nvm/versions/node/[node.js 版本號碼]/bin/內


12.2 設定權限
 

12.2.1 開啟 系統設定/隱私與安全性/螢幕與系統錄音
 

12.2.2 按 螢幕與系統錄音 項目下的 + ,出現檔案選擇視窗
如果沒有 + 和-可以按,先開啟終端

機輸入指令 

peekaboo image --mode screen

就會出現 + 和 -
 

12.2.3 按[Command(Win)]+[Shift]+g 會出現「前往:」對話框
 

12.2.4 輸入 /Users/[User ID]/.nvm/versions/node 後按 Enter

12.2.5選擇使用的 node.js 版本資料夾,再選bin資料夾
 

12.2.6 就會看到 openclaw 和 node 執行檔,都按打開按鈕加入清單

12.2.7 在 系統設定/隱私與安全性/輔助使用 同樣加入 node 和 openclaw

12.3 傳送 [add peekaboo skill] 給 openclaw

會自動安裝好相關設定

12.4 傳送 [以 peekaboo 擷取螢幕]

首次會在 MacOS 上出現詢問是否允許,按同意 

完成時會看到回傳的擷取畫面


管理者帳號環境


13. 以 LaunchDaemon 啟動 Openclaw

會在登入任何帳號時自動啟動 Openclaw,但是無法進行有關GUI,例如前面提的 peekaboo 的功能。

13.1 複製設定檔案

在終端機執行指令複製檔案 

sudo cp /Users/[MY-ID]/Library/LaunchAgents/ai.openclaw.gateway.plist /Library/LaunchDaemons/

13.2 編輯加入以 [MY-ID]帳號執行

sudo vim /Library/LaunchDaemons/ai.openclaw.gateway.plist

13.3 加入設定

先按 i進入編輯模式,滑鼠移動到 <true/>後按Enter 新增行,依序輸入要新增的2行資料 

    <key>KeepAlive</key>
    <true/>

之後新增
    <key>UserName</key>
    <string>[MY-ID]</string>

以上這2行
    <key>ProgramArguments</key>

13.4 按ESC離開編輯模式,按:進入命令模式,輸入 wq 後按Enter儲存

13.5 檢查是否成功加入 LaunchDaemon

在終端機輸入

sudo plutil -lint /Library/LaunchDaemons/ai.openclaw.gateway.plist

如果看到一大串文字或是/Library/LaunchDaemons/ai.openclaw.gateway.plist: OK 就是已加入 LaunchDaemon。

 

13.6 手動加入 LaunchDaemon
sudo launchctl bootstrap system /Library/LaunchDaemons/ai.openclaw.gateway.plist
如果出現 Bootstrap failed: 5: Input/output error 可能已經有加入

13.7 重開機並「登入任一帳號」測試看看是否已自動啟動

 

14. 在其他帳號使用 web 界面

14.1 開啟終端機切換到有openclaw 的帳號  

sudo su - [MY-ID]

su 後的 - 非常關鍵,少了這個就不會載入openclaw 帳號的環境設定 

14.2 輸入顯示openclaw主控台網址指令

openclaw dashboard

14.3 將顯示的網址複製到瀏覽器開啟就可以web界面操作

 

15. 使用 python

python 有很多方便的套件,如果 openclaw 有功能需要用到 python ,可以安裝 uv 管理python,uv 的好處是安裝python套件時明顯比其他管理程式快,使用方式也差不多

15.1 開啟終端機使用指令安裝 uv

brew install uv

15.2 關掉終端機重新開啟終端機,測試 uv 可使用

uv -h 

16. Update

執行 openclaw update 升級後如果出現類似以下錯誤,目前採用重開機解決

I'm still hitting that "Cannot find module" error, which is preventing me from using any of my tools or skills (including /skill).

It looks like I'm really stuck. Please try restarting the gateway:
openclaw gateway restart

If that doesn't work, there might be an issue with the installation that needs a manual fix or re-install.

⚠️ 🛠️ Exec: list files in ~/.nvm/versions/node/v24.13.1/lib/node_modules/openclaw/skills failed: Cannot find module '/Users/[MY-ID]/.nvm/versions/node/v24.13.1/lib/node_modules/openclaw/dist/tool-loop-detection-Dh8jmiF5.js' imported from /Users/[MY-ID]/.nvm/versions/node/v24.13.1/lib/node_modules/openclaw/dist/reply-oSe13ewW.js

 

======== 

參考資料:

1.使用 OpenClaw:透過聊天平臺在任何裝置上實現 AI 電腦控制 - 完整指南

https://vocus.cc/article/697c7171fd89780001fa3071 

2. OpenClaw 龍蝦 Peekaboo AI 自動化助手安裝教學:4 步驟新手完整指南

https://medici.work/posts/openclaw-peekaboo-installation-guide

 

1 則留言: