From ddd1fae455e9bac778088a54b7a694781b3508e2 Mon Sep 17 00:00:00 2001 From: haoyuren <13851610112@163.com> Date: Sun, 29 Mar 2026 15:07:43 -0500 Subject: Claude Bridge Worker - one-click setup for remote Claude Code workers --- poll_and_notify.sh | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100755 poll_and_notify.sh (limited to 'poll_and_notify.sh') diff --git a/poll_and_notify.sh b/poll_and_notify.sh new file mode 100755 index 0000000..b012128 --- /dev/null +++ b/poll_and_notify.sh @@ -0,0 +1,26 @@ +#!/bin/bash +# 极简 cron:只负责唤醒闲置的 Claude session +# 有 pending 任务就发一个 "check",hook 会处理剩下的一切 +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +if [ -f "$SCRIPT_DIR/.env" ]; then + set -a; source "$SCRIPT_DIR/.env"; set +a +fi +export BROKER_URL API_SECRET + +for SESSION in claude claude2 claude3; do + tmux has-session -t "$SESSION" 2>/dev/null || continue + + # 问 broker 这个 session 有没有 pending 任务 + COUNT=$(curl -sf -H "Authorization: Bearer $API_SECRET" \ + "$BROKER_URL/tasks/pending?target=$SESSION" 2>/dev/null \ + | python3 -c "import sys,json; print(len(json.load(sys.stdin).get('tasks',[])))" 2>/dev/null \ + || echo "0") + + if [ "$COUNT" -gt 0 ]; then + # 只发一个简短提示,不带任何 content + tmux send-keys -t "$SESSION" "请检查新任务" Enter + echo "$(date): poked $SESSION ($COUNT pending)" + fi +done -- cgit v1.2.3