1. 为什么命令记不全这件事,比想象中更耽误事
OpenClaw 的 CLI 命令体系,说白了就是一套让你在纯终端里管住整个本地 AI 网关的工具集。它能做四件事:启停网关服务、管理渠道和技能、看日志做诊断、以及用结构化输出对接自动化脚本。适合谁?适合已经跑通 OpenClaw、但每次操作都要翻文档、或者只敢点 Web 控制台不敢碰命令行的开发者。
我自己踩过的坑很典型:网关跑着跑着渠道掉线,第一反应是重启,结果restart之后配置没生效,又去翻配置文件,来回折腾二十分钟。后来才发现openclaw doctor一条命令就把端口占用和密钥失效两个问题都标出来了。问题不在于命令难,而在于命令散——服务管控一组、配置管理一组、诊断日志一组,记不全就只能在文档里反复横跳。
这篇要解决的就是这个:把 OpenClaw CLI 的命令体系按使用频率重新梳理一遍,同时把 TaoToken 的统一 Key 接入配置塞进config.toml骨架里,让你复制一份配置就能跑。每条命令后面我都配了验证动作,报错时能快速定位是命令写错了、配置没加载、还是 Key 本身有问题。全程终端操作,不需要图形界面。
2. TaoToken 前置:统一 Key 与 config.toml 骨架
在梳理命令之前,先把配置这件事定下来。OpenClaw 的模型调用走的是 OpenAI 兼容协议,TaoToken 提供统一 Key,一个 Key 可以调多家模型,省去在配置文件里塞一堆不同厂商的密钥。官网入口在 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite&utm_content= ,API 基址是 https://taotoken.net/api 。
先拿到 Key。登录后进控制台,在 API Keys 页面创建一个新 Key,复制出来。这个 Key 就是后面config.toml里要填的东西。控制台地址带 deep link:https://taotoken.net/console?utm_source=taotoken_aicg_blog_end&utm_content=console&utm_campaign=rewrite ,API Keys 页面:https://taotoken.net/api-keys?utm_source=taotoken_aicg_blog_end&utm_content=api-keys&utm_campaign=rewrite 。
OpenClaw 的配置文件默认在~/.openclaw/config/config.toml。下面这份骨架可以直接复制,把api_key换成你自己的:
# ~/.openclaw/config/config.toml [gateway] port = 18789 host = "127.0.0.1" log_level = "info" [model] provider = "openai-compatible" base_url = "https://taotoken.net/api" api_key = "sk-你的TaoToken密钥" default_model = "claude-sonnet-4-20250514" timeout = 60 [channels.web] enabled = true port = 18790 [skills] auto_reload = true dir = "~/.openclaw/skills"几个关键点。base_url必须带/api后缀,不带的话请求会打到根路径返回 404。provider写openai-compatible,OpenClaw 会按 OpenAI 的请求格式发出去,TaoToken 侧做协议转换。default_model可以先填一个,后面用openclaw --json status验证模型是否加载成功。
配置写完后不要急着start,先用--config指定路径做一次语法校验:
openclaw --config ~/.openclaw/config/config.toml --debug status如果配置有 TOML 语法错误,--debug会在启动阶段就把解析报错打出来,比直接start之后看日志快得多。
3. 可复制配置:命令体系分层与高频命令速查
OpenClaw CLI 的语法结构是三层:全局参数 + 子命令 + 子命令参数。全局参数作用于整个程序,子命令区分功能模块,末尾参数只对当前子命令生效。
openclaw [全局参数] <子命令> [子命令参数]全局参数有三个最常用:--debug开调试日志,--config指定配置文件,--json输出结构化 JSON。这三个参数可以组合,比如openclaw --debug --json status会同时输出调试信息和 JSON 结果。
服务管控四件套是日常用得最多的:
openclaw start # 启动网关,监听 18789 openclaw stop # 优雅停止,保存记忆和缓存 openclaw restart # 先 stop 再 start,改配置后生效 openclaw status # 全组件健康检查start的时候如果端口被占用会直接失败,这时候不要反复重试,先openclaw --json status看端口字段,再用lsof -i :18789确认占用进程。restart在改完config.toml之后必须执行,否则配置不会重新加载。
配置管理三组命令:
openclaw onboard # 重新初始化,生成新令牌 openclaw channels list # 查看已配置渠道 openclaw channels add # 交互式新增渠道 openclaw channels disable web # 禁用指定渠道 openclaw skills list # 查看已加载技能 openclaw skills reload # 重载技能,不用重启网关 openclaw skills remove file-auto-sort # 卸载技能skills reload这个命令值得单独说。改完自定义技能的代码后,不需要restart整个网关,reload就能让新代码生效,省掉一次完整重启的等待时间。
诊断两条命令:
openclaw logs # 实时滚动日志,类似 tail -f openclaw logs --lines 100 # 读最近 100 行历史日志 openclaw doctor # 一键体检,扫描依赖/权限/端口/密钥doctor是排错第一入口。它会检查 Node.js 版本、~/.openclaw目录读写权限、18789 端口占用、API 密钥合法性、技能文件语法。输出里标红的项就是问题所在,按提示修就行。
把常用命令做成别名能省不少输入。在~/.zshrc或~/.bashrc里加:
alias oc="openclaw" alias oc-start="openclaw start" alias oc-stop="openclaw stop" alias oc-restart="openclaw restart" alias oc-stat="openclaw status" alias oc-log="openclaw logs" alias oc-fix="openclaw doctor --debug" alias oc-skill="openclaw skills reload"source ~/.zshrc之后,oc-stat就等于openclaw status。Windows PowerShell 用Set-Alias oc openclaw,永久生效写进$PROFILE。
管道组合是自动化巡检的基础。日志过滤用 grep:
oc-log | grep -i error # 只看错误 openclaw logs | grep model # 只看模型调用相关JSON 输出配 jq 做结构化提取:
openclaw --json status | jq .gateway.running # 提取运行状态 openclaw --json skills list | jq 'length' # 统计技能数量自愈脚本可以这样写:
openclaw --json status | jq -r .gateway.running | grep false && openclaw restart网关没在跑就自动重启,配合 crontab 定时执行就是一套简易监控。
4. 验证请求:逐条命令的成功结果长什么样
配置和命令都摆出来了,接下来逐条验证。先确认网关能起来:
openclaw --config ~/.openclaw/config/config.toml start成功的话终端会输出Gateway started on port 18789,然后进程转入后台。如果卡住不动,大概率是端口被占,加--debug看详细日志。
起来之后查状态:
openclaw --json status返回的 JSON 里重点看三个字段:gateway.running应该是true,gateway.port是18789,model.loaded是true。如果model.loaded是false,说明config.toml里的模型配置没被正确读取,回去检查base_url和api_key。
验证模型调用是否真的通,用模型对话入口测一下。TaoToken 的模型对话页面在 https://taotoken.net/chat?utm_source=taotoken_aicg_blog_end&utm_content=model-chat&utm_campaign=rewrite ,可以直接在网页里发一条消息确认 Key 有效。如果网页能通但 OpenClaw 里不通,问题就在config.toml的base_url或provider字段。
渠道验证:
openclaw channels list输出里web渠道应该是enabled状态,端口18790。如果显示disabled,用openclaw channels enable web打开。
技能验证:
openclaw --json skills list | jq '.[].name'能列出技能名称就说明技能目录被正确加载。如果返回空数组,检查config.toml里skills.dir路径是否存在,以及目录下有没有.js或.ts技能文件。
日志验证:
openclaw logs --lines 20最近 20 行日志里应该能看到Gateway ready和Model provider initialized两条关键记录。如果只有前者没有后者,模型配置有问题。
体检验证:
openclaw doctor全部通过的话每项前面是绿色对勾。有红色项就按提示修,修完再跑一次doctor确认。
5. 本篇常见错排查
报错一:Error: listen EADDRINUSE :::18789
端口被占用。先openclaw --json status确认是不是已经有一个实例在跑。如果是,openclaw stop停掉再启动。如果不是,lsof -i :18789找到占用进程,要么 kill 掉,要么改config.toml里的gateway.port换一个端口。
报错二:Model provider initialized不出现,日志里报 401
API Key 无效或没读到。检查config.toml里api_key字段有没有多余空格,base_url是不是https://taotoken.net/api(注意结尾没有斜杠)。如果 Key 确认没问题,去控制台重新生成一个再试。
报错三:openclaw: command not found
CLI 没装进 PATH。一键脚本部署的话,二进制通常在~/.openclaw/bin/下,把这个路径加进PATH。源码编译的话,确认npm link或npm install -g执行成功。
报错四:skills reload之后技能没生效
检查config.toml里skills.auto_reload是不是true。如果是false,reload不会自动触发,需要手动restart。另外确认技能文件没有语法错误,openclaw --debug skills reload会把加载失败的堆栈打出来。
报错五:--json输出不是合法 JSON
某些子命令在--json模式下会混入调试信息。确保没有同时加--debug,或者把--debug的输出重定向到 stderr:openclaw --json status 2>/dev/null | jq .。
报错六:doctor报 Node.js 版本不满足
OpenClaw 要求 Node.js 22+。node -v确认版本,低于 22 的话用 nvm 升级:nvm install 22 && nvm use 22,然后重新openclaw restart。
6. 命令速查与长期编码接入
命令体系梳理完,日常高频操作其实就那几条:oc-stat看状态,oc-log看日志,oc-fix做体检,oc-restart改配置后重启。把这四个别名配好,大部分运维场景不用再翻文档。
如果你打算把 OpenClaw 接进长期编码工作流或者 Agent 自动化流程,单次调用按量计费不如走 Coding Plan 划算。Coding Plan 的入口在 https://taotoken.net/coding-plan?utm_source=taotoken_aicg_blog_end&utm_content=coding-plan&utm_campaign=rewrite ,适合需要持续跑模型调用的场景。接入文档在 https://taotoken.net/doc?utm_source=taotoken_aicg_blog_end&utm_content=doc&utm_campaign=rewrite ,里面有完整的 API 参数说明和错误码对照表,排错时对着查比猜快。
最后留一个巡检脚本模板,存成oc-check.sh,chmod +x之后可以直接跑:
#!/bin/bash echo "===== OpenClaw 巡检 $(date) =====" openclaw status echo "===== 诊断报告 =====" openclaw doctor echo "===== 技能列表 =====" openclaw skills list配合 crontab 每小时跑一次,日志重定向到文件,出问题的时候翻记录比现场排查省事得多。