产品介绍
将编码代理会话实时流式传输至 Discord。全程不消耗任何 AI Token。
首次配置:请参阅 [references/setup.md](references/setup.md),了解 Webhook 创建、unbuffer 安装、Bot Token 获取及冒烟测试(smoke test)流程。
使用 exec background:true 启动。后台执行的会话可跨越 Agent 轮次持续运行,且 OpenClaw 会在进程终止时自动触发 notifyOnExit。
exec background:true command:"{baseDir}/scripts/dev-relay.sh -w ~/projects/myapp -- claude -p --dangerously-skip-permissions --output-format stream-json --verbose 'Your task here'"
注意响应中返回的 session ID —— 后续可通过 process 命令监控该会话。
| 参数 | 描述 | 默认值 |
|---|---|---|
-w |
工作目录 | 当前目录 |
-t |
超时时间(秒) | 1800 |
-h |
挂起阈值(秒) | 120 |
-n |
Agent 显示名称 | 自动识别 |
-r |
发送速率限制(条/60 秒) | 25 |
--thread |
发送至 Discord 线程(Thread)中 | 关闭 |
--skip-reads |
隐藏 Read 工具事件 | 关闭 |
--review |
PR 审查模式 | — |
--parallel |
并行任务模式 | — |
--resume |
回放已有会话 | — |
关于 PR 审查、并行任务、Discord 桥接及 Codex 结构化输出等高级功能,请参阅 [references/advanced-modes.md](references/advanced-modes.md)。
写入导航标记(breadcrumb)文件,用于结果路由:
echo '{"channel":"","relayDir":"","pid":}' > /tmp/codecast-pending-.json
该 breadcrumb 文件告知心跳预检(heartbeat precheck)脚本:当会话结束时,应将结果发送至哪个 Discord 频道。其通过检查对应 PID 是否仍在运行,自动判定会话是否完成。
至此即完成全部配置。当进程终止后,OpenClaw 的 notifyOnExit 将自动触发系统事件及心跳请求;心跳处理程序则从 relay 目录下的 stream.jsonl 中读取输出,并将其发布至原始调用频道。
OpenClaw 原生支持该能力:
tools.exec.notifyOnExit: true(默认启用)→ 进程退出时自动触发系统事件 + 心跳请求/tmp/dev-relay-sessions/ 目录识别已结束会话备用方案:可在内部 Agent 的 prompt 末尾追加以下指令,作为额外完成信号:
When completely finished, run: openclaw system event --text "Done:" --mode now
process poll sessionId:# 查询会话状态 process log sessionId:# 查看最近输出日志 process kill sessionId:# 终止指定会话
| Agent | 输出模式 | 支持状态 |
|---|---|---|
| Claude Code | stream-json | 完全支持 |
| Codex |
--json JSONL 格式 |
完全支持 |
| 任意 CLI 工具 | 原始 ANSI 输出 | 基础支持 |
/tmp/dev-relay-sessions/.json (会话结束后自动删除)/tmp/dev-relay.XXXXXX/stream.jsonl(7 天后自动清理)process submit sessionId:data:"message"