From 6f54151a79ea3ebeedc4ba5bbf9bbbb60f3026dc Mon Sep 17 00:00:00 2001 From: dongsheng123132 <90887123+dongsheng123132@users.noreply.github.com> Date: Mon, 9 Mar 2026 10:01:38 +0800 Subject: [PATCH] feat: U-Claw v1.0 - OpenClaw offline installer USB for China - Build script to package Node.js (Mac ARM64/x64 + Win x64) + OpenClaw + all deps - YuLinMuFeng-style launcher menu with 16 functions (install/repair/backup/reset) - 8 Chinese AI models one-click config (DeepSeek/Kimi/Qwen/GLM/MiniMax/Doubao/Qianfan/Mimo) - QQ official integration (Tencent), Feishu, WeChat, Telegram, Discord, WhatsApp, Slack - 52 pre-installed skills, all offline - Bilingual README (Chinese + English) - Full China tutorial (12 chapters) - MIT license --- .gitignore | 20 + LICENSE | 21 + README.md | 270 +++++++++ build-uclaw.sh | 157 ++++++ docs/教程-OpenClaw中国区完全指南.md | 515 +++++++++++++++++ uclaw-scripts/中国用户指南.txt | 148 +++++ uclaw-scripts/使用说明.txt | 108 ++++ uclaw-scripts/启动菜单.bat | 376 +++++++++++++ uclaw-scripts/启动菜单.command | 844 ++++++++++++++++++++++++++++ uclaw-scripts/安装到电脑.bat | 88 +++ uclaw-scripts/安装到电脑.command | 117 ++++ uclaw-scripts/运行.bat | 57 ++ uclaw-scripts/运行.command | 82 +++ 13 files changed, 2803 insertions(+) create mode 100644 .gitignore create mode 100644 LICENSE create mode 100644 README.md create mode 100755 build-uclaw.sh create mode 100644 docs/教程-OpenClaw中国区完全指南.md create mode 100644 uclaw-scripts/中国用户指南.txt create mode 100644 uclaw-scripts/使用说明.txt create mode 100644 uclaw-scripts/启动菜单.bat create mode 100644 uclaw-scripts/启动菜单.command create mode 100644 uclaw-scripts/安装到电脑.bat create mode 100644 uclaw-scripts/安装到电脑.command create mode 100644 uclaw-scripts/运行.bat create mode 100644 uclaw-scripts/运行.command diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5f95a5a --- /dev/null +++ b/.gitignore @@ -0,0 +1,20 @@ +# U-Claw build outputs (too large for git) +U-Claw/runtime/ +U-Claw/openclaw/node_modules/ +U-Claw/openclaw/dist/ +U-Claw/openclaw/.git/ +U-Claw/backups/ + +# OpenClaw source (users download separately) +openclaw-2026.3.7/ +openclaw-2026.3.7.zip + +# Build cache +.download-cache/ + +# OS files +.DS_Store +Thumbs.db + +# Claude +.claude/ diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..59b3fc4 --- /dev/null +++ b/LICENSE @@ -0,0 +1,21 @@ +MIT License + +Copyright (c) 2026 U-Claw Contributors + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +SOFTWARE. diff --git a/README.md b/README.md new file mode 100644 index 0000000..d6f5302 --- /dev/null +++ b/README.md @@ -0,0 +1,270 @@ +# 🦞 U-Claw + +**OpenClaw Offline Installer USB — Built for China, Works Everywhere** + +**OpenClaw 离线安装 U 盘 — 专为中国用户打造,全球可用** + +> Like the legendary [YuLinMuFeng](https://en.wikipedia.org/wiki/Ylmf) Windows discs, but for AI. +> 就像当年的雨林木风,把 AI 助手的安装简化到"插 U 盘,双击运行"。 + +[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) + +--- + +## Why U-Claw? / 为什么需要 U-Claw? + +[OpenClaw](https://github.com/openclaw/openclaw) is the most powerful open-source AI assistant framework — 20+ chat platforms, 50+ AI models. But in China, installing it is a nightmare: + +[OpenClaw](https://github.com/openclaw/openclaw) 是最强的开源 AI 助手框架,但在中国安装它是个噩梦: + +- ❌ GitHub blocked / GitHub 访问不了 +- ❌ npm install timeout / npm install 超时 +- ❌ Node.js download slow / Node.js 下载慢 +- ❌ Dependencies fail / 依赖装不上 + +**U-Claw solves all of this.** Node.js runtime, OpenClaw source, all npm dependencies, 52 pre-installed skills — everything bundled on a USB drive. Plug in, double-click, done. + +**U-Claw 解决所有这些问题。** Node.js + OpenClaw + 所有依赖 + 52个技能,全部打包。插上 U 盘,双击即用。 + +## Features / 特性 + +- 🚀 **One-click install / 一键安装** — macOS + Windows, double-click to start +- 📦 **Fully offline / 完全离线** — No internet needed for installation +- 🇨🇳 **China-optimized / 中国优化** — 8 Chinese AI models (DeepSeek, Kimi, Qwen, GLM, MiniMax, Doubao, Qianfan, Mimo) +- 💬 **Multi-platform / 多平台** — QQ (official) / Feishu / WeChat / Telegram / Discord / WhatsApp / Slack +- 🔧 **Maintenance tools / 维护工具** — Diagnose, backup, restore, reset +- 🎯 **52 skills / 52个技能** — Pre-installed productivity skills +- 📖 **Bilingual docs / 双语文档** — Chinese + English + +## Quick Start / 快速开始 + +### Option 1: Download Release / 下载发布版(推荐) + +```bash +# Download from Releases / 从 Releases 下载 +# https://github.com/dongsheng123132/u-claw/releases + +# After extracting / 解压后: +# Mac: double-click "启动菜单.command" +# Win: double-click "启动菜单.bat" +``` + +### Option 2: Build Your Own / 自己构建 + +```bash +# Clone this repo / 克隆仓库 +git clone https://github.com/dongsheng123132/u-claw.git +cd u-claw + +# Download OpenClaw source / 下载 OpenClaw 源码 +git clone https://github.com/openclaw/openclaw.git openclaw-2026.3.7 + +# Build (downloads Node.js + installs deps + builds) +# 构建(自动下载 Node.js + 安装依赖 + 构建) +chmod +x build-uclaw.sh +./build-uclaw.sh + +# Copy U-Claw/ folder to USB drive +# 把 U-Claw/ 文件夹复制到 U 盘 +``` + +### Option 3: Copy from a Friend / 复制别人的 + +Just copy the `U-Claw/` folder. That's it. + +直接把 `U-Claw/` 文件夹复制一份就行。 + +## USB Contents / U 盘内容 + +``` +U-Claw/ (~1.3GB, 8GB USB minimum) +│ +├── 启动菜单.command / .bat ← Launcher menu (YuLinMuFeng style) +├── 运行.command / .bat ← Quick start (skip menu) +├── 安装到电脑.command / .bat ← Install to computer (permanent) +├── 使用说明.txt ← Basic instructions +├── 中国用户指南.txt ← China quick-start guide +├── 教程-OpenClaw中国区完全指南.md ← Full tutorial (12 chapters) +│ +├── runtime/ ← Node.js 22 runtimes +│ ├── node-mac-arm64/ ← Mac Apple Silicon (M1-M4) +│ ├── node-mac-x64/ ← Mac Intel +│ └── node-win-x64/ ← Windows 64-bit +│ +├── openclaw/ ← OpenClaw + node_modules + dist +│ ├── skills/ ← 52 pre-installed skills +│ └── extensions/ ← 42 channel extensions +│ +├── memory/ ← AI memory (user data) +├── persona/ ← AI personality config +└── backups/ ← Auto-created backups +``` + +## Launcher Menu / 启动菜单 + +16 functions, inspired by YuLinMuFeng (雨林木风) installer UI: + +``` +╔════════════════════════════════════════════════════════╗ +║ 🦞 U-Claw v1.0 ║ +║ Optimized for China · Offline · One-click ║ +╠════════════════════════════════════════════════════════╣ + + ━━ Install ━━ + [1] Install to computer [2] Install deps + [3] Build project [4] Run from USB + + ━━ China Optimization ━━ + [5] Chinese AI models [6] Chat platforms (QQ/Feishu/WeChat) + [7] Set China mirror + + ━━ Maintenance ━━ + [8] Diagnose & repair [9] Backup [10] Restore + [11] Reset (3 levels) [12] Clean cache + + ━━ Skills & Usage ━━ + [13] Browse 52 skills [14] China user guide + [15] Instructions [16] System info +``` + +## Supported AI Models / 支持的 AI 模型 + +### Chinese Models (no VPN needed) / 国产模型(无需翻墙) + +| Model 模型 | Provider 提供商 | Best for 推荐场景 | +|------------|----------------|-------------------| +| DeepSeek | 深度求索 | Coding, best value / 编程,性价比首选 | +| Kimi K2.5 | 月之暗面 Moonshot | Long docs, 256K context / 长文档 | +| Qwen | 阿里通义千问 | Large free tier / 免费额度大 | +| GLM 4.7 | 智谱AI Zhipu | Academic, Chinese NLP / 学术 | +| MiniMax | MiniMax | Voice, multimodal / 语音 | +| Doubao | 字节豆包 ByteDance | Volcano Engine / 火山引擎 | +| Qianfan | 百度千帆 Baidu | Baidu Cloud / 百度云 | +| Mimo | 小米 Xiaomi | Xiaomi ecosystem / 小米生态 | + +### International Models / 国际模型 + +| Model | Provider | Best for | +|-------|----------|----------| +| Claude | Anthropic | Best overall + coding | +| GPT | OpenAI | Wide compatibility | +| Gemini | Google | Free tier | + +## Supported Chat Platforms / 支持的聊天平台 + +| Platform 平台 | Status 状态 | Notes 说明 | +|---------------|------------|------------| +| QQ | ✅ **Official** 腾讯官方 | 3 commands, 1 min, free / 3条命令搞定 | +| Feishu 飞书 | ✅ Built-in 已内置 | Enterprise best / 企业首选 | +| WeChat 微信 | ✅ Community plugin | iPad protocol | +| Telegram | ✅ Built-in | Recommended for intl users | +| Discord | ✅ Built-in | Gaming / community | +| WhatsApp | ✅ Built-in | International users | +| Slack | ✅ Built-in | Enterprise (intl) | +| WeCom 企业微信 | 🔜 Coming | — | +| DingTalk 钉钉 | 🔜 Coming | — | + +### QQ Setup (1 minute) / QQ 接入(1 分钟) + +Tencent officially supports OpenClaw QQ bots. 腾讯官方支持: + +```bash +# 1. Register / 注册: http://q.qq.com/qqbot/openclaw/login.html +# 2. Create bot, get AppID:AppSecret / 创建机器人 + +# 3. Run 3 commands / 运行3条命令: +openclaw plugins install @sliverp/qqbot@latest +openclaw channels add --channel qqbot --token "AppID:AppSecret" +openclaw gateway restart + +# 4. Set allowlist! / 设置白名单! +openclaw config set channels.qqbot.allowFrom "your_qq_number" +``` + +## System Requirements / 系统要求 + +- **macOS**: 12+ (Intel or Apple Silicon) +- **Windows**: 10/11 (64-bit) +- **RAM**: 2GB+ (4GB+ recommended) +- **USB**: 8GB+ (16GB recommended) + +## Build Guide / 构建指南 + +### Prerequisites / 前提 + +- macOS or Linux (build environment) +- Internet access (only needed for building, not for end users) +- ~2GB disk space + +### What the build script does / 构建脚本做了什么 + +1. Downloads Node.js 22 for 3 platforms (Mac ARM64 + Mac x64 + Win x64), prefers China mirror +2. Copies OpenClaw source to `U-Claw/openclaw/` +3. Runs `npm install` with China mirror (registry.npmmirror.com) +4. Runs `npm run build` to build OpenClaw +5. Copies launcher scripts and docs +6. Output: ~1.3GB ready to copy to USB + +### Updating / 更新 + +```bash +# Download new OpenClaw source, replace openclaw-2026.3.7/ +./build-uclaw.sh +# Copy new U-Claw/ to USB +``` + +## Contributing / 参与贡献 + +PRs welcome! Especially needed / 欢迎 PR,特别需要: + +- 🔧 More platform repair scripts / 更多平台修复脚本 +- 📖 Tutorials and guides / 教程 +- 💬 More chat bridges (WeCom, DingTalk) / 企业微信、钉钉桥接 +- 🎯 Useful skills / 实用技能 +- 🌐 Translations / 翻译 + +```bash +# Fork → Branch → Commit → PR +git checkout -b feature/my-feature +git commit -m "feat: add xxx" +git push origin feature/my-feature +``` + +## Related Projects / 相关项目 + +| Project 项目 | Stars | Description 说明 | +|-------------|-------|-----------------| +| [OpenClaw](https://github.com/openclaw/openclaw) | — | The AI assistant framework / AI 助手框架 | +| [hello-claw](https://github.com/datawhalechina/hello-claw) | 90+ | Systematic Chinese tutorial / 体系化中文教程 | +| [openclaw-docs](https://github.com/yeuxuan/openclaw-docs) | 500+ | 276 source-level docs / 源码级文档 | +| [awesome-openclaw-skills-zh](https://github.com/clawdbot-ai/awesome-openclaw-skills-zh) | 2500+ | Chinese skill library / 中文技能库 | +| [NapCatQQ](https://github.com/NapNeko/NapCatQQ) | — | QQ bot framework (OneBot v11) | + +## FAQ + +**Q: Do end users need a VPN? / 用户需要翻墙吗?** +A: No for installation. Runtime needs internet for AI APIs — Chinese models (DeepSeek etc.) work without VPN. +安装不需要。运行需要联网调 API,国产模型无需翻墙。 + +**Q: USB drive size? / U 盘要多大?** +A: 8GB minimum, 16GB recommended. + +**Q: Can I share it? / 能分发吗?** +A: Yes, unlimited. MIT license, copy freely. +可以,无限制,MIT 协议。 + +**Q: Windows needs WSL? / Windows 需要 WSL 吗?** +A: No. U-Claw bundles Windows Node.js, runs natively via `.bat`. +不需要。自带 Windows 版 Node.js。 + +## License + +[MIT](LICENSE) — Free to use, modify, distribute. + +自由使用、修改、分发。 + +--- + +**Made with 🦞 by [dongsheng](https://github.com/dongsheng123132) & OpenClaw Community** + +**Website: [u-claw.org](https://u-claw.org)** diff --git a/build-uclaw.sh b/build-uclaw.sh new file mode 100755 index 0000000..85a65c6 --- /dev/null +++ b/build-uclaw.sh @@ -0,0 +1,157 @@ +#!/bin/bash +# ============================================================ +# U-Claw 虾盘 构建脚本 +# 在你的 Mac 上运行,打包所有依赖到 U-Claw 目录 +# 用法: ./build-uclaw.sh +# ============================================================ + +set -e + +SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)" +UCLAW_DIR="$SCRIPT_DIR/U-Claw" +SOURCE_DIR="$SCRIPT_DIR/openclaw-2026.3.7" +NODE_VERSION="22.16.0" + +# 颜色输出 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +CYAN='\033[0;36m' +NC='\033[0m' + +info() { echo -e "${CYAN}[U-Claw]${NC} $1"; } +ok() { echo -e "${GREEN}[✓]${NC} $1"; } +warn() { echo -e "${YELLOW}[!]${NC} $1"; } +error() { echo -e "${RED}[✗]${NC} $1"; exit 1; } + +echo "" +echo " 🦞 U-Claw 虾盘 构建工具" +echo " ========================" +echo " OpenClaw 一键安装 U 盘制作" +echo "" + +# ---- 1. 创建 U-Claw 目录结构 ---- +info "创建 U-Claw 目录结构..." +rm -rf "$UCLAW_DIR" +mkdir -p "$UCLAW_DIR"/{runtime/{node-mac-arm64,node-mac-x64,node-win-x64},openclaw,memory,persona,skills,tools} + +# ---- 2. 下载 Node.js 各平台版本 ---- +DOWNLOAD_DIR="$SCRIPT_DIR/.download-cache" +mkdir -p "$DOWNLOAD_DIR" + +download_node() { + local PLATFORM=$1 # darwin, win + local ARCH=$2 # arm64, x64 + local EXT=$3 # tar.gz, zip + local DEST=$4 # 目标目录名 + + local FILENAME="node-v${NODE_VERSION}-${PLATFORM}-${ARCH}" + local URL="https://nodejs.org/dist/v${NODE_VERSION}/${FILENAME}.${EXT}" + local CACHED="$DOWNLOAD_DIR/${FILENAME}.${EXT}" + + if [ -f "$CACHED" ]; then + ok "Node.js ${PLATFORM}-${ARCH} 已缓存" + else + info "下载 Node.js ${PLATFORM}-${ARCH}..." + # 尝试直接下载,如果失败则使用镜像 + if ! curl -fL --connect-timeout 10 -o "$CACHED" "$URL" 2>/dev/null; then + warn "官方源下载失败,尝试淘宝镜像..." + local MIRROR_URL="https://npmmirror.com/mirrors/node/v${NODE_VERSION}/${FILENAME}.${EXT}" + curl -fL -o "$CACHED" "$MIRROR_URL" || error "下载 Node.js ${PLATFORM}-${ARCH} 失败" + fi + ok "下载完成: Node.js ${PLATFORM}-${ARCH}" + fi + + info "解压 Node.js ${PLATFORM}-${ARCH}..." + if [ "$EXT" = "tar.gz" ]; then + tar xzf "$CACHED" -C "$UCLAW_DIR/runtime/$DEST/" --strip-components=1 + elif [ "$EXT" = "zip" ]; then + # Windows zip + local TMP_UNZIP="$DOWNLOAD_DIR/tmp-unzip-$$" + mkdir -p "$TMP_UNZIP" + unzip -q "$CACHED" -d "$TMP_UNZIP" + cp -R "$TMP_UNZIP"/${FILENAME}/* "$UCLAW_DIR/runtime/$DEST/" + rm -rf "$TMP_UNZIP" + fi + ok "Node.js ${PLATFORM}-${ARCH} 就绪" +} + +# 下载三个平台的 Node.js +download_node "darwin" "arm64" "tar.gz" "node-mac-arm64" # Mac Apple Silicon +download_node "darwin" "x64" "tar.gz" "node-mac-x64" # Mac Intel +download_node "win" "x64" "zip" "node-win-x64" # Windows x64 + +# ---- 3. 复制 OpenClaw 源码 ---- +info "复制 OpenClaw 源码..." +rsync -a --exclude='.git' --exclude='node_modules' --exclude='.github' \ + "$SOURCE_DIR/" "$UCLAW_DIR/openclaw/" +ok "OpenClaw 源码复制完成" + +# ---- 4. 安装依赖 (使用淘宝镜像) ---- +info "安装 npm 依赖(使用淘宝镜像)..." + +# 使用 U-Claw 自带的 Node.js 来安装 +if [ "$(uname -m)" = "arm64" ]; then + NODE_BIN="$UCLAW_DIR/runtime/node-mac-arm64/bin/node" + NPM_BIN="$UCLAW_DIR/runtime/node-mac-arm64/bin/npm" +else + NODE_BIN="$UCLAW_DIR/runtime/node-mac-x64/bin/node" + NPM_BIN="$UCLAW_DIR/runtime/node-mac-x64/bin/npm" +fi + +cd "$UCLAW_DIR/openclaw" + +# 设置淘宝镜像 +"$NODE_BIN" "$NPM_BIN" config set registry https://registry.npmmirror.com --location=project 2>/dev/null || true + +# 安装依赖 +info "npm install 中...(可能需要几分钟)" +"$NODE_BIN" "$NPM_BIN" install --registry=https://registry.npmmirror.com --prefer-offline 2>&1 | tail -5 + +ok "npm 依赖安装完成" + +# ---- 5. 构建 OpenClaw ---- +info "构建 OpenClaw..." +# 检查是否有 pnpm 可用,OpenClaw 使用 pnpm build +if [ -f "$UCLAW_DIR/openclaw/node_modules/.bin/tsdown" ]; then + # 尝试简单构建 + cd "$UCLAW_DIR/openclaw" + "$NODE_BIN" "$NPM_BIN" run build 2>&1 | tail -10 || warn "build 可能有错误,继续..." +fi +ok "构建步骤完成" + +cd "$SCRIPT_DIR" + +# ---- 6. 复制用户脚本和说明 ---- +info "复制用户脚本..." + +# 从 scripts 模板目录复制(构建脚本同级的 uclaw-scripts/ 目录) +SCRIPTS_SRC="$SCRIPT_DIR/uclaw-scripts" +if [ -d "$SCRIPTS_SRC" ]; then + cp "$SCRIPTS_SRC/运行.command" "$UCLAW_DIR/" 2>/dev/null || true + cp "$SCRIPTS_SRC/运行.bat" "$UCLAW_DIR/" 2>/dev/null || true + cp "$SCRIPTS_SRC/安装到电脑.command" "$UCLAW_DIR/" 2>/dev/null || true + cp "$SCRIPTS_SRC/安装到电脑.bat" "$UCLAW_DIR/" 2>/dev/null || true + cp "$SCRIPTS_SRC/使用说明.txt" "$UCLAW_DIR/" 2>/dev/null || true + chmod +x "$UCLAW_DIR/运行.command" "$UCLAW_DIR/安装到电脑.command" 2>/dev/null || true + ok "用户脚本已复制" +else + warn "找不到 uclaw-scripts/ 目录,请手动复制脚本到 U-Claw/" +fi + +# ---- 7. 计算大小 ---- +echo "" +echo " ============================================" +info "U-Claw 构建完成!" +echo "" +TOTAL_SIZE=$(du -sh "$UCLAW_DIR" | cut -f1) +echo " 总大小: $TOTAL_SIZE" +echo "" +du -sh "$UCLAW_DIR"/runtime/node-mac-arm64 2>/dev/null | awk '{print " Node.js Mac ARM64: "$1}' +du -sh "$UCLAW_DIR"/runtime/node-mac-x64 2>/dev/null | awk '{print " Node.js Mac x64: "$1}' +du -sh "$UCLAW_DIR"/runtime/node-win-x64 2>/dev/null | awk '{print " Node.js Win x64: "$1}' +du -sh "$UCLAW_DIR"/openclaw 2>/dev/null | awk '{print " OpenClaw + 依赖: "$1}' +echo "" +echo " 将 U-Claw 文件夹整个复制到 U 盘即可" +echo " ============================================" +echo "" diff --git a/docs/教程-OpenClaw中国区完全指南.md b/docs/教程-OpenClaw中国区完全指南.md new file mode 100644 index 0000000..b9b131a --- /dev/null +++ b/docs/教程-OpenClaw中国区完全指南.md @@ -0,0 +1,515 @@ +# OpenClaw 中国区完全指南 + +> 综合参考 [hello-claw](https://github.com/datawhalechina/hello-claw)、[openclaw-docs](https://github.com/yeuxuan/openclaw-docs)、[awesome-openclaw-skills-zh](https://github.com/clawdbot-ai/awesome-openclaw-skills-zh) 等优秀社区教程 + +--- + +## 目录 + +1. [什么是 OpenClaw?](#1-什么是-openclaw) +2. [安装(使用 U-Claw 一键安装)](#2-安装使用-u-claw-一键安装) +3. [首次配置](#3-首次配置) +4. [选择 AI 模型](#4-选择-ai-模型) +5. [接入聊天平台](#5-接入聊天平台) +6. [日常使用场景](#6-日常使用场景) +7. [技能系统](#7-技能系统) +8. [定时任务与自动化](#8-定时任务与自动化) +9. [多模型配置与成本优化](#9-多模型配置与成本优化) +10. [常见问题与故障排除](#10-常见问题与故障排除) +11. [进阶:VPS 部署](#11-进阶vps-部署) +12. [社区资源](#12-社区资源) + +--- + +## 1. 什么是 OpenClaw? + +OpenClaw 是一个**开源 AI 助手框架**,你可以把它理解为: + +- 一个能接入 QQ、飞书、Telegram、Discord 等 20+ 聊天平台的 AI 机器人 +- 一个能调用 DeepSeek、Kimi、Claude、GPT 等 50+ AI 模型的智能网关 +- 一个支持 52+ 技能(发邮件、管理日程、操作笔记、控制智能家居)的全能助手 +- 一个可以设定定时任务、自动执行工作流的 AI Agent + +**一句话总结:你的私人 AI 助手,跑在你自己的设备上,连接你所有的聊天工具。** + +### 核心架构 + +``` +你的聊天平台 ←→ OpenClaw Gateway ←→ AI 模型 + (QQ/飞书/TG) (你的电脑) (DeepSeek/Kimi/Claude) + ↕ + 技能 & 工具 + (邮件/笔记/日程/搜索...) +``` + +--- + +## 2. 安装(使用 U-Claw 一键安装) + +### 方式一:U-Claw U 盘安装(推荐,免翻墙) + +``` +1. 插入 U-Claw U 盘 +2. Mac: 双击「启动菜单.command」 + Win: 双击「启动菜单.bat」 +3. 选择 [1] 一键安装到电脑 +4. 等待完成(约 2-3 分钟) +``` + +安装后在终端输入 `openclaw` 或 `uclaw` 即可启动。 + +### 方式二:手动安装(需要翻墙) + +```bash +# 安装 Node.js 22+ +# 方法1: 官网下载 https://nodejs.org +# 方法2: 使用 nvm +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash +nvm install 22 + +# 安装 OpenClaw(使用淘宝镜像) +npm install -g openclaw@latest --registry=https://registry.npmmirror.com + +# 启动引导 +openclaw onboard --install-daemon +``` + +--- + +## 3. 首次配置 + +安装完成后,运行 `openclaw`,会进入引导向导: + +### 3.1 选择 AI 模型提供商 + +``` +? Select your AI provider: + > DeepSeek ← 国内推荐 + Moonshot (Kimi) + Qwen + Anthropic (Claude) + OpenAI (GPT) + ... +``` + +### 3.2 输入 API Key + +每个模型都需要一个 API Key,去对应平台注册获取(下一章详细说明)。 + +### 3.3 选择聊天平台 + +``` +? Which channels do you want to connect? + > Telegram + Discord + Feishu (飞书) + ... +``` + +### 3.4 安装守护进程 + +``` +? Install as background service? (Y/n) +``` + +选 Y,OpenClaw 会在后台持续运行。 + +--- + +## 4. 选择 AI 模型 + +### 国产模型推荐(国内直接可用,无需翻墙) + +#### 🏆 DeepSeek(推荐首选) + +- **价格**:极便宜(约 1 元 / 百万 tokens) +- **特长**:编程、逻辑推理 +- **注册**:https://platform.deepseek.com/ +- **配置**: + ``` + # .env 文件 + OPENAI_API_KEY=sk-xxxxxxxx + OPENAI_BASE_URL=https://api.deepseek.com/v1 + ``` + +#### 📚 Kimi / 月之暗面 + +- **价格**:中等 +- **特长**:256K 超长上下文,适合长文档分析 +- **注册**:https://platform.moonshot.cn/ +- **配置**: + ``` + OPENAI_API_KEY=sk-xxxxxxxx + OPENAI_BASE_URL=https://api.moonshot.cn/v1 + ``` + +#### 🆓 通义千问 Qwen(免费额度最大) + +- **价格**:有大量免费额度 +- **特长**:中文理解好,多模态 +- **注册**:https://dashscope.console.aliyun.com/ +- **配置**:启动菜单 [5] 选择 Qwen + +#### 🎓 智谱 GLM + +- **特长**:学术场景,中文 NLP +- **注册**:https://open.bigmodel.cn/ + +#### 🎙️ MiniMax + +- **特长**:语音合成,多模态 +- **注册**:https://platform.minimaxi.com/ + +#### 🔥 豆包 Doubao(字节跳动) + +- **特长**:火山引擎生态整合 +- **注册**:https://console.volcengine.com/ark + +### 国际模型(需要翻墙或用 OpenRouter) + +| 模型 | 特长 | 注册 | +|------|------|------| +| Claude 4 | 最强综合,编程最好 | anthropic.com | +| GPT-4.1 | 广泛兼容 | platform.openai.com | +| Gemini 3 | 免费额度 | ai.google.dev | + +### 💡 省钱技巧 + +1. **日常用 DeepSeek**,复杂任务切 Claude +2. **用 OpenRouter 统一管理多个模型**:https://openrouter.ai +3. 在 OpenClaw 中可以为不同聊天平台配置不同模型 + +--- + +## 5. 接入聊天平台 + +### 5.1 QQ(腾讯官方接入,推荐!) + +腾讯官方已为 OpenClaw 开放 QQ 机器人能力。**全程 1 分钟,完全免费,无需翻墙。** + +这可能是国内 AI 助手最强入口——Telegram 要翻墙,Discord 要翻墙,**QQ 不用。** + +``` +步骤(仅需 3 条命令): + +1. 扫码注册 QQ 机器人: + http://q.qq.com/qqbot/openclaw/login.html + +2. 点击「创建机器人」,获取 AppID 和 AppSecret + +3. 终端执行: + openclaw plugins install @sliverp/qqbot@latest + openclaw channels add --channel qqbot --token "你的AppID:你的AppSecret" + openclaw gateway restart +``` + +⚠️ **安全提醒**:默认 `allowFrom` 是 `*`,任何人都能访问你的机器人。接入后务必改成自己的 QQ 号或限定白名单: + +```bash +openclaw config set channels.qqbot.allowFrom "你的QQ号" +``` + +效果:在 QQ 中 @机器人 或私聊,AI 就会回复。 + +### 5.1b QQ(备选方案:NapCatQQ) + +如果官方接入有问题,可以用 NapCatQQ (OneBot v11 协议) 作为备选: + +``` +1. 下载 NapCatQQ: https://github.com/NapNeko/NapCatQQ/releases +2. 安装并启动,用 QQ 扫码登录 +3. 在 NapCat 中启用 HTTP 服务,端口 3000 +4. 在 OpenClaw .env 中添加: + ONEBOT_HTTP_URL=http://localhost:3000 +``` + +### 5.2 飞书 Feishu + +飞书是 OpenClaw 内置支持最全的中国平台: + +``` +步骤: +1. 访问 https://open.feishu.cn/app +2. 创建企业自建应用 +3. 获取 App ID 和 App Secret +4. 在「事件订阅」中配置 Webhook URL +5. 在「权限管理」中开启消息相关权限 +6. 运行: openclaw onboard → 选择 Feishu +``` + +支持:文字/图片/文件/群组/@提及/飞书文档/多维表格 + +### 5.3 微信 + +``` +# 安装社区插件 +openclaw plugins install @icesword760/openclaw-wechat + +# 支持:文字/图片/文件/关键词触发 +# 基于 iPad 协议 +``` + +### 5.4 Telegram + +``` +步骤: +1. 在 Telegram 找 @BotFather +2. 发送 /newbot,按提示创建机器人 +3. 获取 Bot Token +4. 运行: openclaw onboard → 选择 Telegram +5. 输入 Token +``` + +### 5.5 Discord + +``` +步骤: +1. 访问 https://discord.com/developers/applications +2. 创建 Application → Bot +3. 获取 Bot Token +4. 在 OAuth2 中生成邀请链接,邀请到服务器 +5. 运行: openclaw onboard → 选择 Discord +``` + +--- + +## 6. 日常使用场景 + +### 编程助手 + +``` +你: 帮我写一个 Python 爬虫,抓取豆瓣电影 Top250 +AI: [生成完整代码 + 使用说明] + +你: 这段代码有 bug,帮我看看 [粘贴代码] +AI: [分析 bug + 修复方案] +``` + +### 内容创作 + +``` +你: 帮我写一篇关于 AI 发展趋势的文章,1000 字 +AI: [生成文章] + +你: 帮我总结这个链接的内容: https://... +AI: [总结要点] +``` + +### 日常办公 + +``` +你: 帮我发邮件给 zhang@example.com,主题是项目进度,内容是... +AI: [通过 himalaya 技能发送邮件] + +你: 提醒我明天下午 3 点开会 +AI: [通过 apple-reminders 技能设置提醒] + +你: 帮我在 Notion 创建一个新页面,标题是... +AI: [通过 notion 技能创建页面] +``` + +### 信息查询 + +``` +你: 今天深圳天气怎么样? +AI: [通过 weather 技能查询] + +你: 搜索 GitHub 上最新的 AI 开源项目 +AI: [通过 github 技能搜索] +``` + +--- + +## 7. 技能系统 + +### 已预装的 52 个技能 + +U-Claw 已预装所有官方技能,无需联网下载。在启动菜单选 [13] 可以浏览完整列表。 + +### 常用技能速查 + +| 技能 | 用途 | 使用示例 | +|------|------|----------| +| github | GitHub 操作 | "帮我看 #123 这个 Issue" | +| summarize | 内容总结 | "总结这个网页" | +| weather | 天气 | "今天北京天气" | +| himalaya | 邮件 | "帮我发邮件" | +| apple-notes | 备忘录 | "帮我记一下..." | +| obsidian | Obsidian 笔记 | "在 Obsidian 创建笔记" | +| notion | Notion | "在 Notion 创建页面" | +| coding-agent | 编程委派 | "帮我重构这个函数" | +| nano-pdf | PDF 编辑 | "修改这个 PDF" | +| openai-image-gen | AI 绘图 | "画一只猫" | +| peekaboo | 屏幕截图 | "截个屏" | +| tmux | 远程终端 | "看一下服务器状态" | + +### 安装更多技能 + +```bash +# 搜索社区技能 +openclaw skills search 翻译 + +# 安装技能 +openclaw skills install @xxx/skill-name + +# 通过 ClawHub +openclaw clawhub search +``` + +--- + +## 8. 定时任务与自动化 + +OpenClaw 支持 Cron 定时任务: + +```bash +# 每天早上 8 点发送天气预报 +openclaw cron add "0 8 * * *" "查看今天深圳天气并发送到飞书" + +# 每小时检查邮件 +openclaw cron add "0 * * * *" "检查新邮件,有重要的通知我" + +# 每天下午 6 点总结今日工作 +openclaw cron add "0 18 * * *" "总结今天的工作进度" +``` + +--- + +## 9. 多模型配置与成本优化 + +### 为不同场景配置不同模型 + +在 `openclaw.json` 中: + +```json +{ + "models": { + "default": "deepseek-v3", + "coding": "deepseek-coder", + "creative": "kimi-k2.5", + "complex": "claude-opus-4" + } +} +``` + +### 成本控制建议 + +1. **日常对话**:DeepSeek V3(约 1元/百万 tokens) +2. **长文档**:Kimi K2.5(256K 上下文) +3. **复杂推理**:Claude(按需切换) +4. **图片生成**:用 MiniMax 或 OpenAI DALL-E +5. **语音**:Sherpa-ONNX(本地免费)或 ElevenLabs + +--- + +## 10. 常见问题与故障排除 + +### Q: 启动报错 "Node.js v22+ is required" + +```bash +# 使用 U-Claw 自带的 Node.js +# Mac: 运行 "启动菜单.command" 而不是直接运行 openclaw +# 或安装到电脑后重新打开终端 +``` + +### Q: npm install 超时 + +```bash +# 设置淘宝镜像 +npm config set registry https://registry.npmmirror.com +# 或使用启动菜单 [7] 一键设置 +``` + +### Q: AI 不回复消息 + +```bash +# 1. 检查 API Key 是否正确 +# 2. 检查网络是否能访问 AI 服务 +# 3. 运行诊断 +openclaw doctor --repair +# 或使用启动菜单 [8] +``` + +### Q: 飞书机器人收不到消息 + +``` +1. 检查事件订阅 URL 是否正确 +2. 检查应用权限是否开启 +3. 检查是否在飞书管理后台审核通过 +4. 查看 OpenClaw 日志: tail -f ~/.openclaw/logs/gateway.log +``` + +### Q: QQ 机器人掉线 + +``` +1. 检查 NapCatQQ 是否在运行 +2. 重新扫码登录 +3. 检查 NapCat 的 HTTP 端口配置 +``` + +### Q: 如何完全重置? + +```bash +# 方式1: 使用启动菜单 [11] +# 方式2: 命令行 +openclaw reset --scope full +``` + +--- + +## 11. 进阶:VPS 部署 + +如果你想让 AI 助手 24/7 在线运行: + +### 推荐配置 + +- **最低**:1核 2GB 内存(轻量云服务器即可) +- **推荐**:2核 4GB 内存 +- **存储**:20GB+ + +### 国内云服务商推荐 + +- 腾讯云轻量:最低 50元/月 +- 阿里云 ECS:学生价更便宜 +- 华为云:同上 + +### Docker 部署 + +```bash +# 使用 Docker 一键部署 +git clone https://github.com/openclaw/openclaw.git +cd openclaw +cp .env.example .env +# 编辑 .env,填入你的 API Key 和 Bot Token + +docker compose up -d +``` + +--- + +## 12. 社区资源 + +### 教程 + +| 项目 | Stars | 说明 | +|------|-------|------| +| [hello-claw](https://github.com/datawhalechina/hello-claw) | 90+ | Datawhale 体系化教程 | +| [openclaw-docs](https://github.com/yeuxuan/openclaw-docs) | 500+ | 276篇源码级文档 | +| [awesome-openclaw-skills-zh](https://github.com/clawdbot-ai/awesome-openclaw-skills-zh) | 2500+ | 中文技能库 | + +### 工具 + +| 项目 | 说明 | +|------|------| +| [NapCatQQ](https://github.com/NapNeko/NapCatQQ) | QQ 机器人框架 | +| [openclaw-wechat](https://github.com/icesword0760/openclaw-wechat) | 微信接入插件 | +| [U-Claw](https://github.com/dongsheng123132/u-claw) | 本项目,离线安装盘 | + +### 社区 + +- U-Claw 官网: [u-claw.org](https://u-claw.org) +- OpenClaw 官方: [github.com/openclaw/openclaw](https://github.com/openclaw/openclaw) + +--- + +*本教程由 U-Claw 社区维护,欢迎 PR 完善内容。* diff --git a/uclaw-scripts/中国用户指南.txt b/uclaw-scripts/中国用户指南.txt new file mode 100644 index 0000000..1078e61 --- /dev/null +++ b/uclaw-scripts/中国用户指南.txt @@ -0,0 +1,148 @@ +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ U-Claw 虾盘 — 中国用户快速上手指南 ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + + +第一步:选择 AI 模型 +══════════════════════ + +OpenClaw 支持大量国产模型,以下是推荐: + +1. DeepSeek(深度求索)—— 推荐首选 + - 便宜好用,编程能力强 + - 注册: https://platform.deepseek.com/ + - 免费额度: 有 + +2. Kimi(月之暗面)—— 超长上下文 + - 256K 上下文,适合长文档 + - 注册: https://platform.moonshot.cn/ + - 免费额度: 有 + +3. 通义千问 Qwen(阿里)—— 免费额度最大 + - 注册: https://dashscope.console.aliyun.com/ + - 免费额度: 非常多 + +4. 智谱 GLM(清华系)—— 学术场景强 + - 注册: https://open.bigmodel.cn/ + - 免费额度: 有 + +5. MiniMax —— 语音和多模态强 + - 注册: https://platform.minimaxi.com/ + +6. 豆包 Doubao(字节跳动)—— 火山引擎 + - 注册: https://console.volcengine.com/ark + +7. 百度千帆 —— 百度智能云 + - 注册: https://console.bce.baidu.com/qianfan/ + +8. 小米 Mimo + - 注册: https://dev.mi.com/mimo + +在启动菜单选 [5] 即可一键配置 + + +第二步:选择聊天平台 +══════════════════════ + +让 AI 接入你的聊天工具: + +已内置: + - QQ(腾讯官方)★ — 国内首选!3条命令搞定,免费免翻墙 + - 飞书 Feishu — 企业首选,功能最全 + - Telegram — 海外推荐 + - Discord — 游戏/社区 + - WhatsApp — 海外用户 + - Slack — 外企用户 + +QQ 接入方法(腾讯官方,1分钟搞定): + 1. 扫码注册: http://q.qq.com/qqbot/openclaw/login.html + 2. 点击"创建机器人",获取 AppID 和 AppSecret + 3. 运行 3 条命令: + openclaw plugins install @sliverp/qqbot@latest + openclaw channels add --channel qqbot --token "AppID:AppSecret" + openclaw gateway restart + 4. 安全: 记得设置白名单 openclaw config set channels.qqbot.allowFrom "你的QQ号" + 详见: 启动菜单 [6] 中国聊天平台 + +微信接入: + - 社区插件: openclaw plugins install @icesword760/openclaw-wechat + - 基于 iPad 协议,支持文字/图片/文件 + + +第三步:常用技能(Skills) +══════════════════════════ + +U-Claw 已预装 52 个技能,以下是最实用的: + +【效率工具】 + - github — GitHub 操作(Issues/PR/代码审查) + - coding-agent — 委派编程任务给其他 AI + - summarize — 总结文本/网页/播客 + - nano-pdf — 自然语言编辑 PDF + +【笔记 & 任务】 + - apple-notes — Apple 备忘录自动化 + - obsidian — Obsidian 笔记操作 + - notion — Notion 页面和数据库 + - apple-reminders— Apple 提醒事项 + - things-mac — Things 3 任务管理 + - trello — Trello 看板 + +【AI & 创作】 + - openai-image-gen — AI 图片生成 + - openai-whisper — 语音转文字 + - gemini — Gemini 一键问答 + - sag — ElevenLabs 文字转语音 + +【通讯】 + - himalaya — 邮件收发(IMAP/SMTP) + - discord — Discord 消息操作 + - slack — Slack 消息操作 + - wacli — WhatsApp 消息 + +【系统 & 搜索】 + - weather — 天气查询 + - peekaboo — macOS 屏幕截图和自动化 + - tmux — 远程终端管理 + - clawhub — 搜索安装更多技能 + +使用方法: 在 OpenClaw 对话中直接说 "帮我查天气" 或 "帮我发邮件" 即可 + + +第四步:日常使用场景 +══════════════════════ + +场景1: 编程助手 + "帮我写一个 Python 脚本,批量重命名文件" + "审查这个 PR: #123" + +场景2: 内容创作 + "帮我总结这篇文章: [URL]" + "帮我生成一张关于AI的图片" + +场景3: 日常办公 + "帮我发邮件给 xxx@example.com,主题是..." + "帮我在 Notion 创建一个新页面" + "提醒我明天下午3点开会" + +场景4: 信息查询 + "今天深圳天气怎么样?" + "帮我搜索 GitHub 上最新的 AI 项目" + +场景5: 多平台 AI 助手 + 配置飞书/QQ/Telegram 后,直接在聊天中 @AI 即可 + + +遇到问题? +══════════════════════ + +1. 插 U 盘,双击「启动菜单」 +2. 选 [8] 诊断修复 +3. 如果修不好,选 [11] 重置 +4. 重置前会自动提醒你备份 + +加入社区: + - u-claw.org + - GitHub: github.com/dongsheng123132/u-claw diff --git a/uclaw-scripts/使用说明.txt b/uclaw-scripts/使用说明.txt new file mode 100644 index 0000000..2cacb0e --- /dev/null +++ b/uclaw-scripts/使用说明.txt @@ -0,0 +1,108 @@ +╔══════════════════════════════════════════════════════════╗ +║ ║ +║ U-Claw 虾盘 v1.0 ║ +║ OpenClaw 离线安装 U 盘 ║ +║ ║ +║ by OpenClaw Community ║ +║ u-claw.org ║ +║ ║ +╚══════════════════════════════════════════════════════════╝ + +什么是 U-Claw? +═══════════════ +U-Claw 虾盘是 OpenClaw(开源 AI 助手)的离线安装包。 +就像当年的"雨林木风"Windows 光盘一样, +把所有依赖打包好,插上 U 盘就能用。 + +特别适合中国大陆用户 - 不需要访问 GitHub、npm 等海外服务。 + + +U 盘里有什么? +═══════════════ +U-Claw/ +├── 运行.command <- Mac 用户双击这个 +├── 运行.bat <- Windows 用户双击这个 +├── 安装到电脑.command <- Mac 永久安装 +├── 安装到电脑.bat <- Windows 永久安装 +├── runtime/ <- Node.js 运行环境 (Mac/Win) +├── openclaw/ <- OpenClaw 源码 + 依赖 +├── memory/ <- AI 记忆文件 +├── persona/ <- AI 人格配置 +├── skills/ <- AI 技能 +└── 使用说明.txt <- 你正在看的这个 + + +快速开始 +═══════════════ + +【方式一:直接从 U 盘运行(免安装)】 + + Mac 用户: + 1. 插入 U 盘 + 2. 打开 U-Claw 文件夹 + 3. 双击 "运行.command" + 4. 如果提示"无法打开",右键 -> 打开 + 5. 等待启动完成 + + Windows 用户: + 1. 插入 U 盘 + 2. 打开 U-Claw 文件夹 + 3. 双击 "运行.bat" + 4. 等待启动完成 + + 首次运行可能需要几分钟安装依赖(已预打包,无需联网) + + +【方式二:安装到电脑(推荐)】 + + Mac 用户: + 1. 双击 "安装到电脑.command" + 2. 按提示操作 + 3. 安装后在终端输入 openclaw 即可使用 + + Windows 用户: + 1. 双击 "安装到电脑.bat" + 2. 按提示操作 + 3. 安装后在命令提示符输入 openclaw 即可使用 + + 安装位置: ~/.uclaw/ (Mac) 或 %USERPROFILE%\.uclaw\ (Win) + + +系统要求 +═══════════════ +- macOS 12+ (Intel 或 Apple Silicon) +- Windows 10/11 (64位) +- 内存: 2GB 以上(推荐 4GB+) +- 磁盘: 2GB 可用空间 + + +更新方法 +═══════════════ +下载新版 U-Claw,重新运行 "安装到电脑" 即可覆盖更新。 +你的记忆文件和配置会自动保留。 + + +常见问题 +═══════════════ + +Q: Mac 提示"无法打开,因为它来自身份不明的开发者" +A: 右键点击文件 -> 选择 "打开" -> 再点 "打开" + +Q: Windows 提示"Windows 已保护你的电脑" +A: 点击 "更多信息" -> "仍要运行" + +Q: 运行报错 "Node.js v22+ is required" +A: U-Claw 自带 Node.js,请确保从 U-Claw 文件夹内启动 + +Q: 如何配置 AI 模型的 API Key? +A: 运行 openclaw 后按引导配置,或编辑 openclaw/.env 文件 + +Q: 能离线使用吗? +A: OpenClaw 本身需要联网调用 AI API(如 Claude、DeepSeek)。 + 但安装过程完全离线,不需要访问 GitHub 或 npm。 + + +获取帮助 +═══════════════ +- OpenClaw 官方: https://github.com/openclaw/openclaw +- U-Claw 项目: https://u-claw.org diff --git a/uclaw-scripts/启动菜单.bat b/uclaw-scripts/启动菜单.bat new file mode 100644 index 0000000..9db9dfd --- /dev/null +++ b/uclaw-scripts/启动菜单.bat @@ -0,0 +1,376 @@ +@echo off +chcp 65001 >nul 2>&1 +title U-Claw 虾盘 - 启动菜单 +setlocal enabledelayedexpansion + +set "UCLAW_DIR=%~dp0" +set "OPENCLAW_DIR=%UCLAW_DIR%openclaw" +set "NODE_DIR=%UCLAW_DIR%runtime\node-win-x64" +set "NODE_BIN=%NODE_DIR%\node.exe" +set "NPM_BIN=%NODE_DIR%\npm.cmd" +set "PATH=%NODE_DIR%;%PATH%" + +:MENU +cls +echo. +echo ╔════════════════════════════════════════════════════════╗ +echo ║ ║ +echo ║ U-Claw 虾盘 v1.0 ║ +echo ║ OpenClaw AI 助手 一键安装盘 ║ +echo ║ ║ +echo ║ 专为中国用户优化 · 免翻墙 · 离线安装 ║ +echo ║ ║ +echo ╠════════════════════════════════════════════════════════╣ +echo ║ ║ + +:: 状态检测 +for /f "tokens=*" %%v in ('"%NODE_BIN%" --version 2^>nul') do set "NODE_VER=%%v" +set "ST_MOD=未安装" +set "ST_BUILD=未构建" +set "ST_INST=未安装" +if exist "%OPENCLAW_DIR%\node_modules" set "ST_MOD=已安装" +if exist "%OPENCLAW_DIR%\dist" set "ST_BUILD=已构建" +if exist "%USERPROFILE%\.uclaw\openclaw" set "ST_INST=已安装" + +echo ║ 系统: x64 ^| Node: %NODE_VER% ║ +echo ║ 依赖: %ST_MOD% ^| 构建: %ST_BUILD% ^| 安装: %ST_INST% ║ +echo ║ ║ +echo ╠════════════════════════════════════════════════════════╣ +echo. +echo ---- 安装 ----------------------------------------- +echo. +echo [1] 一键安装 OpenClaw 到电脑(推荐) +echo [2] 仅安装依赖(npm install) +echo [3] 仅构建项目(npm build) +echo [4] 直接从 U 盘运行(免安装) +echo. +echo ---- 中国优化 ------------------------------------- +echo. +echo [5] 配置国产 AI 模型(DeepSeek/Kimi/通义千问) +echo [6] 配置中国聊天平台(飞书/钉钉) +echo [7] 设置国内镜像源 +echo. +echo ---- 维护工具 ------------------------------------- +echo. +echo [8] 诊断修复(openclaw doctor) +echo [9] 备份当前状态 +echo [10] 恢复备份 +echo [11] 重置 OpenClaw(恢复出厂) +echo [12] 清理缓存和临时文件 +echo. +echo ---- 其他 ----------------------------------------- +echo. +echo [13] 查看使用说明 +echo [14] 系统信息 +echo [0] 退出 +echo. +echo ╚════════════════════════════════════════════════════════╝ +echo. + +set /p CHOICE=" 请选择 [0-14]: " + +if "%CHOICE%"=="1" goto INSTALL +if "%CHOICE%"=="2" goto NPM_INSTALL +if "%CHOICE%"=="3" goto BUILD +if "%CHOICE%"=="4" goto RUN +if "%CHOICE%"=="5" goto CHINA_MODELS +if "%CHOICE%"=="6" goto CHINA_CHANNELS +if "%CHOICE%"=="7" goto MIRROR +if "%CHOICE%"=="8" goto DOCTOR +if "%CHOICE%"=="9" goto BACKUP +if "%CHOICE%"=="10" goto RESTORE +if "%CHOICE%"=="11" goto RESET +if "%CHOICE%"=="12" goto CLEANUP +if "%CHOICE%"=="13" goto README +if "%CHOICE%"=="14" goto SYSINFO +if "%CHOICE%"=="0" goto EXIT + +echo 无效选择 +pause +goto MENU + +:INSTALL +echo. +echo === 一键安装 OpenClaw 到电脑 === +echo. +call "%UCLAW_DIR%安装到电脑.bat" +pause +goto MENU + +:NPM_INSTALL +echo. +echo === 安装 npm 依赖 === +echo. +cd /d "%OPENCLAW_DIR%" +"%NODE_BIN%" "%NPM_BIN%" install --registry=https://registry.npmmirror.com +echo. +echo 依赖安装完成! +pause +goto MENU + +:BUILD +echo. +echo === 构建 OpenClaw === +echo. +if not exist "%OPENCLAW_DIR%\node_modules" ( + echo 先安装依赖... + cd /d "%OPENCLAW_DIR%" + "%NODE_BIN%" "%NPM_BIN%" install --registry=https://registry.npmmirror.com +) +cd /d "%OPENCLAW_DIR%" +"%NODE_BIN%" "%NPM_BIN%" run build +echo. +echo 构建完成! +pause +goto MENU + +:RUN +echo. +echo === 从 U 盘启动 OpenClaw === +echo. +if not exist "%OPENCLAW_DIR%\node_modules" ( + echo 先安装依赖... + cd /d "%OPENCLAW_DIR%" + "%NODE_BIN%" "%NPM_BIN%" install --registry=https://registry.npmmirror.com +) +if not exist "%OPENCLAW_DIR%\dist" ( + echo 先构建... + cd /d "%OPENCLAW_DIR%" + "%NODE_BIN%" "%NPM_BIN%" run build 2>nul +) +cd /d "%OPENCLAW_DIR%" +"%NODE_BIN%" openclaw.mjs onboard --install-daemon 2>nul || "%NODE_BIN%" openclaw.mjs 2>nul || "%NODE_BIN%" "%NPM_BIN%" start +pause +goto MENU + +:CHINA_MODELS +echo. +echo === 配置国产 AI 模型 === +echo. +echo [a] DeepSeek(深度求索) - 性价比最高,推荐首选 +echo [b] Kimi / 月之暗面 - 256K 超长上下文 +echo [c] 通义千问 Qwen - 阿里云,免费额度大 +echo [d] 智谱 GLM - 清华系 +echo [e] MiniMax - 语音和多模态 +echo [f] 豆包 Doubao(字节跳动) - 火山引擎平台 +echo. +set /p MODEL=" 请选择 (a-f): " + +set "ENV_FILE=%OPENCLAW_DIR%\.env" +if not exist "%ENV_FILE%" type nul > "%ENV_FILE%" + +if /i "%MODEL%"=="a" ( + echo. + echo 配置 DeepSeek + echo 获取 API Key: https://platform.deepseek.com/ + set /p APIKEY=" 请输入 DeepSeek API Key: " + echo OPENAI_API_KEY=!APIKEY!>> "%ENV_FILE%" + echo OPENAI_BASE_URL=https://api.deepseek.com/v1>> "%ENV_FILE%" + echo DeepSeek 已配置! +) +if /i "%MODEL%"=="b" ( + echo. + echo 配置 Kimi + echo 获取 API Key: https://platform.moonshot.cn/ + set /p APIKEY=" 请输入 Moonshot API Key: " + echo OPENAI_API_KEY=!APIKEY!>> "%ENV_FILE%" + echo OPENAI_BASE_URL=https://api.moonshot.cn/v1>> "%ENV_FILE%" + echo Kimi 已配置! +) +if /i "%MODEL%"=="c" ( + echo. + echo 配置通义千问 + echo 获取 API Key: https://dashscope.console.aliyun.com/ + set /p APIKEY=" 请输入 Qwen API Key: " + echo ZAI_API_KEY=!APIKEY!>> "%ENV_FILE%" + echo 通义千问已配置! +) +pause +goto MENU + +:CHINA_CHANNELS +echo. +echo === 配置中国聊天平台 === +echo. +echo [a] 飞书 Feishu/Lark - 已内置,功能最全 +echo [b] Telegram - 国内可用 +echo. +echo 企业微信/钉钉/QQ 需要桥接服务,后续版本集成 +echo. +set /p CH=" 请选择 (a-b): " + +if not exist "%OPENCLAW_DIR%\node_modules" ( + cd /d "%OPENCLAW_DIR%" + "%NODE_BIN%" "%NPM_BIN%" install --registry=https://registry.npmmirror.com +) +cd /d "%OPENCLAW_DIR%" +"%NODE_BIN%" openclaw.mjs onboard +pause +goto MENU + +:MIRROR +echo. +echo === 设置国内镜像源 === +echo. +cd /d "%OPENCLAW_DIR%" +"%NODE_BIN%" "%NPM_BIN%" config set registry https://registry.npmmirror.com --location=project +echo npm 镜像已设置: registry.npmmirror.com +echo 后续 npm install 将自动使用淘宝镜像 +pause +goto MENU + +:DOCTOR +echo. +echo === 诊断修复 === +echo. +if not exist "%OPENCLAW_DIR%\node_modules" ( + cd /d "%OPENCLAW_DIR%" + "%NODE_BIN%" "%NPM_BIN%" install --registry=https://registry.npmmirror.com +) +cd /d "%OPENCLAW_DIR%" +"%NODE_BIN%" openclaw.mjs doctor --repair +pause +goto MENU + +:BACKUP +echo. +echo === 备份当前状态 === +echo. +set "TIMESTAMP=%date:~0,4%%date:~5,2%%date:~8,2%_%time:~0,2%%time:~3,2%%time:~6,2%" +set "TIMESTAMP=%TIMESTAMP: =0%" +set "BACKUP_DIR=%UCLAW_DIR%backups\backup_%TIMESTAMP%" +mkdir "%BACKUP_DIR%" 2>nul + +if exist "%OPENCLAW_DIR%\.env" ( + copy "%OPENCLAW_DIR%\.env" "%BACKUP_DIR%\.env" >nul + echo [OK] .env 配置已备份 +) +if exist "%USERPROFILE%\.openclaw\openclaw.json" ( + mkdir "%BACKUP_DIR%\openclaw-state" 2>nul + copy "%USERPROFILE%\.openclaw\openclaw.json" "%BACKUP_DIR%\openclaw-state\" >nul + echo [OK] OpenClaw 状态已备份 +) +if exist "%USERPROFILE%\.openclaw\credentials" ( + xcopy "%USERPROFILE%\.openclaw\credentials" "%BACKUP_DIR%\openclaw-state\credentials\" /e /i /q >nul 2>&1 + echo [OK] 凭据已备份 +) + +echo. +echo 备份完成! 位置: %BACKUP_DIR% +pause +goto MENU + +:RESTORE +echo. +echo === 恢复备份 === +echo. +set "BACKUP_BASE=%UCLAW_DIR%backups" +if not exist "%BACKUP_BASE%" ( + echo 没有找到任何备份 + pause + goto MENU +) +echo 可用备份: +dir /b "%BACKUP_BASE%" 2>nul +echo. +set /p RESTORE_NAME=" 输入备份名称: " +set "RESTORE_PATH=%BACKUP_BASE%\%RESTORE_NAME%" + +if not exist "%RESTORE_PATH%" ( + echo 备份不存在 + pause + goto MENU +) + +if exist "%RESTORE_PATH%\.env" ( + copy "%RESTORE_PATH%\.env" "%OPENCLAW_DIR%\.env" >nul + echo [OK] .env 已恢复 +) +if exist "%RESTORE_PATH%\openclaw-state" ( + xcopy "%RESTORE_PATH%\openclaw-state" "%USERPROFILE%\.openclaw\" /e /i /q /y >nul 2>&1 + echo [OK] OpenClaw 状态已恢复 +) + +echo. +echo 恢复完成! +pause +goto MENU + +:RESET +echo. +echo === 重置 OpenClaw === +echo. +echo [1] 仅重置配置(保留凭据) +echo [2] 重置配置+凭据+会话 +echo [3] 完全重置(恢复出厂) +echo [0] 取消 +echo. +set /p RESET_CHOICE=" 选择重置级别: " + +if "%RESET_CHOICE%"=="0" goto MENU +if not exist "%OPENCLAW_DIR%\node_modules" ( + cd /d "%OPENCLAW_DIR%" + "%NODE_BIN%" "%NPM_BIN%" install --registry=https://registry.npmmirror.com +) +cd /d "%OPENCLAW_DIR%" + +if "%RESET_CHOICE%"=="1" "%NODE_BIN%" openclaw.mjs reset --scope config +if "%RESET_CHOICE%"=="2" "%NODE_BIN%" openclaw.mjs reset --scope config+creds+sessions +if "%RESET_CHOICE%"=="3" ( + set /p CONFIRM=" 确定完全重置? 输入 YES 确认: " + if "!CONFIRM!"=="YES" "%NODE_BIN%" openclaw.mjs reset --scope full +) +pause +goto MENU + +:CLEANUP +echo. +echo === 清理缓存 === +echo. +"%NODE_BIN%" "%NPM_BIN%" cache clean --force 2>nul +echo npm 缓存已清理 +if exist "%USERPROFILE%\.openclaw\logs" ( + rmdir /s /q "%USERPROFILE%\.openclaw\logs" 2>nul + echo 日志已清理 +) +echo. +echo 清理完成! +pause +goto MENU + +:README +echo. +if exist "%UCLAW_DIR%使用说明.txt" ( + type "%UCLAW_DIR%使用说明.txt" +) else ( + echo 使用说明文件不存在 +) +pause +goto MENU + +:SYSINFO +echo. +echo === 系统信息 === +echo. +echo 操作系统: %OS% +echo 处理器: %PROCESSOR_ARCHITECTURE% +echo Node.js: %NODE_VER% +echo U-Claw 路径: %UCLAW_DIR% +echo. +if exist "%USERPROFILE%\.uclaw" ( + echo 已安装路径: %USERPROFILE%\.uclaw +) else ( + echo 电脑安装: 未安装 +) +if exist "%USERPROFILE%\.openclaw" ( + echo OpenClaw 状态: %USERPROFILE%\.openclaw +) +echo. +pause +goto MENU + +:EXIT +echo. +echo 再见! +echo. +exit /b 0 diff --git a/uclaw-scripts/启动菜单.command b/uclaw-scripts/启动菜单.command new file mode 100644 index 0000000..1fa9c85 --- /dev/null +++ b/uclaw-scripts/启动菜单.command @@ -0,0 +1,844 @@ +#!/bin/bash +# ============================================================ +# U-Claw 虾盘 - 启动菜单 (雨林木风风格) +# macOS 版本 +# ============================================================ + +UCLAW_DIR="$(cd "$(dirname "$0")" && pwd)" +OPENCLAW_DIR="$UCLAW_DIR/openclaw" + +# 颜色 +RED='\033[0;31m' +GREEN='\033[0;32m' +YELLOW='\033[1;33m' +CYAN='\033[0;36m' +BLUE='\033[0;34m' +MAGENTA='\033[0;35m' +WHITE='\033[1;37m' +GRAY='\033[0;37m' +NC='\033[0m' +BOLD='\033[1m' +DIM='\033[2m' + +# 检测架构并设置 Node +ARCH=$(uname -m) +if [ "$ARCH" = "arm64" ]; then + NODE_DIR="$UCLAW_DIR/runtime/node-mac-arm64" +else + NODE_DIR="$UCLAW_DIR/runtime/node-mac-x64" +fi +NODE_BIN="$NODE_DIR/bin/node" +NPM_BIN="$NODE_DIR/bin/npm" +export PATH="$NODE_DIR/bin:$PATH" + +# 检查安装状态 +check_status() { + HAS_MODULES="no" + HAS_DIST="no" + HAS_ENV="no" + INSTALLED="no" + + [ -d "$OPENCLAW_DIR/node_modules" ] && HAS_MODULES="yes" + [ -d "$OPENCLAW_DIR/dist" ] && HAS_DIST="yes" + [ -f "$OPENCLAW_DIR/.env" ] && HAS_ENV="yes" + [ -d "$HOME/.uclaw/openclaw" ] && INSTALLED="yes" +} + +# 显示主菜单 +show_menu() { + check_status + clear + echo "" + echo -e "${CYAN}${BOLD}" + echo " ╔════════════════════════════════════════════════════════╗" + echo " ║ ║" + echo " ║ 🦞 U-Claw 虾盘 v1.0 ║" + echo " ║ OpenClaw AI 助手 一键安装盘 ║" + echo " ║ ║" + echo " ║ 专为中国用户优化 · 免翻墙 · 离线安装 ║" + echo " ║ ║" + echo " ╠════════════════════════════════════════════════════════╣" + echo -e " ║${NC} ${CYAN}║" + + # 状态栏 + local STATUS_NODE="${GREEN}v$($NODE_BIN --version 2>/dev/null || echo '未找到')${NC}" + local STATUS_MOD="${RED}未安装${NC}" + local STATUS_BUILD="${RED}未构建${NC}" + local STATUS_INST="${RED}未安装${NC}" + + [ "$HAS_MODULES" = "yes" ] && STATUS_MOD="${GREEN}已安装${NC}" + [ "$HAS_DIST" = "yes" ] && STATUS_BUILD="${GREEN}已构建${NC}" + [ "$INSTALLED" = "yes" ] && STATUS_INST="${GREEN}已安装${NC}" + + echo -e " ${CYAN}║${NC} 系统: $(uname -m) | Node: $STATUS_NODE ${CYAN}║${NC}" + echo -e " ${CYAN}║${NC} 依赖: $STATUS_MOD | 构建: $STATUS_BUILD | 电脑安装: $STATUS_INST ${CYAN}║${NC}" + echo -e " ${CYAN}║${NC} ${CYAN}║${NC}" + echo -e " ${CYAN}╠════════════════════════════════════════════════════════╣${NC}" + echo "" + echo -e " ${WHITE}${BOLD} ━━━━ 安装 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo "" + echo -e " ${GREEN} [1]${NC} 🚀 一键安装 OpenClaw 到电脑(推荐)" + echo -e " ${GREEN} [2]${NC} 📦 仅安装依赖(npm install)" + echo -e " ${GREEN} [3]${NC} 🔨 仅构建项目(npm build)" + echo -e " ${GREEN} [4]${NC} ▶️ 直接从 U 盘运行(免安装)" + echo "" + echo -e " ${WHITE}${BOLD} ━━━━ 中国优化 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo "" + echo -e " ${YELLOW} [5]${NC} 🇨🇳 配置国产 AI 模型(DeepSeek/Kimi/通义千问)" + echo -e " ${YELLOW} [6]${NC} 💬 配置中国聊天平台(飞书/钉钉)" + echo -e " ${YELLOW} [7]${NC} 🪞 设置国内镜像源" + echo "" + echo -e " ${WHITE}${BOLD} ━━━━ 维护工具 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo "" + echo -e " ${CYAN} [8]${NC} 🔧 诊断修复(openclaw doctor)" + echo -e " ${CYAN} [9]${NC} 💾 备份当前状态" + echo -e " ${CYAN} [10]${NC} 📂 恢复备份" + echo -e " ${CYAN} [11]${NC} 🔄 重置 OpenClaw(恢复出厂)" + echo -e " ${CYAN} [12]${NC} 🧹 清理缓存和临时文件" + echo "" + echo -e " ${WHITE}${BOLD} ━━━━ 技能 & 使用 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo "" + echo -e " ${BLUE} [13]${NC} 🎯 浏览预装技能(52个,已离线可用)" + echo -e " ${BLUE} [14]${NC} 📖 中国用户快速上手指南" + echo "" + echo -e " ${WHITE}${BOLD} ━━━━ 其他 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${NC}" + echo "" + echo -e " ${MAGENTA} [15]${NC} 📋 查看使用说明" + echo -e " ${MAGENTA} [16]${NC} ℹ️ 系统信息" + echo -e " ${DIM} [0]${NC} 退出" + echo "" + echo -e " ${CYAN}╚════════════════════════════════════════════════════════╝${NC}" + echo "" +} + +# 确保依赖已安装 +ensure_deps() { + if [ ! -d "$OPENCLAW_DIR/node_modules" ]; then + echo -e " ${YELLOW}正在安装依赖(淘宝镜像)...${NC}" + cd "$OPENCLAW_DIR" + "$NODE_BIN" "$NPM_BIN" install --registry=https://registry.npmmirror.com 2>&1 + echo -e " ${GREEN}依赖安装完成${NC}" + fi + if [ ! -d "$OPENCLAW_DIR/dist" ]; then + echo -e " ${YELLOW}正在构建...${NC}" + cd "$OPENCLAW_DIR" + "$NODE_BIN" "$NPM_BIN" run build 2>&1 || true + echo -e " ${GREEN}构建完成${NC}" + fi +} + +# [1] 一键安装到电脑 +do_install() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 一键安装 OpenClaw 到电脑 ━━━${NC}" + echo "" + bash "$UCLAW_DIR/安装到电脑.command" +} + +# [2] 安装依赖 +do_npm_install() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 安装 npm 依赖 ━━━${NC}" + echo "" + cd "$OPENCLAW_DIR" + echo -e " ${YELLOW}使用淘宝镜像安装...${NC}" + "$NODE_BIN" "$NPM_BIN" install --registry=https://registry.npmmirror.com 2>&1 + echo "" + echo -e " ${GREEN}依赖安装完成!${NC}" +} + +# [3] 构建 +do_build() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 构建 OpenClaw ━━━${NC}" + echo "" + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" "$NPM_BIN" run build 2>&1 + echo "" + echo -e " ${GREEN}构建完成!${NC}" +} + +# [4] 直接运行 +do_run() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 从 U 盘启动 OpenClaw ━━━${NC}" + echo "" + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs onboard --install-daemon 2>&1 || \ + "$NODE_BIN" openclaw.mjs 2>&1 || \ + "$NODE_BIN" "$NPM_BIN" start 2>&1 +} + +# [5] 配置国产模型 +do_china_models() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 配置国产 AI 模型 ━━━${NC}" + echo "" + echo -e " OpenClaw 已内置以下国产模型支持:" + echo "" + echo -e " ${GREEN}[a]${NC} DeepSeek(深度求索) — 性价比最高,推荐首选" + echo -e " ${GREEN}[b]${NC} Kimi / 月之暗面 — 256K 超长上下文" + echo -e " ${GREEN}[c]${NC} 通义千问 Qwen — 阿里云,免费额度大" + echo -e " ${GREEN}[d]${NC} 智谱 GLM — 清华系,学术场景强" + echo -e " ${GREEN}[e]${NC} MiniMax — 语音和多模态" + echo -e " ${GREEN}[f]${NC} 豆包 Doubao(字节跳动) — 火山引擎平台" + echo -e " ${GREEN}[g]${NC} 百度千帆 — 百度智能云" + echo -e " ${GREEN}[h]${NC} 小米 Mimo — 小米 AI" + echo "" + echo -e " ${YELLOW}请选择要配置的模型 (a-h):${NC} " + read -n 1 MODEL_CHOICE + echo "" + echo "" + + ENV_FILE="$OPENCLAW_DIR/.env" + touch "$ENV_FILE" + + case $MODEL_CHOICE in + a) + echo -e " ${CYAN}配置 DeepSeek${NC}" + echo " 获取 API Key: https://platform.deepseek.com/" + echo "" + read -p " 请输入 DeepSeek API Key: " API_KEY + if [ -n "$API_KEY" ]; then + grep -v "OPENAI_API_KEY\|OPENAI_BASE_URL" "$ENV_FILE" > "$ENV_FILE.tmp" 2>/dev/null || true + mv "$ENV_FILE.tmp" "$ENV_FILE" + echo "OPENAI_API_KEY=$API_KEY" >> "$ENV_FILE" + echo "OPENAI_BASE_URL=https://api.deepseek.com/v1" >> "$ENV_FILE" + echo -e " ${GREEN}DeepSeek 已配置!${NC}" + fi + ;; + b) + echo -e " ${CYAN}配置 Kimi (月之暗面)${NC}" + echo " 获取 API Key: https://platform.moonshot.cn/" + echo "" + read -p " 请输入 Moonshot API Key: " API_KEY + if [ -n "$API_KEY" ]; then + grep -v "OPENAI_API_KEY\|OPENAI_BASE_URL" "$ENV_FILE" > "$ENV_FILE.tmp" 2>/dev/null || true + mv "$ENV_FILE.tmp" "$ENV_FILE" + echo "OPENAI_API_KEY=$API_KEY" >> "$ENV_FILE" + echo "OPENAI_BASE_URL=https://api.moonshot.cn/v1" >> "$ENV_FILE" + echo -e " ${GREEN}Kimi 已配置!${NC}" + fi + ;; + c) + echo -e " ${CYAN}配置通义千问 Qwen${NC}" + echo " 获取 API Key: https://dashscope.console.aliyun.com/" + echo "" + read -p " 请输入 Qwen API Key: " API_KEY + if [ -n "$API_KEY" ]; then + grep -v "ZAI_API_KEY" "$ENV_FILE" > "$ENV_FILE.tmp" 2>/dev/null || true + mv "$ENV_FILE.tmp" "$ENV_FILE" + echo "ZAI_API_KEY=$API_KEY" >> "$ENV_FILE" + echo -e " ${GREEN}通义千问已配置!${NC}" + fi + ;; + d) + echo -e " ${CYAN}配置智谱 GLM${NC}" + echo " 获取 API Key: https://open.bigmodel.cn/" + echo " 注意: 通过火山引擎(Volcano Engine)接入" + echo "" + read -p " 请输入 API Key: " API_KEY + if [ -n "$API_KEY" ]; then + echo "# 智谱GLM (via Volcano Engine)" >> "$ENV_FILE" + echo "VOLCENGINE_API_KEY=$API_KEY" >> "$ENV_FILE" + echo -e " ${GREEN}智谱 GLM 已配置!${NC}" + fi + ;; + e) + echo -e " ${CYAN}配置 MiniMax${NC}" + echo " 获取 API Key: https://platform.minimaxi.com/" + echo "" + read -p " 请输入 MiniMax API Key: " API_KEY + if [ -n "$API_KEY" ]; then + grep -v "MINIMAX_API_KEY" "$ENV_FILE" > "$ENV_FILE.tmp" 2>/dev/null || true + mv "$ENV_FILE.tmp" "$ENV_FILE" + echo "MINIMAX_API_KEY=$API_KEY" >> "$ENV_FILE" + echo -e " ${GREEN}MiniMax 已配置!${NC}" + fi + ;; + f) + echo -e " ${CYAN}配置豆包 Doubao (字节跳动)${NC}" + echo " 获取 API Key: https://console.volcengine.com/ark" + echo "" + read -p " 请输入火山引擎 API Key: " API_KEY + if [ -n "$API_KEY" ]; then + grep -v "VOLCENGINE_API_KEY" "$ENV_FILE" > "$ENV_FILE.tmp" 2>/dev/null || true + mv "$ENV_FILE.tmp" "$ENV_FILE" + echo "VOLCENGINE_API_KEY=$API_KEY" >> "$ENV_FILE" + echo -e " ${GREEN}豆包已配置!${NC}" + fi + ;; + g) + echo -e " ${CYAN}配置百度千帆${NC}" + echo " 获取 API Key: https://console.bce.baidu.com/qianfan/" + echo "" + read -p " 请输入千帆 API Key: " API_KEY + if [ -n "$API_KEY" ]; then + echo "QIANFAN_API_KEY=$API_KEY" >> "$ENV_FILE" + echo -e " ${GREEN}百度千帆已配置!${NC}" + fi + ;; + h) + echo -e " ${CYAN}配置小米 Mimo${NC}" + echo " 获取 API Key: https://dev.mi.com/mimo" + echo "" + read -p " 请输入 Mimo API Key: " API_KEY + if [ -n "$API_KEY" ]; then + echo "MIMO_API_KEY=$API_KEY" >> "$ENV_FILE" + echo -e " ${GREEN}小米 Mimo 已配置!${NC}" + fi + ;; + *) + echo -e " ${YELLOW}无效选择${NC}" + ;; + esac +} + +# [6] 配置中国聊天平台 +do_china_channels() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 配置中国聊天平台 ━━━${NC}" + echo "" + echo -e " OpenClaw 支持的聊天平台:" + echo "" + echo -e " ${WHITE}${BOLD} -- 国内平台 --${NC}" + echo -e " ${GREEN}[a]${NC} 飞书 Feishu/Lark — 已内置,企业首选" + echo -e " ${GREEN}[b]${NC} QQ(腾讯官方)${RED}★推荐${NC} — 3条命令,1分钟,免费免翻墙" + echo -e " ${GREEN}[c]${NC} 微信(社区插件) — iPad协议,文字/图片/文件" + echo -e " ${GRAY}[d]${NC} 企业微信 WeCom — 后续集成" + echo -e " ${GRAY}[e]${NC} 钉钉 DingTalk — 后续集成" + echo "" + echo -e " ${WHITE}${BOLD} -- 国际平台 --${NC}" + echo -e " ${GREEN}[f]${NC} Telegram — 推荐,简单好用" + echo -e " ${GREEN}[g]${NC} Discord — 游戏/社区" + echo -e " ${GREEN}[h]${NC} WhatsApp — 海外用户" + echo -e " ${GREEN}[i]${NC} Slack — 外企用户" + echo "" + read -p " 请选择 (a-i): " -n 1 CH_CHOICE + echo "" + echo "" + + case $CH_CHOICE in + a) + echo -e " ${CYAN}配置飞书 Feishu${NC}" + echo "" + echo " 飞书机器人配置步骤:" + echo " 1. 访问 https://open.feishu.cn/app 创建应用" + echo " 2. 获取 App ID 和 App Secret" + echo " 3. 配置事件订阅和权限" + echo "" + echo " 详细文档: openclaw/docs/channels/feishu.md" + echo "" + ensure_deps + cd "$OPENCLAW_DIR" + echo -e " ${YELLOW}启动 OpenClaw 配置向导...${NC}" + "$NODE_BIN" openclaw.mjs onboard 2>&1 || true + ;; + b) + echo -e " ${CYAN}${BOLD}配置 QQ(腾讯官方接入)${NC}" + echo "" + echo -e " ${GREEN}${BOLD}这是国内最简单的 AI 助手接入方式!${NC}" + echo -e " ${GREEN}全程 1 分钟,完全免费,无需翻墙。${NC}" + echo "" + echo -e " ${WHITE}${BOLD}步骤:${NC}" + echo "" + echo " 1. 扫码注册 QQ 机器人:" + echo -e " ${CYAN}http://q.qq.com/qqbot/openclaw/login.html${NC}" + echo "" + echo " 2. 点击「创建机器人」,获取 AppID 和 AppSecret" + echo "" + echo " 3. 运行以下 3 条命令:" + echo "" + echo -e " ${GREEN}openclaw plugins install @sliverp/qqbot@latest${NC}" + echo -e " ${GREEN}openclaw channels add --channel qqbot --token \"AppID:AppSecret\"${NC}" + echo -e " ${GREEN}openclaw gateway restart${NC}" + echo "" + echo -e " ${RED}⚠️ 安全提醒:${NC}" + echo " 默认任何人都能访问你的机器人!接入后请设置白名单:" + echo -e " ${YELLOW}openclaw config set channels.qqbot.allowFrom \"你的QQ号\"${NC}" + echo "" + echo -e " ${DIM}备选方案: 也可以用 NapCatQQ (OneBot v11) 接入${NC}" + echo -e " ${DIM}https://github.com/NapNeko/NapCatQQ/releases${NC}" + echo "" + + # 如果已安装 OpenClaw,直接帮用户执行 + if [ -d "$OPENCLAW_DIR/dist" ]; then + read -p " 是否现在安装 QQ 插件? (y/n) " -n 1 DO_QQ + echo "" + if [[ "$DO_QQ" =~ ^[Yy]$ ]]; then + cd "$OPENCLAW_DIR" + echo "" + echo -e " ${YELLOW}正在安装 QQ 插件...${NC}" + "$NODE_BIN" openclaw.mjs plugins install @sliverp/qqbot@latest 2>&1 || true + echo "" + read -p " 请输入你的 AppID:AppSecret: " QQ_TOKEN + if [ -n "$QQ_TOKEN" ]; then + "$NODE_BIN" openclaw.mjs channels add --channel qqbot --token "$QQ_TOKEN" 2>&1 || true + "$NODE_BIN" openclaw.mjs gateway restart 2>&1 || true + echo "" + echo -e " ${GREEN}QQ 机器人配置完成!${NC}" + echo -e " ${YELLOW}记得设置白名单!${NC}" + fi + fi + fi + ;; + c) + echo -e " ${CYAN}配置微信(社区插件)${NC}" + echo "" + echo " 安装微信插件:" + echo " openclaw plugins install @icesword760/openclaw-wechat" + echo "" + echo " 基于 iPad 协议,支持:" + echo " - 文字消息" + echo " - 图片发送" + echo " - 文件传输" + echo " - 关键词触发对话" + echo "" + echo " 仓库: https://github.com/icesword0760/openclaw-wechat" + echo "" + ensure_deps + cd "$OPENCLAW_DIR" + echo -e " ${YELLOW}正在安装微信插件...${NC}" + "$NODE_BIN" openclaw.mjs plugins install @icesword760/openclaw-wechat 2>&1 || \ + echo -e " ${YELLOW}安装失败,请手动安装${NC}" + ;; + d|e) + echo -e " ${YELLOW}该平台正在开发中,敬请期待${NC}" + echo " 可关注 u-claw.org 获取最新进展" + ;; + f) + echo -e " ${CYAN}配置 Telegram${NC}" + echo "" + echo " 步骤:" + echo " 1. 在 Telegram 中找 @BotFather" + echo " 2. 发送 /newbot 创建机器人" + echo " 3. 获取 Bot Token" + echo "" + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs onboard 2>&1 || true + ;; + g) + echo -e " ${CYAN}配置 Discord${NC}" + echo "" + echo " 步骤:" + echo " 1. 访问 https://discord.com/developers/applications" + echo " 2. 创建 Application -> Bot" + echo " 3. 获取 Bot Token" + echo "" + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs onboard 2>&1 || true + ;; + h|i) + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs onboard 2>&1 || true + ;; + *) + echo -e " ${YELLOW}无效选择${NC}" + ;; + esac +} + +# [7] 设置国内镜像 +do_mirror() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 设置国内镜像源 ━━━${NC}" + echo "" + + # npm 镜像 + echo -e " ${YELLOW}设置 npm 淘宝镜像...${NC}" + "$NODE_BIN" "$NPM_BIN" config set registry https://registry.npmmirror.com --location=project 2>/dev/null + cd "$OPENCLAW_DIR" 2>/dev/null + "$NODE_BIN" "$NPM_BIN" config set registry https://registry.npmmirror.com --location=project 2>/dev/null + echo -e " ${GREEN}npm 镜像已设置: registry.npmmirror.com${NC}" + + # 创建 .npmrc + NPMRC="$OPENCLAW_DIR/.npmrc" + if ! grep -q "npmmirror" "$NPMRC" 2>/dev/null; then + echo "" >> "$NPMRC" + echo "registry=https://registry.npmmirror.com" >> "$NPMRC" + fi + + echo "" + echo -e " ${GREEN}国内镜像配置完成!${NC}" + echo " 后续 npm install 将自动使用淘宝镜像" +} + +# [8] 诊断修复 +do_doctor() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 诊断修复 ━━━${NC}" + echo "" + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs doctor --repair 2>&1 || \ + echo -e " ${YELLOW}如果 doctor 无法运行,请先完成安装步骤${NC}" +} + +# [9] 备份 +do_backup() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 备份当前状态 ━━━${NC}" + echo "" + + BACKUP_DIR="$UCLAW_DIR/backups" + TIMESTAMP=$(date +%Y%m%d_%H%M%S) + BACKUP_NAME="backup_${TIMESTAMP}" + BACKUP_PATH="$BACKUP_DIR/$BACKUP_NAME" + + mkdir -p "$BACKUP_PATH" + + echo -e " ${YELLOW}备份中...${NC}" + + # 备份配置 + if [ -f "$OPENCLAW_DIR/.env" ]; then + cp "$OPENCLAW_DIR/.env" "$BACKUP_PATH/.env" + echo -e " ${GREEN} ✓ .env 配置${NC}" + fi + + # 备份 OpenClaw 状态 + if [ -d "$HOME/.openclaw" ]; then + mkdir -p "$BACKUP_PATH/openclaw-state" + cp -R "$HOME/.openclaw/openclaw.json" "$BACKUP_PATH/openclaw-state/" 2>/dev/null || true + cp -R "$HOME/.openclaw/credentials" "$BACKUP_PATH/openclaw-state/" 2>/dev/null || true + echo -e " ${GREEN} ✓ OpenClaw 状态和凭据${NC}" + fi + + # 备份 U-Claw 用户数据 + if [ -d "$UCLAW_DIR/memory" ] && [ "$(ls -A "$UCLAW_DIR/memory" 2>/dev/null)" ]; then + cp -R "$UCLAW_DIR/memory" "$BACKUP_PATH/" + echo -e " ${GREEN} ✓ 记忆文件${NC}" + fi + if [ -d "$UCLAW_DIR/persona" ] && [ "$(ls -A "$UCLAW_DIR/persona" 2>/dev/null)" ]; then + cp -R "$UCLAW_DIR/persona" "$BACKUP_PATH/" + echo -e " ${GREEN} ✓ 人格配置${NC}" + fi + + # 备份已安装的版本 + if [ -d "$HOME/.uclaw/openclaw" ]; then + cp "$HOME/.uclaw/openclaw/.env" "$BACKUP_PATH/installed-env" 2>/dev/null || true + echo -e " ${GREEN} ✓ 已安装版本配置${NC}" + fi + + BACKUP_SIZE=$(du -sh "$BACKUP_PATH" | cut -f1) + echo "" + echo -e " ${GREEN}备份完成!${NC}" + echo " 位置: $BACKUP_PATH" + echo " 大小: $BACKUP_SIZE" + echo "" + + # 显示所有备份 + echo " 所有备份:" + ls -1 "$BACKUP_DIR" 2>/dev/null | while read -r b; do + echo " - $b" + done +} + +# [10] 恢复备份 +do_restore() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 恢复备份 ━━━${NC}" + echo "" + + BACKUP_DIR="$UCLAW_DIR/backups" + if [ ! -d "$BACKUP_DIR" ] || [ -z "$(ls -A "$BACKUP_DIR" 2>/dev/null)" ]; then + echo -e " ${YELLOW}没有找到任何备份${NC}" + echo " 请先使用 [9] 创建备份" + return + fi + + echo " 可用备份:" + echo "" + local i=1 + for b in "$BACKUP_DIR"/*/; do + local bname=$(basename "$b") + local bsize=$(du -sh "$b" | cut -f1) + echo -e " ${GREEN}[$i]${NC} $bname ($bsize)" + i=$((i+1)) + done + echo "" + read -p " 选择要恢复的备份编号: " RESTORE_NUM + + local j=1 + local RESTORE_PATH="" + for b in "$BACKUP_DIR"/*/; do + if [ "$j" = "$RESTORE_NUM" ]; then + RESTORE_PATH="$b" + break + fi + j=$((j+1)) + done + + if [ -z "$RESTORE_PATH" ]; then + echo -e " ${RED}无效选择${NC}" + return + fi + + echo "" + echo -e " ${YELLOW}正在恢复 $(basename "$RESTORE_PATH")...${NC}" + + # 恢复 .env + if [ -f "$RESTORE_PATH/.env" ]; then + cp "$RESTORE_PATH/.env" "$OPENCLAW_DIR/.env" + echo -e " ${GREEN} ✓ .env 已恢复${NC}" + fi + + # 恢复 OpenClaw 状态 + if [ -d "$RESTORE_PATH/openclaw-state" ]; then + mkdir -p "$HOME/.openclaw" + cp -R "$RESTORE_PATH/openclaw-state/"* "$HOME/.openclaw/" 2>/dev/null || true + echo -e " ${GREEN} ✓ OpenClaw 状态已恢复${NC}" + fi + + # 恢复用户数据 + if [ -d "$RESTORE_PATH/memory" ]; then + cp -R "$RESTORE_PATH/memory" "$UCLAW_DIR/" + echo -e " ${GREEN} ✓ 记忆文件已恢复${NC}" + fi + if [ -d "$RESTORE_PATH/persona" ]; then + cp -R "$RESTORE_PATH/persona" "$UCLAW_DIR/" + echo -e " ${GREEN} ✓ 人格配置已恢复${NC}" + fi + + echo "" + echo -e " ${GREEN}恢复完成!${NC}" +} + +# [11] 重置 +do_reset() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 重置 OpenClaw ━━━${NC}" + echo "" + echo -e " ${RED}警告: 重置将清除配置和状态数据${NC}" + echo "" + echo -e " ${GREEN}[1]${NC} 仅重置配置(保留凭据和会话)" + echo -e " ${YELLOW}[2]${NC} 重置配置 + 凭据 + 会话(保留工作区)" + echo -e " ${RED}[3]${NC} 完全重置(恢复出厂状态)" + echo -e " ${DIM}[0]${NC} 取消" + echo "" + read -p " 选择重置级别: " -n 1 RESET_CHOICE + echo "" + + case $RESET_CHOICE in + 1) + echo "" + echo -e " ${YELLOW}建议先备份! 是否先创建备份? (y/n)${NC}" + read -n 1 DO_BACKUP + echo "" + [ "$DO_BACKUP" = "y" ] && do_backup + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs reset --scope config 2>&1 || true + ;; + 2) + echo "" + echo -e " ${YELLOW}建议先备份! 是否先创建备份? (y/n)${NC}" + read -n 1 DO_BACKUP + echo "" + [ "$DO_BACKUP" = "y" ] && do_backup + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs reset --scope config+creds+sessions 2>&1 || true + ;; + 3) + echo "" + echo -e " ${RED}确定要完全重置吗? 输入 YES 确认:${NC} " + read CONFIRM + if [ "$CONFIRM" = "YES" ]; then + do_backup + ensure_deps + cd "$OPENCLAW_DIR" + "$NODE_BIN" openclaw.mjs reset --scope full 2>&1 || true + echo -e " ${GREEN}已恢复出厂状态${NC}" + else + echo " 已取消" + fi + ;; + *) + echo " 已取消" + ;; + esac +} + +# [12] 清理 +do_cleanup() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 清理缓存和临时文件 ━━━${NC}" + echo "" + + FREED=0 + + # 清理 npm 缓存 + echo -e " ${YELLOW}清理 npm 缓存...${NC}" + CACHE_SIZE=$("$NODE_BIN" "$NPM_BIN" cache ls 2>/dev/null | wc -l || echo 0) + "$NODE_BIN" "$NPM_BIN" cache clean --force 2>/dev/null || true + echo -e " ${GREEN} ✓ npm 缓存已清理${NC}" + + # 清理 Node.js 编译缓存 + if [ -d "$HOME/.cache/node" ]; then + NSIZE=$(du -sm "$HOME/.cache/node" 2>/dev/null | cut -f1) + rm -rf "$HOME/.cache/node" + echo -e " ${GREEN} ✓ Node 编译缓存已清理 (${NSIZE}MB)${NC}" + fi + + # 清理 OpenClaw 日志 + if [ -d "$HOME/.openclaw/logs" ]; then + LSIZE=$(du -sm "$HOME/.openclaw/logs" 2>/dev/null | cut -f1) + rm -rf "$HOME/.openclaw/logs" + echo -e " ${GREEN} ✓ 日志已清理 (${LSIZE:-0}MB)${NC}" + fi + + echo "" + echo -e " ${GREEN}清理完成!${NC}" +} + +# [13] 技能浏览器 +do_skills_browser() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 预装技能浏览器(52个,已离线可用)━━━${NC}" + echo "" + echo -e " ${WHITE}${BOLD} 效率 & 编程${NC}" + echo -e " ${GREEN} github${NC} GitHub 操作(Issues/PR/代码审查/CI)" + echo -e " ${GREEN} gh-issues${NC} 获取 Issues 并分配 Agent 修复" + echo -e " ${GREEN} coding-agent${NC} 委派编程任务给 Codex/Claude/Pi" + echo -e " ${GREEN} summarize${NC} 总结文本/网页/播客/视频" + echo -e " ${GREEN} nano-pdf${NC} 自然语言编辑 PDF" + echo -e " ${GREEN} clawhub${NC} 搜索安装更多社区技能" + echo -e " ${GREEN} skill-creator${NC} 创建自定义技能" + echo "" + echo -e " ${WHITE}${BOLD} 笔记 & 任务管理${NC}" + echo -e " ${GREEN} apple-notes${NC} Apple 备忘录(创建/搜索/编辑)" + echo -e " ${GREEN} apple-reminders${NC} Apple 提醒事项" + echo -e " ${GREEN} obsidian${NC} Obsidian 笔记操作" + echo -e " ${GREEN} notion${NC} Notion 页面和数据库" + echo -e " ${GREEN} things-mac${NC} Things 3 任务管理 (macOS)" + echo -e " ${GREEN} trello${NC} Trello 看板操作" + echo -e " ${GREEN} bear-notes${NC} Bear 笔记" + echo "" + echo -e " ${WHITE}${BOLD} AI & 创作${NC}" + echo -e " ${GREEN} openai-image-gen${NC} AI 图片生成" + echo -e " ${GREEN} openai-whisper${NC} 语音转文字(本地)" + echo -e " ${GREEN} openai-whisper-api${NC} 语音转文字(API)" + echo -e " ${GREEN} gemini${NC} Gemini 一键问答" + echo -e " ${GREEN} sag${NC} ElevenLabs 文字转语音" + echo -e " ${GREEN} sherpa-onnx-tts${NC} 本地离线文字转语音" + echo -e " ${GREEN} nano-banana-pro${NC} Gemini 3 图片生成" + echo "" + echo -e " ${WHITE}${BOLD} 通讯 & 社交${NC}" + echo -e " ${GREEN} himalaya${NC} 邮件收发(IMAP/SMTP)" + echo -e " ${GREEN} discord${NC} Discord 消息操作" + echo -e " ${GREEN} slack${NC} Slack 消息操作" + echo -e " ${GREEN} wacli${NC} WhatsApp 消息和历史" + echo -e " ${GREEN} imsg${NC} iMessage/SMS" + echo -e " ${GREEN} xurl${NC} X (Twitter) API" + echo "" + echo -e " ${WHITE}${BOLD} 系统 & 工具${NC}" + echo -e " ${GREEN} weather${NC} 天气查询" + echo -e " ${GREEN} peekaboo${NC} macOS 屏幕截图和 UI 自动化" + echo -e " ${GREEN} tmux${NC} 远程终端管理" + echo -e " ${GREEN} healthcheck${NC} 系统安全检查" + echo -e " ${GREEN} 1password${NC} 1Password 密码管理" + echo -e " ${GREEN} video-frames${NC} 视频截帧 (ffmpeg)" + echo -e " ${GREEN} session-logs${NC} 会话日志搜索分析" + echo -e " ${GREEN} mcporter${NC} MCP 服务管理" + echo "" + echo -e " ${WHITE}${BOLD} 智能家居 & IoT${NC}" + echo -e " ${GREEN} openhue${NC} Philips Hue 灯光控制" + echo -e " ${GREEN} sonoscli${NC} Sonos 音箱控制" + echo -e " ${GREEN} eightctl${NC} Eight Sleep 智能床垫" + echo -e " ${GREEN} camsnap${NC} 摄像头截图/录像" + echo "" + echo -e " ${DIM} 提示: 这些技能已全部预装在 U 盘中,无需联网下载${NC}" + echo -e " ${DIM} 使用: 在 OpenClaw 中直接说 \"帮我查天气\" 或 \"帮我发邮件\" 即可${NC}" + echo -e " ${DIM} 更多: 运行 openclaw 后输入 /skills 查看详情${NC}" +} + +# [14] 中国用户指南 +do_china_guide() { + echo "" + if [ -f "$UCLAW_DIR/中国用户指南.txt" ]; then + cat "$UCLAW_DIR/中国用户指南.txt" + else + echo " 指南文件不存在" + fi +} + +# [15] 使用说明 +do_readme() { + echo "" + if [ -f "$UCLAW_DIR/使用说明.txt" ]; then + cat "$UCLAW_DIR/使用说明.txt" + else + echo " 使用说明文件不存在" + fi +} + +# [16] 系统信息 +do_sysinfo() { + echo "" + echo -e " ${CYAN}${BOLD}━━━ 系统信息 ━━━${NC}" + echo "" + echo " 操作系统: $(sw_vers -productName 2>/dev/null || uname -s) $(sw_vers -productVersion 2>/dev/null || uname -r)" + echo " CPU架构: $(uname -m)" + echo " 内存: $(sysctl -n hw.memsize 2>/dev/null | awk '{printf "%.1f GB", $1/1024/1024/1024}' || echo '未知')" + echo " Node.js: $($NODE_BIN --version 2>/dev/null || echo '未找到')" + echo " npm: $($NODE_BIN $NPM_BIN --version 2>/dev/null || echo '未找到')" + echo "" + echo " U-Claw 路径: $UCLAW_DIR" + echo " U-Claw 大小: $(du -sh "$UCLAW_DIR" 2>/dev/null | cut -f1)" + echo "" + if [ -d "$HOME/.uclaw" ]; then + echo " 已安装路径: $HOME/.uclaw" + echo " 已安装大小: $(du -sh "$HOME/.uclaw" 2>/dev/null | cut -f1)" + else + echo " 电脑安装: 未安装" + fi + echo "" + if [ -d "$HOME/.openclaw" ]; then + echo " OpenClaw 状态: $HOME/.openclaw" + echo " 状态大小: $(du -sh "$HOME/.openclaw" 2>/dev/null | cut -f1)" + fi + echo "" + echo " 磁盘空间: $(df -h "$UCLAW_DIR" 2>/dev/null | tail -1 | awk '{print $4 " 可用 / " $2 " 总计"}')" +} + +# 主循环 +while true; do + show_menu + read -p " 请选择 [0-16]: " CHOICE + echo "" + + case $CHOICE in + 1) do_install ;; + 2) do_npm_install ;; + 3) do_build ;; + 4) do_run ;; + 5) do_china_models ;; + 6) do_china_channels ;; + 7) do_mirror ;; + 8) do_doctor ;; + 9) do_backup ;; + 10) do_restore ;; + 11) do_reset ;; + 12) do_cleanup ;; + 13) do_skills_browser ;; + 14) do_china_guide ;; + 15) do_readme ;; + 16) do_sysinfo ;; + 0) + echo -e " ${CYAN}再见! 🦞${NC}" + echo "" + exit 0 + ;; + *) + echo -e " ${RED}无效选择,请输入 0-14${NC}" + ;; + esac + + echo "" + read -p " 按回车键返回主菜单..." +done diff --git a/uclaw-scripts/安装到电脑.bat b/uclaw-scripts/安装到电脑.bat new file mode 100644 index 0000000..3608f42 --- /dev/null +++ b/uclaw-scripts/安装到电脑.bat @@ -0,0 +1,88 @@ +@echo off +chcp 65001 >nul 2>&1 +title U-Claw - 安装 OpenClaw 到电脑 + +echo. +echo ╔══════════════════════════════════════╗ +echo ║ U-Claw 安装到电脑 ║ +echo ║ OpenClaw 永久安装 (Windows) ║ +echo ╚══════════════════════════════════════╝ +echo. + +set "UCLAW_DIR=%~dp0" +set "INSTALL_DIR=%USERPROFILE%\.uclaw" + +echo 安装位置: %INSTALL_DIR% +echo 安装内容: Node.js + OpenClaw + 所有依赖 +echo. +set /p CONFIRM=" 是否继续安装? (y/n) " +if /i not "%CONFIRM%"=="y" ( + echo 已取消安装 + pause + exit /b 0 +) +echo. + +echo [1/4] 创建安装目录... +if not exist "%INSTALL_DIR%" mkdir "%INSTALL_DIR%" + +echo [2/4] 安装 Node.js 运行环境... +if exist "%INSTALL_DIR%\node" rmdir /s /q "%INSTALL_DIR%\node" +xcopy "%UCLAW_DIR%runtime\node-win-x64" "%INSTALL_DIR%\node\" /e /i /q >nul +for /f "tokens=*" %%v in ('"%INSTALL_DIR%\node\node.exe" --version') do echo Node.js %%v 已安装 + +echo [3/4] 安装 OpenClaw... +if exist "%INSTALL_DIR%\openclaw" ( + if exist "%INSTALL_DIR%\openclaw\.env" copy "%INSTALL_DIR%\openclaw\.env" "%TEMP%\.uclaw-env-backup" >nul 2>&1 + rmdir /s /q "%INSTALL_DIR%\openclaw" +) +xcopy "%UCLAW_DIR%openclaw" "%INSTALL_DIR%\openclaw\" /e /i /q >nul +if exist "%TEMP%\.uclaw-env-backup" ( + copy "%TEMP%\.uclaw-env-backup" "%INSTALL_DIR%\openclaw\.env" >nul 2>&1 + del "%TEMP%\.uclaw-env-backup" >nul 2>&1 +) + +if exist "%UCLAW_DIR%memory" xcopy "%UCLAW_DIR%memory" "%INSTALL_DIR%\memory\" /e /i /q >nul 2>&1 +if exist "%UCLAW_DIR%persona" xcopy "%UCLAW_DIR%persona" "%INSTALL_DIR%\persona\" /e /i /q >nul 2>&1 + +echo [4/4] 配置环境变量... + +( +echo @echo off +echo set "UCLAW_HOME=%%USERPROFILE%%\.uclaw" +echo "%%UCLAW_HOME%%\node\node.exe" "%%UCLAW_HOME%%\openclaw\openclaw.mjs" %%* +) > "%INSTALL_DIR%\uclaw.cmd" + +( +echo @echo off +echo set "UCLAW_HOME=%%USERPROFILE%%\.uclaw" +echo "%%UCLAW_HOME%%\node\node.exe" "%%UCLAW_HOME%%\openclaw\openclaw.mjs" %%* +) > "%INSTALL_DIR%\openclaw.cmd" + +echo. +echo 正在添加到系统 PATH... +for /f "tokens=2*" %%a in ('reg query "HKCU\Environment" /v PATH 2^>nul') do set "CURRENT_PATH=%%b" +echo %CURRENT_PATH% | findstr /i ".uclaw" >nul 2>&1 +if errorlevel 1 ( + setx PATH "%INSTALL_DIR%;%INSTALL_DIR%\node;%CURRENT_PATH%" >nul 2>&1 + echo 已添加到用户 PATH +) else ( + echo PATH 已配置,跳过 +) + +echo. +echo ╔══════════════════════════════════════╗ +echo ║ 安装完成! ║ +echo ╚══════════════════════════════════════╝ +echo. +echo 安装位置: %INSTALL_DIR% +echo. +echo 使用方法: +echo 1. 打开新的命令提示符或 PowerShell +echo 2. 运行: openclaw +echo 或: uclaw +echo. +echo 首次使用请运行: +echo openclaw onboard --install-daemon +echo. +pause diff --git a/uclaw-scripts/安装到电脑.command b/uclaw-scripts/安装到电脑.command new file mode 100644 index 0000000..1a203f9 --- /dev/null +++ b/uclaw-scripts/安装到电脑.command @@ -0,0 +1,117 @@ +#!/bin/bash +# ============================================================ +# U-Claw 虾盘 - macOS 安装到电脑 +# 将 OpenClaw 及运行环境永久安装到电脑上 +# ============================================================ + +UCLAW_DIR="$(cd "$(dirname "$0")" && pwd)" +INSTALL_DIR="$HOME/.uclaw" + +GREEN='\033[0;32m' +CYAN='\033[0;36m' +RED='\033[0;31m' +YELLOW='\033[1;33m' +NC='\033[0m' + +clear +echo "" +echo -e "${CYAN}" +echo " ╔══════════════════════════════════════╗" +echo " ║ U-Claw 安装到电脑 ║" +echo " ║ OpenClaw 永久安装 ║" +echo " ╚══════════════════════════════════════╝" +echo -e "${NC}" +echo "" +echo " 安装位置: $INSTALL_DIR" +echo " 安装内容: Node.js + OpenClaw + 所有依赖" +echo "" +read -p " 是否继续安装? (y/n) " -n 1 -r +echo "" +echo "" + +if [[ ! $REPLY =~ ^[Yy]$ ]]; then + echo " 已取消安装" + exit 0 +fi + +ARCH=$(uname -m) +if [ "$ARCH" = "arm64" ]; then + NODE_SRC="$UCLAW_DIR/runtime/node-mac-arm64" + echo -e " ${GREEN}Apple Silicon (M系列)${NC}" +else + NODE_SRC="$UCLAW_DIR/runtime/node-mac-x64" + echo -e " ${GREEN}Intel Mac${NC}" +fi + +echo -e " ${CYAN}[1/4] 创建安装目录...${NC}" +mkdir -p "$INSTALL_DIR" + +echo -e " ${CYAN}[2/4] 安装 Node.js 运行环境...${NC}" +rm -rf "$INSTALL_DIR/node" +cp -R "$NODE_SRC" "$INSTALL_DIR/node" +echo -e " ${GREEN}Node.js $($INSTALL_DIR/node/bin/node --version) 已安装${NC}" + +echo -e " ${CYAN}[3/4] 安装 OpenClaw...${NC}" +if [ -d "$INSTALL_DIR/openclaw" ] && [ -f "$INSTALL_DIR/openclaw/.env" ]; then + cp "$INSTALL_DIR/openclaw/.env" "/tmp/.uclaw-env-backup" 2>/dev/null || true +fi +rm -rf "$INSTALL_DIR/openclaw" +cp -R "$UCLAW_DIR/openclaw" "$INSTALL_DIR/openclaw" +if [ -f "/tmp/.uclaw-env-backup" ]; then + cp "/tmp/.uclaw-env-backup" "$INSTALL_DIR/openclaw/.env" + rm -f "/tmp/.uclaw-env-backup" +fi + +# 复制用户数据 +[ -d "$UCLAW_DIR/memory" ] && [ "$(ls -A "$UCLAW_DIR/memory" 2>/dev/null)" ] && cp -R "$UCLAW_DIR/memory" "$INSTALL_DIR/" +[ -d "$UCLAW_DIR/persona" ] && [ "$(ls -A "$UCLAW_DIR/persona" 2>/dev/null)" ] && cp -R "$UCLAW_DIR/persona" "$INSTALL_DIR/" + +echo -e " ${CYAN}[4/4] 配置环境变量...${NC}" + +SHELL_RC="$HOME/.zshrc" +[ ! -f "$SHELL_RC" ] && SHELL_RC="$HOME/.bashrc" +[ ! -f "$SHELL_RC" ] && SHELL_RC="$HOME/.bash_profile" + +if ! grep -q ".uclaw/node/bin" "$SHELL_RC" 2>/dev/null; then + echo "" >> "$SHELL_RC" + echo "# U-Claw OpenClaw" >> "$SHELL_RC" + echo 'export PATH="$HOME/.uclaw/node/bin:$PATH"' >> "$SHELL_RC" + echo "alias openclaw='\$HOME/.uclaw/node/bin/node \$HOME/.uclaw/openclaw/openclaw.mjs'" >> "$SHELL_RC" + echo -e " ${GREEN}已添加到 $SHELL_RC${NC}" +else + echo -e " ${YELLOW}PATH 已配置,跳过${NC}" +fi + +# 创建全局命令 +cat > "$INSTALL_DIR/uclaw" << 'SCRIPT' +#!/bin/bash +UCLAW_HOME="$HOME/.uclaw" +exec "$UCLAW_HOME/node/bin/node" "$UCLAW_HOME/openclaw/openclaw.mjs" "$@" +SCRIPT +chmod +x "$INSTALL_DIR/uclaw" + +if [ -d "/usr/local/bin" ] && [ -w "/usr/local/bin" ]; then + ln -sf "$INSTALL_DIR/uclaw" /usr/local/bin/uclaw 2>/dev/null || true + ln -sf "$INSTALL_DIR/uclaw" /usr/local/bin/openclaw 2>/dev/null || true + echo -e " ${GREEN}已创建全局命令: uclaw / openclaw${NC}" +else + echo -e " ${YELLOW}提示: 运行 sudo ln -sf $INSTALL_DIR/uclaw /usr/local/bin/uclaw${NC}" +fi + +echo "" +echo -e " ${GREEN}╔══════════════════════════════════════╗${NC}" +echo -e " ${GREEN}║ 安装完成! ║${NC}" +echo -e " ${GREEN}╚══════════════════════════════════════╝${NC}" +echo "" +echo " 安装位置: $INSTALL_DIR" +echo " Node.js: $($INSTALL_DIR/node/bin/node --version)" +echo "" +echo " 使用方法:" +echo " 1. 打开新的终端窗口" +echo " 2. 运行: openclaw" +echo " 或: uclaw" +echo "" +echo " 首次使用请运行:" +echo " openclaw onboard --install-daemon" +echo "" +read -p " 按回车键关闭..." diff --git a/uclaw-scripts/运行.bat b/uclaw-scripts/运行.bat new file mode 100644 index 0000000..df7325f --- /dev/null +++ b/uclaw-scripts/运行.bat @@ -0,0 +1,57 @@ +@echo off +chcp 65001 >nul 2>&1 +title U-Claw 虾盘 - OpenClaw 一键启动 + +echo. +echo ╔══════════════════════════════════════╗ +echo ║ U-Claw 虾盘 v1.0 ║ +echo ║ OpenClaw 一键启动 (Windows) ║ +echo ╚══════════════════════════════════════╝ +echo. + +set "UCLAW_DIR=%~dp0" +set "OPENCLAW_DIR=%UCLAW_DIR%openclaw" +set "NODE_DIR=%UCLAW_DIR%runtime\node-win-x64" +set "NODE_BIN=%NODE_DIR%\node.exe" +set "NPM_BIN=%NODE_DIR%\npm.cmd" + +if not exist "%NODE_BIN%" ( + echo [错误] 找不到 Node.js 运行环境 + echo 请确保 runtime\node-win-x64 目录完整 + echo. + pause + exit /b 1 +) + +for /f "tokens=*" %%v in ('"%NODE_BIN%" --version') do set NODE_VER=%%v +echo Node.js 版本: %NODE_VER% +echo. + +set "PATH=%NODE_DIR%;%NODE_DIR%\node_modules\.bin;%PATH%" + +if not exist "%OPENCLAW_DIR%\node_modules" ( + echo 首次运行,正在安装依赖... + echo (使用淘宝镜像,请稍等) + echo. + cd /d "%OPENCLAW_DIR%" + "%NODE_BIN%" "%NPM_BIN%" install --registry=https://registry.npmmirror.com + echo. + echo 依赖安装完成! + echo. +) + +if not exist "%OPENCLAW_DIR%\dist" ( + echo 首次运行,正在构建... + cd /d "%OPENCLAW_DIR%" + "%NODE_BIN%" "%NPM_BIN%" run build 2>nul + echo. +) + +echo 正在启动 OpenClaw... +echo. +cd /d "%OPENCLAW_DIR%" +"%NODE_BIN%" openclaw.mjs onboard --install-daemon 2>nul || "%NODE_BIN%" openclaw.mjs 2>nul || "%NODE_BIN%" "%NPM_BIN%" start + +echo. +echo OpenClaw 已退出 +pause diff --git a/uclaw-scripts/运行.command b/uclaw-scripts/运行.command new file mode 100644 index 0000000..108f41b --- /dev/null +++ b/uclaw-scripts/运行.command @@ -0,0 +1,82 @@ +#!/bin/bash +# ============================================================ +# U-Claw 虾盘 - macOS 一键启动 +# 双击此文件即可启动 OpenClaw +# ============================================================ + +UCLAW_DIR="$(cd "$(dirname "$0")" && pwd)" +OPENCLAW_DIR="$UCLAW_DIR/openclaw" + +GREEN='\033[0;32m' +CYAN='\033[0;36m' +RED='\033[0;31m' +YELLOW='\033[1;33m' +NC='\033[0m' + +clear +echo "" +echo -e "${CYAN}" +echo " ╔══════════════════════════════════════╗" +echo " ║ U-Claw 虾盘 v1.0 ║" +echo " ║ OpenClaw 一键启动 ║" +echo " ╚══════════════════════════════════════╝" +echo -e "${NC}" + +# 检测 CPU 架构 +ARCH=$(uname -m) +if [ "$ARCH" = "arm64" ]; then + NODE_DIR="$UCLAW_DIR/runtime/node-mac-arm64" + echo -e " ${GREEN}检测到 Apple Silicon (M系列芯片)${NC}" +else + NODE_DIR="$UCLAW_DIR/runtime/node-mac-x64" + echo -e " ${GREEN}检测到 Intel Mac${NC}" +fi + +NODE_BIN="$NODE_DIR/bin/node" +NPM_BIN="$NODE_DIR/bin/npm" + +if [ ! -f "$NODE_BIN" ]; then + echo -e " ${RED}错误: 找不到 Node.js 运行环境${NC}" + echo " 请确保 runtime/ 目录完整" + echo "" + read -p " 按回车键退出..." + exit 1 +fi + +NODE_VER=$("$NODE_BIN" --version) +echo -e " Node.js 版本: ${GREEN}${NODE_VER}${NC}" +echo "" + +export PATH="$NODE_DIR/bin:$PATH" + +# 检查依赖 +if [ ! -d "$OPENCLAW_DIR/node_modules" ]; then + echo -e " ${YELLOW}首次运行,正在安装依赖...${NC}" + echo " (使用淘宝镜像,请稍等)" + echo "" + cd "$OPENCLAW_DIR" + "$NODE_BIN" "$NPM_BIN" install --registry=https://registry.npmmirror.com 2>&1 + echo "" + echo -e " ${GREEN}依赖安装完成!${NC}" + echo "" +fi + +# 检查构建 +if [ ! -d "$OPENCLAW_DIR/dist" ]; then + echo -e " ${YELLOW}首次运行,正在构建...${NC}" + cd "$OPENCLAW_DIR" + "$NODE_BIN" "$NPM_BIN" run build 2>&1 || true + echo "" +fi + +# 启动 OpenClaw +echo -e " ${CYAN}正在启动 OpenClaw...${NC}" +echo "" +cd "$OPENCLAW_DIR" +"$NODE_BIN" openclaw.mjs onboard --install-daemon 2>&1 || \ +"$NODE_BIN" openclaw.mjs 2>&1 || \ +"$NODE_BIN" "$NPM_BIN" start 2>&1 + +echo "" +echo -e " ${YELLOW}OpenClaw 已退出${NC}" +read -p " 按回车键关闭窗口..."