소스 정보
- 저장소
- johnalbertini14-glitch/openclaw-skills
- 최근 소스 활동
- 2026년 2월 21일 14:33
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 1
- 포크
- 0
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
메뉴
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
직접 명령은 검토 Prompt를 거치지 않습니다. 실행하기 전에 소스를 확인하세요.
npx skills add https://github.com/johnalbertini14-glitch/openclaw-skills --skill browser-relay명령은 한 줄로 유지됩니다. 복사하기 전에 가로로 스크롤해 전체 내용을 확인하세요.
로컬 사본을 원하시나요? SkillsMP에서 현재 제공할 수 있는 파일을 다운로드하세요.
Use this skill to create a Polymarket wallet for your agent and trade on prediction markets. Browse markets, place bets, manage positions — all without exposing private keys.
ClawSec suite manager with embedded advisory-feed monitoring, cryptographic signature verification, approval-gated malicious-skill response, and guided setup for additional security skills.
Automated daily security audits for OpenClaw agents with email reporting. Runs deep audits and sends formatted reports.
SOC 직업 분류 기준
SKILL.md 표시 중
| name | browser-relay |
| description | 通过 HTTP relay 控制用户本地 Chromium 浏览器(绕过数据中心 IP 封锁),支持截图发送到 Telegram |
| allowed_tools | ["exec","session_state","memory_search"] |
通过 HTTP relay 控制用户本地 Chromium,用于操作会封锁数据中心 IP 的网站(如小红书)。
AI → HTTP (port 18792) → relay.py → CDP (port 9222) → 用户本地 Chromium
所有请求从用户本地 IP 发出,绕过反爬。
127.0.0.1(localhost),不会暴露到外部网络/tmp/browser-relay-token) 以 0600 权限写入,仅文件所有者可读/evaluate 端点允许在浏览器上下文中执行 JS,可访问 DOM、cookies、localStorage 等。仅限本地可信调用方使用,不应暴露给不受信任的客户端start.sh 仅通过 PID 文件精确停止 relay 进程,不会影响其他进程使用此 skill 的 agent 必须遵守以下规则:
exec 仅允许用于以下操作:
127.0.0.1:18792(relay)和 127.0.0.1:9222(CDP)发送 HTTP 请求start.sh 启动/停止 relay/tmp/browser-relay-token./screenshots/禁止使用 exec 执行上述范围之外的命令。
/evaluate 仅允许用于 UI 自动化目的:
禁止通过 /evaluate 提取以下敏感数据:
document.cookielocalStorage / sessionStorage 中的 token 或凭据以下路径均相对于项目安装目录,请根据实际位置调整。
./relay.py./start.sh/tmp/browser-relay-token/tmp/browser-relay.pid/tmp/relay.log./screenshots/每次会话开始使用 relay 前,按以下步骤操作:
curl -s http://127.0.0.1:9222/json/version
如果连接失败,说明 Chromium 未启动,需要启动它(见下方"启动 Chromium")。
DISPLAY=:0 nohup chromium --remote-debugging-port=9222 --remote-allow-origins=* > /dev/null 2>&1 &
注意事项:
--remote-allow-origins=* 否则 WebSocket 连接会被拒绝DISPLAY=:0(或对应的显示环境变量)以在用户桌面上显示chromium 或 chromium-browser,按实际情况调整curl -s http://127.0.0.1:18792/health
如果返回 {"status":"ok"},跳到步骤 5。否则继续。
bash start.sh
cat /tmp/browser-relay-token
读取后用 session_state 缓存到当前会话:
session_state set namespace=browser-relay key=token value=<token>
后续所有请求从 session_state 读取 token,不重复读文件。
所有请求都需要 Authorization: Bearer <token> 头。
curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:18792/tabs
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"url":"https://www.xiaohongshu.com"}' \
http://127.0.0.1:18792/navigate
TOKEN=$(cat /tmp/browser-relay-token)
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"quality":70}' http://127.0.0.1:18792/screenshot \
| python3 -c "
import sys, json, base64, os
from datetime import datetime
data = json.load(sys.stdin)
if data.get('ok'):
os.makedirs('./screenshots', exist_ok=True)
fname = datetime.now().strftime('%Y%m%d_%H%M%S') + '.jpg'
path = f'./screenshots/{fname}'
with open(path, 'wb') as f:
f.write(base64.b64decode(data['data']))
print(f'saved:{path} size:{os.path.getsize(path)}')
else:
print(f'error:{data}')
"
当用户在 Telegram 上交互时,截图需要发送到 TG 才能看到。流程:
# 1. 截图并保存
TOKEN=$(cat /tmp/browser-relay-token)
SCREENSHOT_PATH="/tmp/relay_screenshot.png"
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"quality":80}' http://127.0.0.1:18792/screenshot \
| python3 -c "
import sys, json, base64
data = json.load(sys.stdin)
if data.get('ok'):
with open('$SCREENSHOT_PATH', 'wb') as f:
f.write(base64.b64decode(data['data']))
print('ok')
else:
print(f'error:{data}')
"
# 2. 通过 Telegram Bot API 发送图片
TG_BOT_TOKEN="<从 session_state 或 memory 获取>"
TG_CHAT_ID="<从 session_state 或 memory 获取>"
curl -s -X POST "https://api.telegram.org/bot${TG_BOT_TOKEN}/sendPhoto" \
-F "chat_id=${TG_CHAT_ID}" \
-F "photo=@${SCREENSHOT_PATH}"
Telegram 配置:
telegram:alzmoltis_bot:<chat_id>)curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"x":100,"y":200}' http://127.0.0.1:18792/click
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"selector":"button.submit"}' http://127.0.0.1:18792/click
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"text":"要输入的内容"}' http://127.0.0.1:18792/type
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"key":"Enter"}' http://127.0.0.1:18792/keypress
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"y":300}' http://127.0.0.1:18792/scroll
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"expression":"document.title"}' http://127.0.0.1:18792/evaluate
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"selector":".target-element","timeout":5000}' http://127.0.0.1:18792/wait
# 新建标签页
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"url":"https://example.com"}' http://127.0.0.1:18792/tab/new
# 切换标签页
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"tab_id":"xxx"}' http://127.0.0.1:18792/tab/activate
# 关闭标签页
curl -s -H "Authorization: Bearer $TOKEN" -H "Content-Type: application/json" \
-d '{"tab_id":"xxx"}' http://127.0.0.1:18792/tab/close
./screenshots/ 并带时间戳sleep 0.5~1 模拟人类节奏bash start.sh stop