openClaw本地部署全流程

9 阅读5分钟

openClaw更新较快,很多教程内的命令及操作,会被更新、替换,进而导致莫名其妙的报错。截止2026.3.3,mac端基于以下流程已跑通,win待验证。

一、环境安装 Git & Node

第一步需要安装能让openClaw这个工具在本地运行起来的必要环境:

  • git:github命令,用来链接、操作github仓库相关,openClaw中主要用来下载、更新openClaw版本
  • node:node是环境,用来承载openClaw的运行,安装后的npm等包管理命令是openClaw必须的

git命令,mac系统应该是自带的,node需要去官网自行下载:node下载地址openClaw要求node版本必须在22+,因此去下载24的版本即可,任何一个都行,小版本号几乎无区别,无需在意

git和node的安装在此不多赘述,因操作系统区别而难度不同。

如何确认已准备完毕,在 terminal 中依次执行下面的命令并按回车,查看返回结果,如何打开terminal看第二步开头

# 只输命令就行,井号里的是备注,不用复制
node -v # 验证Node.js 返回v24.xx.xx就对了,低于22就不对,需要使用nvm命令切换版本

git --version #验证Git 有返回无报错就对了,否则会显示没有该命令

二、安装openClaw

确认上述环境安装完成,即上述2条命令执行都返回都正确,然后再进行下一步。否则走不通。

openClaw是开源的,安装是从它的github仓库地址下载项目到你的电脑里运行,因此务必先确保 https://github.com/openclaw/openclaw ,这个地址是可以打开的,否则天王老子来了也拉不下来代码openClaw git仓库 点击左侧查看,或者手动复制上述域名。

好,既然你可以打开,那么接下来打开你系统的终端:terminal mac和windows都可以使用搜索,输入terminal后打开,win可以选择邮件使用管理员身份打开来避免后续不必要的权限纠纷。mac则直接在遇到时,在原命令前输入 sudo 即可,比如 node -v 改为 sudo node -v

1.打开终端后,输入

# Mac/Linux系统
curl -fsSL https://openclaw.ai/install.sh | bash # 分开执行
npm i -g openclaw

# Win系统
iwr -useb https://openclaw.ai/install.ps1 | iex

然后会看到以下执行的内容,不用看懂,等着就行

7d7be15b-d38b-4e2b-b5a9-ed55c5deb934.png

然后等到

image.png image.png

之后会开始问你一系列初始化的内容,按照以下表格选择

是切换yes/no, 切换选项, enter 回车确认。多选时,使用 space 空格 来选中。

配置项选项/操作配置说明
Onboarding modeQuickStart
Config handlingReset除非你之前配过一大堆,否则重置之前的配置
Model/auth provider选免费Qwen / 选"Skip for now"推荐先选Qwen(免费),后续可配置火山引擎等其他模型;暂不配置则选Skip
Model configuredqwen-portal/coder-model上一步选了qwen的可能会有这个选项
Default modelKeep current保持默认
Select channel (QuickStart)选择 “Skip for now”除非你之前配过一大堆,否则重置之前的配置
Configure skills now? (recommended)选择 “No”暂不配置技能,后续按需添加
Enable hooks?使用空格全选,然后回车全选
How do you want to hatch your bot?Web UI/TUI都可以,建议Web UIweb的是可视化界面,TUI的是纯terminal交互,建议初学者选择前者

完成后就会看到terminal内显示以下内容

image.png

然后,在terminal内输入

#打开openClaw的web面板
openclaw dashboard

就会看到以下页面:

image.png

恭喜🎉🎉🎉!你已经成功让openClaw在本地运行起来了,但还没完事,我们需要再稍微修改2处设置,就能完成。

1.修改语言

image.png

2.进入下一步

三、配置apiKey

进入到千问的apikey获取页面,点击进入千问apikey创建页,登录后,按下图操作

1.先进入到页面

image.png

2.创建apikey并复制

image.png

3.拿到apikey以后,按照以下步骤,更新openClaw的json配置

  • apiKey 替换为刚才从千问生成的那个。
  • <你的工作空间目录>替换为实际路径(macOS/Linux默认/Users/你的用户名/.openclaw/workspace,Windows默认C:\Users\你的用户名.openclaw\workspace,目录不存在会自动创建)。

配置保存更新后,可能会遇到 disconnect 1006:no reason 的报错,或者一直在updating,不要慌,web ui存在某种ui脱敏显示,导致实际配置已更新,但界面上未更新,此时如果你可以尝试在chat中直接询问,配置是否已更改来确认。一般情况下,只要不乱改,是不会有问题的,改乱了,可以点击Reload来重置。

image.png

配置代码:

# 不要直接全面复制粘贴,注意看备注,核心需要改的有models下的apiKey和agents下的workspace,其他的最好不动,workspace如果有值也不需要改
{
  "meta": {
    "lastTouchedVersion": "2026.2.25",
    "lastTouchedAt": "2026-02-26T12:51:37.823Z"
  },
  "wizard": {
    "lastRunAt": "2026-02-26T12:51:37.794Z",
    "lastRunCommand": "doctor",
    "lastRunVersion": "2026.2.25",
    "lastRunMode": "local"
  },
  "auth": {
    "profiles": {
      "qwen-portal:default": {
        "provider": "qwen-portal",
        "mode": "oauth"
      }
    }
  },
  "models": {
    "providers": {
      "qwen-portal": {
        "baseUrl": "https://portal.qwen.ai/v1",
        "apiKey": "<QWEN_API_KEY>", # 这里替换成你从千问那生成的apikey
        "api": "openai-completions",
        "models": [
          {
            "id": "coder-model",
            "name": "Qwen Coder",
            "reasoning": false,
            "input": ["text"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 8192
          },
          {
            "id": "vision-model",
            "name": "Qwen Vision",
            "reasoning": false,
            "input": ["text", "image"],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "qwen-portal/coder-model"
      },
      "models": {
        "qwen-portal/coder-model": {
          "alias": "qwen"
        },
        "qwen-portal/vision-model": {}
      },
      "workspace": "<你的工作空间目录>", # 这里如果没有,写你的openClaw文件地址,地址在上面有说
      "compaction": {
        "mode": "safeguard"
      },
      "maxConcurrent": 1,
      "subagents": {
        "maxConcurrent": 2
      }
    },
    "messages": {
      "ackReactionScope": "group-mentions"
    },
    "commands": {
      "native": "auto",
      "nativeSkills": "auto",
      "restart": true,
      "ownerDisplay": "raw"
    },
    "session": {
      "dmScope": "per-channel-peer"
    },
    "gateway": {
      "mode": "local",
      "port": 18789,
      "bind": "loopback",
      "auth": {
        "mode": "token",
        "token": "__OPENCLAW_REDACTED__"
      },
      "tailscale": {
        "mode": "off",
        "resetOnExit": false
      },
      "nodes": {
        "denyCommands": [
          "camera.snap",
          "camera.clip",
          "screen.record",
          "calendar.add",
          "contacts.add",
          "reminders.add"
        ]
      }
    }
  }
}

接下来,回到chat,就可以开始愉快的聊天了:

image.png

这里有一个小坑,如果你在其他地方看到/听说openClaw会自行安装多种skill并执行,这是没错的,但直接让他安装skill,他可能会使用默认的搜索行为去搜集并安装,然后搜索行为需要配置单独的搜索引擎apikey,就会导致失败。正确的做法是告诉他:

不要用 web_search,直接用 clawhub search/install来安装skills

然后,就可以让他搜索并安装各种skill了。