很多人第一次接触 OpenClaw,是从一个很狼狈的场景开始的——在 PowerShell 里敲下 openclaw 命令,结果返回“无法将‘openclaw’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”。我当时也是这样,第一反应是安装包坏了,后来才发现,真正的问题不在 OpenClaw 本身,而在 Node.js 环境没有就绪。这篇指南想把 OpenClaw 的全平台安装一次性讲透,覆盖 Windows、macOS、Linux、Docker 容器和云服务器五种环境,并顺带把安装之后必做的初始化配置、常见报错和升级维护一起交代清楚。OpenClaw 这类本地优先的 AI 代理工具,装起来本身不难,难的是环境差异带来的各种隐藏问题,所以我把重点放在“为什么这么做”和“出错了怎么查”上。
1. 装 OpenClaw 之前,先想清楚这三件事
1.1 它不是“又一个聊天客户端”,而是一个本地运行时
OpenClaw 本质上是一个本地优先的 AI 代理运行时,你可以把它想成一台装在你自己机器上的“AI 调度中枢”。它接收你的指令,根据任务调用不同的模型后端(云端的 Claude、OpenAI,或者本地的 Ollama、NVIDIA NIM),然后在你的终端里执行命令、读写文件、运行脚本,甚至通过插件去操作飞书、微信这类外部服务。这个定位决定了它的安装逻辑和普通应用软件完全不同:它不是一个双击安装的图形程序,而是一个依赖 Node.js 环境、以 CLI 为核心、以工作目录为“家”的命令行工具。搞明白这一点,你就知道为什么那么多人的安装问题都出在环境而非软件本身。
1.2 安装前先定三件事,能少走一半弯路
在我试过的各种安装组合里,最省事的做法是先不要急着敲命令,而是想清楚下面三件事:
- 运行环境:OpenClaw 基于 Node.js 生态,官方推荐使用 Node.js 的 LTS(长期支持)版本。版本太旧或太新都可能遇到模块兼容问题。
- 模型后端:你是准备走云端 API,还是本地模型?如果本地跑过 Ollama,可以走本地模型路线,不仅免费,私密性也好;如果要效果更强的模型,就准备云端 API 的 Key。
- 部署目标:是在自己的 Windows 笔记本上偶尔用,还是放到 Linux 云服务器上 7x24 小时挂着?这会直接决定你用 npm 全局安装、便携包还是 Docker 容器。
| 部署形态 | 适合场景 | 安装难度 | 维护成本 | 典型问题 |
|---|---|---|---|---|
| Windows 本机 | 日常使用、试玩 | 偏低 | 低 | PATH、执行策略 |
| Linux 服务器 | 长期运行、远程调用 | 中等 | 中 | 守护进程、全局权限 |
| macOS 开发机 | 开发调试 | 偏低 | 低 | Node 版本管理 |
| Docker | 环境隔离、快速迁移 | 中等 | 中 | 数据卷、端口映射 |
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. Windows 安装实操:从 npm 到便携包
2.1 第一步不是装 OpenClaw,而是把 Node.js 备好
在 Windows 上,我见过太多人卡在第一步:直接去 npm 装 OpenClaw,结果各种报错。建议先去 nodejs.org 下载 LTS 版本的安装包,一路默认即可。装完以后,打开一个新的 PowerShell 窗口,输入 node -v 和 npm -v,能看到版本号,这一步才算过了。这里有个容易忽略的细节:务必新开一个终端窗口,因为旧窗口的环境变量不会自动刷新。如果你已经安装了 nvm-windows,也可以用 nvm install <版本号> 加 nvm use <版本号> 切到 LTS 版本,不同项目需要不同 Node 版本时会方便很多。
2.2 npm 全局安装,以及“cmdlet 识别不了”的根因
环境就绪后,在 PowerShell 里执行官方提供的 npm 全局安装命令。全局安装的意思是把 openclaw 可执行文件放到 npm 的全局 bin 目录,让你在任意路径下都能直接调用。很多人装完以后敲 openclaw 却提示 “无法将‘openclaw’项识别为 cmdlet、函数、脚本文件或可运行程序的名称”,根因十有八九是这个全局 bin 目录没有加入当前用户的 PATH 环境变量。npm 在 Windows 上通常会提示 “New minor version of npm available” 这类信息,但不会主动告诉你全局 bin 在哪。你可以用 npm prefix -g 查全局目录,然后用 npm root -g 找到包安装位置。把 %APPDATA%\npm(新版 npm 的全局 bin 目录,通常就是这个)加进用户 PATH,重开终端即可。另一个小坑是,如果你当时安装了多个 Node 版本,全局 bin 目录可能指向其中一个版本专用的路径,这时候用 nvm 切版也会影响 openclaw 是否可用,要注意保持一致。
2.3 想指定目录安装?我给你两条路线
有人问过“PowerShell 安装 openclaw 能指定目录吗”,答案是可以。一种方式是在 npm 全局安装时用 --prefix 参数指定目录,比如:
bash复制npm install -g openclaw --prefix "D:\tools\openclaw"
这样可执行文件会放进 D:\tools\openclaw,对应的全局 node_modules 也一起放到那里,你需要把这个目录也加进 PATH。这种方式适合你不想让 npm 把文件散落在 C 盘用户目录的情形。另一种是便携包路线:OpenClaw 社区和第三方开发者有提供便携版本,本质上是把 Node 运行时、OpenClaw 依赖和一个启动脚本打包在一起,解压后直接运行,不污染系统环境,也不需要提前装 Node。便携包适合在公司电脑或临时机器上使用,缺点是需要手动关注更新,因为它不会走 npm 的更新链路。
2.4 Windows 上最容易遇到的三类报错
- 权限类:安装或运行时报 EPERM / EACCES,多半是终端不是管理员权限,或者 npm 全局目录本身没有写权限。不要无脑加 sudo / 管理员,先检查目录权限。
- 执行策略类:PowerShell 提示“无法加载文件 xxx.ps1,因为在此系统上禁止运行脚本”,这是 PowerShell 执行策略限制。不要直接关掉整个执行策略,可以在当前用户下设置,比如
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser。 - 终端缓存类:命令明明装好了,也能在文件管理器里看到可执行文件,但新终端就是识别不了,回到 2.2 检查 PATH,确认无误后重开终端。
3. macOS 与 Linux:命令几乎一样,坑不一样
3.1 macOS:先解决 Node 版本管理再谈安装
macOS 上默认不带 Node.js,所以第一步也是装 Node。这里我强烈建议用 nvm 而不是直接装官网 pkg,因为 OpenClaw 升级频繁,偶尔需要切换 Node 版本,nvm 可以随时回退。在终端里:
bash复制curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
nvm install --lts
nvm use --lts
然后按官方文档用 npm 全局安装。macOS 上有两个容易踩的坑:一是如果之前用 pkg 方式装过 Node,再装 nvm 会出现路径冲突;二是全局命令装完后,如果 zsh 的 PATH 没配置对,可能出现 “command not found: openclaw”。前者建议清理 /usr/local/bin 下的 node 符号链接,后者把 nvm 提供的 node 路径和 $(npm prefix -g)/bin 加到 ~/.zshrc 的 PATH 即可。
3.2 Linux 服务器:别用系统自带的老 Node
很多 Linux 服务器教程会让人直接用 apt install nodejs,问题在于某些老发行版自带的 Node 版本停留在 16 甚至 12,OpenClaw 跑起来会直接报语法错误。我用过的稳妥做法是直接装 NodeSource 提供的 LTS 版本,或者用 nvm 安装。对于 Debian/Ubuntu 类系统,可以用:
bash复制curl -fsSL https://deb.nodesource.com/setup_lts.x | bash -
apt install -y nodejs
装完后 node -v 如果显示 v20 以上的 LTS 版本就没问题。接下来 npm 全局安装 OpenClaw。这里特别提醒一句:不要在 root 用户下直接 sudo npm install -g,全局包权限冲突会很难受。要么用普通用户安装,要么配合 nvm 做用户级安装,把 /etc/profile 或 ~/.bashrc 里的 PATH 配好。
3.3 全局权限才是 Linux 上真正容易爆的雷
Linux 下常见的报错是这样的:npm install -g 执行完,提示成功,但敲 openclaw 却提示 Permission denied 或者 command not found。前者往往是 npm 全局目录被安装在某用户目录而你没有执行权限,后者还是 PATH 问题。我习惯用 npm config get prefix 来看全局目录,如果发现指向 /usr/local,普通用户写不进去,就把 prefix 改到用户级目录,比如 ~/.npm-global,再把对应的 bin 目录加进 PATH。这样不仅绕开了权限问题,不同账户之间也互不干扰。配合 ps aux | grep -i openclaw 这类进程查询命令,排查服务状态也方便很多。
4. Docker 部署与云端后台常驻
4.1 为什么我最终在服务器上选择了 Docker
如果只是在本地试玩,直接 npm 全局安装就行。但一旦你想在云服务器上长时间跑 OpenClaw,我建议改用 Docker。理由有四个:一是环境隔离,不会跟服务器上的其他 Node 项目抢依赖;二是升级和回滚都方便,镜像拉取/切换即可;三是数据用卷挂载,重装容器不会丢工作区;四是网络端口可控,可以只暴露需要的端口给局域网或外部服务。当然代价是你要多懂一点 Docker 的卷和网络概念,但对于已经装了 Docker 的人来说,这个成本可以忽略。
4.2 一条可复制的 Docker 启动命令
假设你已经拉取了 OpenClaw 官方镜像,一个典型的启动命令长这样:
bash复制docker run -d \
--name openclaw \
-v ~/.openclaw:/root/.openclaw \
-v ~/openclaw-workspace:/workspace \
-p 3000:3000 \
--restart unless-stopped \
openclaw:latest
这里我有意做了几个设计决定:-v 挂载把配置目录和工作目录都放到宿主机,容器删了数据还在;-p 把容器的 3000 端口映射到宿主机,方便后续用 Web 界面或 API 访问;--restart unless-stopped 保证服务器重启后容器自动拉起。刚接触 Docker 的人最容易犯的错是忘了挂载卷,结果容器一删,配置全丢,回头还得重新配模型和权限。
4.3 云服务器上不靠手动 nohup,用进程守护
如果你不想用 Docker,直接在云服务器上 npm 装好 OpenClaw 后,不要用 nohup 直接扔在后台,因为终端一关或进程崩溃就没有人替你拉起。建议用 systemd 把它做成一个服务,写一个 /etc/systemd/system/openclaw.service,核心配置大致是:
ini复制[Unit]
Description=OpenClaw Service
After=network.target
[Service]
User=youruser
ExecStart=/path/to/openclaw serve
Restart=always
RestartSec=5
[Install]
WantedBy=multi-user.target
启用后用 systemctl daemon-reload、systemctl enable --now openclaw 就能开机自启。这套方案比 nohup 稳很多,也比 Docker 直观,适合不喜欢容器抽象、习惯传统进程管理的读者。如果你同时管理多个 Node 进程,pm2 也是不错的选择,但 systemd 是买一台新服务器时最省心的方案,不用额外装东西。
5. 装完不等于能用:初始化配置与验证
5.1 验证安装成功的三个标准
很多人以为终端里敲 openclaw --version 能输出版本号就算装好了。其实真正的“装好”,还要满足三件事:第一,openclaw --version 能正常输出版本号;第二,首次运行能自动生成配置目录,也就是 home 目录下的 .openclaw 文件夹;第三,能跟至少一个模型后端成功建立连接并完成一次对话。如果只满足第一条,后续一运行就报配置文件缺失、模型连接失败,那说明安装链路虽然通了,但初始化还没有完成。
5.2 .openclaw 目录里都有什么
首次运行后,你会在 home 目录下看到一个 .openclaw 文件夹。这个目录是 OpenClaw 的“家”,配置、审批规则、运行时数据都存在里面。其中两个文件特别值得关注:一个是 workspace 目录,它默认指向 c:\users\administrator\.openclaw\workspace(Windows)或 ~/.openclaw/workspace(Linux/macOS),是 AI 执行任务时的默认工作区,你可以在配置里改成自己习惯的项目目录;另一个是 exec-approvals.json,这个文件控制哪些命令需要经过你审批才能执行。热词里有人问过 legacy exec approvals exist at /root/.openclaw/exec-approvals.json 这类提示,其实就是旧版本留下的审批规则文件,新版本会读取并兼容它,提示的意思是你可以手动检查或清理旧的审批项。还有 runtime metadata 这类文件记录的是运行时状态,可以用来排查运行异常。
5.3 模型怎么接:云端 API、本地 Ollama、NVIDIA NIM
OpenClaw 最核心的配置就是模型接入。云端 API 方式比较直接,在 config 里填入对应的 API Key 和模型名即可。如果你不想把 Key 暴露在外,可以用自定义中转站的方式,把 API base URL 指向自己配置的网关服务,OpenClaw 支持这种自定义端点配置。本地模型路线则依赖 Ollama,先在本地启动 Ollama 服务,然后在 OpenClaw 里把模型后端指向 http://127.0.0.1:11434,再填上你拉取的模型名称,比如 llama3 这类。用本地模型的好处是免费、离线可用,劣势是模型的推理能力跟云端旗舰模型有差距。NVIDIA NIM 是另一条路线,它可以把优化的模型容器跑在有 GPU 的机器上,OpenClaw 配置里按 NVIDIA NIM 的 endpoint 填写即可。第一次接模型最容易犯的错是搞混 base URL 和完整 endpoint,建议先在外面用 curl 测一下再填进配置,能省很多排查时间。
5.4 用 skills 扩展能力,接入飞书和微信
OpenClaw 和 ClawHub 的关系可以用“运行时”和“应用市场”来类比:OpenClaw 本身是执行环境,ClawHub 上则躺着各种 skills 和插件,安装后可以给 OpenClaw 增加新的能力。比如你可以通过官方或社区插件把 OpenClaw 接到飞书群里,让它成为群里的机器人,自动回复或执行任务;也有微信插件可以让它在个人微信里帮你处理消息。这类接入的安装本质上就是装 skill、配置账号凭证、授权运行权限三步。还有人在用 Obsidian 这类笔记软件结合 OpenClaw 做项目管理,就是把 Obsidian 的 vault 目录当作 workspace 或数据源,让 AI 在里面读取、整理项目笔记。这些扩展有一个共同的坑:插件一旦需要外部 API,就要仔细确认回调地址、端口和 Token 是否和配置一致,否则经常会出现“本地能跑、外部访问不到”的尴尬局面。
6. 升级、关闭与日常维护命令
6.1 升级通道:stable 和 dev 怎么选
OpenClaw 的升级机制非常直接,用 openclaw update --channel stable 或 openclaw update --channel dev 就可以切换频道并升级。stable 是这个工具的默认稳定版,适合生产环境和日常使用;dev 是开发版,功能更新更快,但偶尔会有不稳定的行为。我的建议是:如果你只是个人使用,想要新功能,可以用 dev 尝鲜;但如果你把它接入到工作流或团队服务里,务必停在 stable。升级后如果发现行为异常,可以先看看 runtime metadata 或日志,确认是不是新版本改了配置格式。
6.2 回滚怎么做
很多人不知道 OpenClaw 可以回滚版本。如果你升级后遇到问题,而你又恰好把配置和数据都放在 .openclaw 目录里,最简单的回滚方式是重装指定旧版本。以 npm 安装为例,npm install -g openclaw@旧版本号 就能装回之前的版本。如果是 Docker 部署,直接 docker pull 旧镜像 tag 并重启容器即可。这里有个经验:升级前最好先备份 .openclaw 目录和 workspace,成本很低,但能救急。
6.3 关闭和重启的正确姿势
“关闭 OpenClaw”这个问题看似简单,其实要看你怎么启动的它。如果是前台启动,Ctrl+C 即可;如果是后台服务,要用 systemctl stop openclaw 或者 docker stop openclaw 来停;如果是用 pm2 管理的,则是 pm2 stop openclaw。停完以后用 ps aux | grep -i openclaw 检查一下进程是否真的退出,避免残留进程占用端口。如果你遇到端口占用导致重启失败,八成就是上一次没有彻底停掉旧进程。
6.4 日常维护的几个实用命令清单
我把平时用得最多的命令整理成一份清单,方便按需取用:
| 目的 | 命令 |
|---|---|
| 查看版本 | openclaw --version |
| 升级 | openclaw update --channel stable |
| 查看进程 | ps aux | grep -i openclaw |
| 停止服务 | systemctl stop openclaw 或 docker stop openclaw |
| 查看 npm 全局目录 | npm prefix -g |
| 查看包安装路径 | npm root -g |
| 查看配置目录 | ls -la ~/.openclaw |
到了这里,OpenClaw 从安装到维护的整个链路基本闭环了。最后再分享一个我自己的体会:不要在一开始就追求“装好所有东西”,先把最小链路跑通——Node.js、OpenClaw、一个模型后端、一次对话,然后再逐步加 skills、接外部服务。这个顺序能帮你把“环境问题”和“配置问题”分开,排查起来会轻松很多。希望这份指南能让你少走点弯路,一次性把 OpenClaw 装到顺手的状态。
