命令字典
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
Slash 命令、CLI 子命令、Hook 事件、启动参数的字典与演进史。
启动运行程序进程,将本机或容器注册为自托管环境节点,在自有基础设施上托管 Claude Code 云会话
claude self-hosted-runner <setup|doctor|orchestrator>claude self-hosted-runner setupclaude self-hosted-runner 是官方 CLI reference 中记录的子命令,用于启动一个运行程序(runner)进程,把本机或容器注册到 self-hosted environment(自托管环境),从而在用户自有基础设施上托管 Claude Code 云会话(cloud sessions)。它是标准 claude 二进制文件自带的能力,要求 Claude Code v2.1.224 或更高版本;更早版本无法识别 self-hosted-runner 子命令,会直接回落成打印通用的 claude --help。
该功能面向 Team 和 Enterprise 计划的组织,目前处于公开 beta 阶段,默认关闭,需要组织的 Owner 在 claude.ai 的 Cloud environments 管理页开启「Allow self-hosted environments」;启用 ZDR(零数据保留)的组织无法使用该功能。
claude self-hosted-runner <setup|doctor|orchestrator>
| 子命令 | 作用 |
|---|---|
claude self-hosted-runner setup | 引导式操作员向导:一个交互式 Claude Code 会话,带你在 admin UI 创建 environment、用保存的密钥文件启动本地 runner、确认 runner 完成注册,并把速查表写入 ./runner-setup/CHEAT-SHEET.md。需要用持有 Owner 角色的账号先执行 claude auth login;不支持用 API key 或第三方模型提供方登录的场景。 |
claude self-hosted-runner doctor | 诊断已部署的 runner,对应文档中 Troubleshooting 一节。 |
claude self-hosted-runner orchestrator | 生成按需(on-demand)runner,对应文档中 On-demand runners 一节:按需模式下由 orchestrator 轮询"排队中但无可用 runner"的会话,通过自定义的 spawn-runner hook 为每个会话拉起一个 runner。 |
不带子命令、直接携带启动参数时,用于真正跑起一个 runner 进程:
claude self-hosted-runner --environment-secret-file '/etc/claude/environment-secret' --base-dir '<writable-dir>'
已确认的 flag:
| Flag | 说明 |
|---|---|
--environment-secret-file | 指向存放 environment secret(环境密钥)的文件路径,用于 runner 向 environment 认证。 |
--base-dir | runner 用于检出仓库、创建每个会话工作目录的可写基础目录;不指定则默认为 /workspace,该目录须已存在且可写,或以 root 身份启动 runner。 |
检查主机是否就绪:
claude self-hosted-runner --help
就绪的主机会打印出 runner 的 usage 文本(包含 --environment-secret-file 等 flag);版本低于 v2.1.224 时,这条命令只会打印通用的 claude --help。
Runner 进程设计为会在其活跃会话全部结束后自行退出(这是既定行为,参见 Runner lifecycle)。生产部署需要把它放在会在进程退出后自动重启的 orchestrator/supervisor 之下(文档给出了 Kubernetes 和 Docker Compose 的部署方案)。
向已经在自托管环境中运行的云会话发送后续消息,用的是同一 claude CLI 但不同的命令(不属于 self-hosted-runner 子命令树),可在任意已 claude auth login 的机器上执行:
claude -p "your message" --cloud <session-id>
成功时打印 Sent to cloud session. 及会话 ID、查看链接。
| 约束 | 原因 |
|---|---|
| 仅 Team / Enterprise 计划可用,且需 Owner 手动开启 | 官方公开 beta 功能,默认关闭;ZDR 组织不可用 |
| Claude Code ≥ v2.1.224 | 更早版本不识别该子命令,回落为通用 claude --help 或以该指令文本作为 prompt 启动普通会话 |
| Runner 主机仅支持 Linux 或 macOS,不支持 Windows | 官方文档明确注明 Windows 需改用 Linux 容器运行 runner;开发者工作站不受影响,因为会话是从浏览器端 claude.ai 发起 |
| 需要 Git ≥ 2.24 | 部分 git 配置项要求更新版本 |
| 主机时钟需通过 NTP 等方式同步 | 时钟偏差超过 5 分钟会导致认证失败 |
setup 子命令需要 Owner 角色的账号密码登录(claude auth login),不支持 API key / 第三方模型提供方 | 引导式向导需要调用 admin UI 的创建/查询接口 |
| environment secret 仅显示一次,365 天后过期 | claude.ai 出于安全考虑不做二次展示;需要时应在 Configuration 标签页轮换 |
claude self-hosted-runner setup,走完引导流程,得到一个可轮询任务的 runner 和 ./runner-setup/CHEAT-SHEET.md 速查表。--base-dir 后直接启动 runner 进程,交给 systemd/Kubernetes/Compose 等编排系统管理重启。claude self-hosted-runner doctor 排查。claude self-hosted-runner orchestrator 搭配自定义 spawn-runner hook,实现"有排队会话才拉起 runner、会话结束就回收"的按需模式。claude self-hosted-runner setup 不会报错提示版本不符,而是直接把这行命令文本当作 prompt 启动一个普通 Claude 会话,容易让人误以为命令生效了;应先用 claude self-hosted-runner --help 确认能打印出 runner 的 usage 文本(含 --environment-secret-file),而不是通用帮助。--base-dir 时默认落到 /workspace,如果该目录不存在或不可写、又没有以 root 启动,runner 会在启动阶段直接报错退出(提示相关目录名),而不是注册失败后重试。poll auth failed;需要依赖 orchestrator 用新 secret 重启它,手动启动的 runner 不会自愈。修复 Anthropic 托管 git 的会话在复用的空远端克隆中把跟踪文件显示为已暂存删除的问题。
修复注册被拒绝时输出误导性错误的问题,现在会指出组织管理员设置,或说明重启的按需 runner 需要新的 work order。
改进 `--configure-git` 选项,同时启用 git push negotiation
改进了会话启动速度,不再重写工作树
修复 checkout hook 失败时整个 runner 失败的 bug,现在会跳过该仓库并显示警告
添加了 CLI 命令用于启动自托管运行环境