OpenClaw 仓库脚本实战:认证监控、手机重认证与 gh-read 只读访问

发布时间:2026/9/10 13:02:09
OpenClaw 仓库脚本实战:认证监控、手机重认证与 gh-read 只读访问 OpenClaw 仓库脚本实战认证监控、手机重认证与 gh-read 只读访问【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclawscripts/是 OpenClaw 仓库内为本地工作流与运维任务提供的一组辅助脚本既包含针对远程/无头主机上Claude Code 订阅 token的监控、告警与手机重认证闭环也包含用 GitHub App 安装令牌做只读调用、与个人登录态隔离的gh-read封装。阅读本文后你将掌握这些脚本的定位、核心参数与完整运行方式并能在此基础上自行新增符合仓库约定的脚本。脚本目录定位与使用约定官方文档docs/help/scripts.md开篇即明确了scripts/的定位它存放本地工作流和运维任务的辅助脚本。当某项任务与某个脚本明确绑定时应使用脚本否则优先使用 OpenClaw CLI。三条核心约定如下脚本是可选的除非文档或发布检查清单release checklist中明确引用否则脚本不参与核心工作流优先使用 CLI 表面凡 CLI 已有对应能力就优先用 CLI例如openclaw models status --check而不是自己造轮子假设脚本是主机相关的在新机器上运行前务必先通读脚本内容再执行。也就是说这套脚本服务于本地/运维辅助场景是 CLI 的补充而非替代品。认证监控脚本族为无头主机上的 Claude Code token 兜底这一组脚本scripts/setup-auth-system.sh、scripts/claude-auth-status.sh、scripts/auth-monitor.sh、scripts/mobile-reauth.sh、scripts/termux-*.sh是一个独立于通用模型认证的可选系统。它专门解决一个具体问题远程/无头主机上运行的 Claude Code CLI 订阅 token 会过期需要监控并在手机上完成重认证。通用模型认证API Key、OAuth、Claude CLI 复用、setup-token见 docs/gateway/authentication.md本文这套脚本只关注 Claude Code CLI 订阅 token 的监控与手机重认证闭环。一次性安装setup-auth-system.shscripts/setup-auth-system.sh 是整个体系的一次性初始化脚本set -euo pipefail严格模式运行后依次完成四步检查当前认证状态直接调用claude-auth-status.sh full先看清现状生成长效 token推荐使用claude setup-token生成长期有效的 API token避免每日重新认证脚本会询问是否现在配置配置认证监控询问 ntfy.sh 主题用于手机推送和手机号用于 OpenClaw 消息告警然后把 systemd service 模板scripts/systemd/openclaw-auth-monitor.service渲染为实际路径后安装到~/.config/systemd/user/并systemctl --user enable --now openclaw-auth-monitor.timer立即启用定时器打印 Termux 手机端配置指引见下文Termux 一键认证。其中 service 模板的ExecStartOPENCLAW_AUTH_MONITOR_PATH占位符会在安装时被渲染为检出目录中auth-monitor.sh的绝对路径NOTIFY_PHONE/NOTIFY_NTFY环境变量行也会按用户输入自动填充或注释掉。状态检查claude-auth-status.sh 的三种输出模式scripts/claude-auth-status.sh 同时检查Claude Code与OpenClaw两边的认证状态用法为scripts/claude-auth-status.sh # 默认 full scripts/claude-auth-status.sh json # 结构化 JSON scripts/claude-auth-status.sh simple # 供脚本/widget 使用的极简输出full默认彩色终端输出包含 Claude Code 的订阅类型subscriptionType、速率档位rateLimitTier、过期时间以及 OpenClaw 侧使用的 Anthropic profile、过期时间、当前使用的 API key 数量最后还会报告systemctl --user is-active openclaw的服务运行状态json通过jq -n输出{claude_code, openclaw, needs_reauth}三个字段needs_reauth在任一状态命中EXPIRED/EXPIRING/MISSING时为true非常适合被脚本程序化消费simple只输出OK/CLAUDE_EXPIRED/OPENCLAW_EXPIRED/CLAUDE_EXPIRING/OPENCLAW_EXPIRING之一并带对应退出码1 表示已过期或缺失2 表示即将过期专为 Termux 等外部脚本设计。状态判定逻辑源码见calc_status_from_expires以毫秒时间戳差值计算剩余小时/分钟 0判定MISSING已过期为EXPIRED剩余不足 1 小时为EXPIRING否则为OK。脚本优先读取openclaw models status --json的输出USE_JSON1失败时才回退到直接解析~/.claude/.credentials.json与~/.openclaw/agents/main/agent/auth-profiles.json两个文件。定时轮询auth-monitor.sh 与 systemd 定时器scripts/auth-monitor.sh 负责周期性检查并在 token 临近过期时发送通知通过三个环境变量控制行为环境变量默认值作用WARN_HOURS2距过期小于该小时数时触发告警NOTIFY_PHONE空手机号通过openclaw send --to发送 OpenClaw 消息NOTIFY_NTFY空ntfy.sh 主题通过curl推送手机通知其运行机制与边界情况如下状态判定读取~/.claude/.credentials.json的claudeAiOauth.expiresAt凭据文件缺失时以high优先级告警提示运行claude setup-token已过期时以urgent优先级提示在主机上运行mobile-reauth.sh防骚扰去抖状态文件~/.openclaw/auth-monitor-state记录上次成功通知时间MIN_INTERVAL3600秒1 小时内最多通知一次且只有通知确实送达OpenClaw 或 ntfy 任一成功才更新冷却时间通知通道OpenClaw 通道在发送前会先以claude-auth-status.sh simple确认认证仍可用ntfy 通道带 5 秒连接超时、15 秒总超时并附带Title: OpenClaw Auth Alert、Priority与Tags: warning,key头。调度方式官方推荐使用随仓库附带的 systemd 单元scripts/systemd/openclaw-auth-monitor.service 与 scripts/systemd/openclaw-auth-monitor.timerTypeoneshot的服务每 30 分钟触发一次OnBootSec5min、OnUnitActiveSec30min、Persistenttrue错过的周期会补跑。脚本注释中也给出了等价的 cron 写法*/30 * * * * /path/to/openclaw/scripts/auth-monitor.sh。手机重认证mobile-reauth.shscripts/mobile-reauth.sh 专为通过 SSH 从 Termux 使用的场景设计把重认证流程手机化先以claude-auth-status.sh simple判断状态有效则直接展示 full 详情并退出然后打印在手机上打开 Anthropic 控制台 API Keys 页面、创建/复制sk-ant-...开头 key 的分步指引等待用户确认后运行交互式claude setup-token。认证成功后若检测到openclaw用户服务在运行还会自动systemctl --user restart openclaw让新 token 立即生效。Termux 一键认证三个 Widget 脚本仓库提供了三个面向 Termux:Widget安卓桌面小组件的脚本通过OPENCLAW_SERVER环境变量默认openclaw-host指定主机全部基于 SSH 执行scripts/termux-quick-auth.sh极简一键脚本SSH 到主机执行claude-auth-status.sh simpleOK时弹 toastEXPIRING时震动提醒EXPIRED/MISSING时震动并直接打开 Anthropic 控制台页面同时弹出包含后续mobile-reauth.sh命令的通知scripts/termux-auth-widget.sh功能更完整的一键脚本通过termux-dialog弹单选/确认对话框引导立即重认证/稍后再说过期时还会用am start拉起 Termux 终端供用户执行重认证命令scripts/termux-sync-widget.shOAuth 同步小组件SSH 执行同步逻辑后将过期时间解析为 toast并可选重启主机上的openclaw服务。三者分别对应setup-auth-system.sh最后一步打印的安装指引把脚本复制到手机的~/.shortcuts/如ClawdAuth、ClawdAuth-Full并chmod x后即可从桌面小组件一键查看与恢复认证。GitHub 只读助手gh-read当需要让gh使用GitHub App 安装令牌做仓库范围内的只读调用、同时把个人登录态留给写操作时使用 scripts/gh-read实际转发到 scripts/gh-read.ts。环境变量必填OPENCLAW_GH_READ_APP_IDGitHub App 的 App IDOPENCLAW_GH_READ_PRIVATE_KEY_FILEApp 私钥文件路径源码经openclaw/fs-safe/secret的readSecretFileSync安全读取。可选OPENCLAW_GH_READ_INSTALLATION_ID显式指定安装 ID跳过基于仓库的安装查询OPENCLAW_GH_READ_PERMISSIONS逗号分隔的权限覆盖列表用于请求比默认更小的只读权限子集。默认申请的只读权限子集源码DEFAULT_READ_PERMISSION_KEYS为actions、checks、contents、issues、metadata、pull_requests、statuses。仓库解析顺序当命令中未显式给出仓库时按以下优先级解析目标仓库gh ... -R owner/repo命令行参数源码parseRepoArg支持-R/--repo/--repo/-Rowner四种写法环境变量GH_REPOgit remote origin经 scripts/lib/github-repo.ts 的resolveGitHubRepoFromOrigin解析。使用示例scripts/gh-read pr view 123 scripts/gh-read run list -R openclaw/openclaw scripts/gh-read api repos/openclaw/openclaw/pulls/123从源码结构看gh-read整体是一个认证替换 参数透传的封装gh-read外壳仅做exec node --import tsx $script_dir/gh-read.ts $而gh-read.ts负责用 GitHub App 私钥签发 JWTcreatePrivateKeycreateSign、申请安装访问令牌并把令牌注入后将剩余参数原样转发给gh。API 请求相关实现带 30 秒默认超时DEFAULT_GITHUB_FETCH_TIMEOUT_MS、1 MiB 响应体上限与 4096 字符错误体截断等防护适合在 CI 与发布流水线中安全使用。新增脚本时的仓库约定官方文档 docs/help/scripts.md 对新增脚本给出了两条硬性要求保持聚焦且有文档脚本职责单一避免大而全在相关文档中补充条目在对应文档不存在则新建中添加简短说明让脚本可被发现、可被引用。此外从现有脚本可以观察到的工程惯例包括统一使用set -euo pipefail、用SCRIPT_DIR$(cd $(dirname ${BASH_SOURCE[0]}) pwd)定位自身目录以便调用兄弟脚本、输出带颜色区分状态、为所有可配置项提供环境变量默认值等——新增脚本时建议沿用这些模式。关联文档与进一步阅读通用模型认证与 setup-token 完整流程docs/gateway/authentication.md其中也提示旧的auth-profiles.json/auth-state.json可通过openclaw doctor --fix导入 SQLitetoken 过期时用openclaw models status定位过期 profile测试与线上测试文档 docs/help/testing.md、docs/help/testing-live.md。小结OpenClaw 的scripts/目录是一套小而聚焦的运维工具箱setup-auth-system.shclaude-auth-status.shauth-monitor.sh systemd 定时器构成了从安装、检查到主动告警的完整监控闭环mobile-reauth.sh与三个 Termux Widget 脚本把重认证从桌面带到了手机上gh-read则用 GitHub App 只读令牌隔离了读与写两种权限。无论你是要在无头服务器上部署 OpenClaw还是想复用这套监控 手机兜底的模式都可以直接按本文介绍的方式查看脚本仓库只读请勿修改并参考使用。【免费下载链接】openclawThe AI that really does things. Any OS. Any Platform. The lobster way. 项目地址: https://gitcode.com/GitHub_Trending/cl/openclaw创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考