SuperAPI AI 工具集

openclaw-beam

编程与开发

查看项目

更新于 10-16 03:57

技能介绍

用途

Beam 用于在用户明确要求将当前本地编码会话发布、分享或 beam 给已认证的 OpenClaw 接收方时,把本地编码会话以脱敏快照的形式上传到一个已认证的只读 Beam 目录。调用该技能即视为对指定目标进行一次快照上传的授权。

主要能力

  • 解析并读取 Claude Code 或 Codex 的精确会话记录,仅上传经过本地脱敏的用户/助手消息以及精简的工具调用计数。
  • 明确不上传原始 JSONL、推理内容、系统/开发者提示、工具输出、环境变量、凭据、浏览器状态、Cookie 或本地路径。
  • Beam 为只读投影:不连接节点、不暴露终端、不远程恢复本地工具链,也不授予接收方文件系统或工具访问权限。
  • 除回环开发端点外,要求使用 HTTPS。
  • 通过 BEAM_ACCESS_TOKEN、BEAM_AUTH_TOKEN 或交互式 cloudflared 访问登录进行认证,且从不打印这些值。
  • 支持实时钩子(Live Hooks),但实时同步为可选的持久行为;除非用户明确要求实时 Beam 更新,否则不安装钩子。

使用方式

首先设置或获取目标接收方 URL:

export BEAM_ENDPOINT="https://example.internal/api/v1/beam/sessions"

优先使用与工具链对应的精确标识符。先将包含此 SKILL.md 的目录解析为 BEAM_SKILL_DIR。

Claude Code 暴露当前会话 id:

node "$BEAM_SKILL_DIR/scripts/beam" publish
--endpoint "$BEAM_ENDPOINT"
--session-id "${CLAUDE_SESSION_ID}"

在 Codex 中,将包含此 SKILL.md 的目录解析为 BEAM_SKILL_DIR;普通 shell 工具子进程会暴露当前线程 id:

node "$BEAM_SKILL_DIR/scripts/beam" publish
--endpoint "$BEAM_ENDPOINT"
--thread-id "$CODEX_THREAD_ID"

优先使用可用的精确工具链元数据:

  • Claude Code:${CLAUDE_SESSION_ID} 标识当前本地对话,辅助脚本会找到其会话记录。
  • Codex shell 工具:CODEX_THREAD_ID 标识当前线程。
  • 钩子适配器:将其 JSON 传给 beam hook,transcript_path 为权威来源。
  • 精确回退:Beam 仅在原生 Claude/Codex 会话根目录中扫描所提供的 id,在无匹配或存在歧义时安全失败。

常用选项:

node "$BEAM_SKILL_DIR/scripts/beam" publish --endpoint "$BEAM_ENDPOINT" --session /path/to/session.jsonl node "$BEAM_SKILL_DIR/scripts/beam" publish --endpoint "$BEAM_ENDPOINT" --thread-id "$CODEX_THREAD_ID" node "$BEAM_SKILL_DIR/scripts/beam" publish --endpoint "$BEAM_ENDPOINT" --title "Fix upload flow" node "$BEAM_SKILL_DIR/scripts/beam" publish --endpoint "$BEAM_ENDPOINT" --complete node "$BEAM_SKILL_DIR/scripts/beam" publish --endpoint "$BEAM_ENDPOINT" --dry-run

--dry-run 会在本地打印脱敏后的载荷,不执行任何网络请求。

成功后,仅返回 Beam URL 和简短披露摘要:来源工具链、共享消息数量、较早条目是否被截断,以及该 beam 是否完整。URL 使用由端点派生的 Control UI 基础路径,后接 /beam/<title-slug>-<id-prefix>,例如 https://gateway.example.com/beam/fix-upload-flow-0123456789ab。标题来自 --title 或第一条共享的用户消息。稳定的 ID 后缀标识该会话;使用较早标题的链接仍然有效。

辅助脚本还接受裸 /beam/<id-prefix> 链接,并在推广期间接受当前服务器的精确 /chat/<agent>?catalog=beam&host=gateway&thread=<full-beam-id> 响应。它仍然拒绝已过时的 ?session=catalog:... beta 形式。

实时钩子

辅助脚本接受 Claude Code 和 Codex 生命周期钩子发出的 snake_case JSON:

node "$BEAM_SKILL_DIR/scripts/beam" hook --endpoint "$BEAM_ENDPOINT" --quiet

为逐轮更新配置根 Stop 钩子。Claude Code 还可使用 SessionEnd 进行最终化;Codex 最终化使用显式的 publish --complete。参见:

  • references/claude-code-hooks.json
  • references/codex-hooks.toml

钩子失败不得阻塞编码会话。成功时保持静默;失败时记录一条简洁的脱敏错误。

完整的安装、认证、数据边界和钩子文档见 README.md。

开发

node --check skills/openclaw-beam/scripts/beam node --check skills/openclaw-beam/scripts/beam-session.js node --test skills/openclaw-beam/scripts/beam.test.mjs scripts/validate-skills

适用场景

适用于用户明确要求将当前本地编码会话发布或分享给已认证的 OpenClaw 接收方,并希望以只读、脱敏方式呈现会话内容的场景。

限制

  • 仅上传脱敏后的用户/助手消息和精简工具计数,不包含原始记录、推理、系统/开发者提示、工具输出、环境变量、凭据、浏览器状态、Cookie 或本地路径。
  • 为只读投影,不提供节点连接、终端暴露、远程恢复或文件系统/工具访问。
  • 除回环开发端点外要求 HTTPS。
  • 实时同步为可选的持久行为,默认不安装钩子。
  • 关于收费、价格、平台支持范围等信息,资料中暂未提供。