









上一篇我们把地图铺开了,这一篇开始走主链路第一站:CLI启动。
毕竟无论你是跑openclaw gateway还是openclaw agent,第一步都绕不开CLI入口。
这个项目里和启动强相关的入口,先盯两个就够了:
src/entry.tssrc/cli/run-main.ts我自己的理解是:
entry.ts负责“程序级起步动作”(环境、参数预处理、快速路径、异常兜底)run-main.ts负责“CLI主流程调度”(解析参数、注册命令、执行命令)entry.ts里有几段很关键的逻辑:
--no-color这类环境行为runMainOrRootHelp换句话说,它把“启动姿势”先调整好,再把执行权交给真正的CLI主流程。
src/cli/run-main.ts函数runCli()里,主流程大概是这样:
--profile/--container这类全局参数.env和运行时环境tryRouteCliprogram.parseAsync(...)真正执行这段代码的设计我觉得很实用:
先做一层“轻路由/快路径”再进入完整命令解析,启动体验会更干脆。
比如你执行:
openclaw gateway --port 18789 --verbose
大致会经历:
entry.ts接管进程级初始化runCli()做参数预处理gatewayrun-main.ts里可以看到,它会根据参数判断注册策略,比如只注册主命令、或补充插件命令。
这样做的好处是:
从工程角度讲,这是一种“按需装配”的CLI架构思路。
你可以按下面顺序读,效率更高:
src/entry.tssrc/cli/run-main.tssrc/cli/program/build-program.tssrc/cli/program/command-registry.ts不要一上来就陷入所有命令实现细节,先把“命令是如何被定位和执行的”这件事跑通。
这一篇我们搞清楚了三件事:
entry.ts偏进程和环境,run-main.ts偏命令调度下一篇进入Gateway启动内幕,把控制平面是怎么一点点挂起来的讲清楚。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。