From fa53d6ba25085664adcbeeb8c5cc3407d7a1ae80 Mon Sep 17 00:00:00 2001 From: dongsheng123132 <90887123+dongsheng123132@users.noreply.github.com> Date: Mon, 9 Mar 2026 19:03:01 +0800 Subject: [PATCH] feat: auto-open browser after gateway starts Gateway run doesn't open browser by itself. Now scripts wait for port 18789 to be ready, read auth token from config, and open the dashboard URL in the default browser automatically. --- uclaw-scripts/启动菜单.command | 32 ++++++++++++++++++++++++-------- uclaw-scripts/运行.command | 19 +++++++++++++++++-- 2 files changed, 41 insertions(+), 10 deletions(-) diff --git a/uclaw-scripts/启动菜单.command b/uclaw-scripts/启动菜单.command index 25c3fe6..fbc2db0 100755 --- a/uclaw-scripts/启动菜单.command +++ b/uclaw-scripts/启动菜单.command @@ -201,14 +201,32 @@ do_run() { echo " 接下来可以选 [17] 打开网页控制台。" fi else - echo -e " ${GREEN}正在启动网关服务...${NC}" - echo " 启动后会自动打开浏览器控制台。" - echo " 此窗口不要关闭,关闭后服务会停止。" - echo "" - "$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force + start_gateway fi } +start_gateway() { + echo -e " ${GREEN}正在启动网关服务...${NC}" + echo " 此窗口不要关闭,关闭后服务会停止。" + echo "" + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force & + local GW_PID=$! + for i in $(seq 1 30); do + sleep 0.5 + if curl -s -o /dev/null http://127.0.0.1:18789/ 2>/dev/null; then + local TOKEN + TOKEN=$(python3 -c "import json; d=json.load(open('$PORTABLE_CONFIG_PATH')); print(d.get('gateway',{}).get('auth',{}).get('token',''))" 2>/dev/null) + local URL="http://127.0.0.1:18789/#token=${TOKEN}" + echo "" + echo -e " ${GREEN}控制台地址: ${URL}${NC}" + open "$URL" 2>/dev/null + break + fi + done + wait $GW_PID +} + do_dashboard() { echo "" echo -e " ${CYAN}${BOLD}━━━ 启动网关 + 打开网页控制台 ━━━${NC}" @@ -219,9 +237,7 @@ do_dashboard() { echo -e " ${YELLOW}你还没有完成 U 盘便携配置。请先选 [4] 从 U 盘运行。${NC}" return fi - echo " 此窗口不要关闭,关闭后服务会停止。" - echo "" - "$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force + start_gateway } # [5] 配置国产模型 diff --git a/uclaw-scripts/运行.command b/uclaw-scripts/运行.command index 10fa9a6..d675c67 100644 --- a/uclaw-scripts/运行.command +++ b/uclaw-scripts/运行.command @@ -133,10 +133,25 @@ if [ ! -f "$PORTABLE_CONFIG_PATH" ]; then fi else echo -e " ${GREEN}正在启动网关服务...${NC}" - echo " 启动后会自动打开浏览器控制台。" echo " 此窗口不要关闭,关闭后服务会停止。" echo "" - "$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force + # 后台启动网关,等它就绪后自动打开浏览器 + "$NODE_BIN" openclaw.mjs gateway run --allow-unconfigured --force & + GW_PID=$! + # 等网关启动,最多等 15 秒 + for i in $(seq 1 30); do + sleep 0.5 + if curl -s -o /dev/null http://127.0.0.1:18789/ 2>/dev/null; then + TOKEN=$(python3 -c "import json; d=json.load(open('$PORTABLE_CONFIG_PATH')); print(d.get('gateway',{}).get('auth',{}).get('token',''))" 2>/dev/null) + URL="http://127.0.0.1:18789/#token=${TOKEN}" + echo "" + echo -e " ${GREEN}控制台地址: ${URL}${NC}" + open "$URL" 2>/dev/null + break + fi + done + # 前台等待网关进程 + wait $GW_PID fi echo ""