{"skill":{"slug":"github-memory-sync","displayName":"GitHub Memory Sync","summary":"将 OpenClaw 的完整工作空间配置（SOUL.md, IDENTITY.md, USER.md, MEMORY.md, TOOLS.md, memory/*等）同步到 GitHub 进行备份和版本控制，支持跨服务器迁移。Use when user mentions GitHub backup, sync m...","description":"---\nname: github-memory-sync\ndescription: 将 OpenClaw 的完整工作空间配置（SOUL.md, IDENTITY.md, USER.md, MEMORY.md, TOOLS.md, memory/*等）同步到 GitHub 进行备份和版本控制，支持跨服务器迁移。Use when user mentions GitHub backup, sync memory, migrate server, 备份配置，同步到 GitHub, or wants to backup/restore OpenClaw workspace.\n---\n\n# GitHub Memory Sync 技能\n\n📝 将 OpenClaw 的 **完整工作空间配置** 同步到 GitHub 仓库进行备份和版本控制，支持跨服务器迁移。\n\n## 同步范围\n\n### 核心记忆文件（必须同步）\n\n| 文件 | 路径 | 说明 | 敏感度 |\n|------|------|------|--------|\n| **SOUL.md** | `/` | AI 人格定义 | 🔒 高 |\n| **IDENTITY.md** | `/` | AI 身份定义（名字、emoji 等） | 🔒 高 |\n| **USER.md** | `/` | 用户信息 | 🔒 高 |\n| **MEMORY.md** | `/` | 长期记忆 | 🔒 高 |\n| **TOOLS.md** | `/` | 工具配置（SSH、摄像头等） | 🔒 高 |\n| **HEARTBEAT.md** | `/` | 心跳任务配置 | 🟡 中 |\n| **memory/*.md** | `memory/` | 日常记忆文件 | 🔒 高 |\n\n### 可选配置文件\n\n| 文件 | 路径 | 说明 | 建议 |\n|------|------|------|------|\n| **AGENTS.md** | `/` | 工作空间指南 | ✅ 推荐 |\n| **BOOTSTRAP.md** | `/` | 初始化脚本（如有） | ⚪ 可选 |\n| **skills/** | `skills/` | 自定义技能 | ✅ 推荐 |\n| **avatars/** | `avatars/` | 头像图片 | ⚪ 可选 |\n\n### 排除文件（不同步）\n\n- `.git/` - Git 元数据\n- `node_modules/` - 依赖包\n- `*.log` - 日志文件\n- `*.tmp`, `*.bak` - 临时文件\n- `sessions/` - 会话数据（可能很大）\n\n## 功能特性\n\n1. **📤 完整备份** - 将所有记忆和配置文件推送到 GitHub\n2. **📥 一键恢复** - 从 GitHub 拉取配置到新服务器\n3. **📊 查看状态** - 检查本地和远程的差异\n4. **📋 列出文件** - 显示所有同步的文件\n5. **🔧 初始化仓库** - 首次设置 GitHub 仓库连接\n6. **🔄 增量同步** - 只同步变化的文件\n7. **📦 迁移模式** - 支持完整工作空间迁移到新服务器\n\n## 配置要求\n\n### 必需配置\n\n**GitHub Token:**\n- 需要一个 Personal Access Token\n- 权限要求：`repo`（仓库读写权限）\n- 生成地址：https://github.com/settings/tokens/new\n\n**GitHub 仓库:**\n- 格式：`username/repository-name`\n- 示例：`myusername/openclaw-memory-backup`\n- 建议设为 **Private**（私有仓库），因为 memory 可能包含敏感信息\n\n### 配置方式\n\n#### 方案 A：使用环境变量（推荐用于测试）\n\n```bash\nexport GITHUBTOKEN=\"ghp_xxxxxxxxxxxxxxxxx\"\nexport GITHUB_REPO=\"yourusername/your-repo\"\n```\n\n#### 方案 B：配置文件（推荐用于生产）\n\n在 `~/.openclaw/openclaw.json` 中添加：\n\n```json\n{\n  \"skills\": {\n    \"entries\": {\n      \"github-memory-sync\": {\n        \"enabled\": true,\n        \"apiKey\": \"ghp_xxxxxxxxxxxxxxxxx\",\n        \"env\": {\n          \"GITHUBTOKEN\": \"ghp_xxxxxxxxxxxxxxxxx\",\n          \"GITHUB_REPO\": \"username/memory-backup\",\n          \"GITHUB_BRANCH\": \"main\",\n          \"WORKSPACE_DIR\": \"/root/.openclaw/workspace\"\n        }\n      }\n    }\n  }\n}\n```\n\n## 使用示例\n\n### 首次初始化\n\n```\n用户：\"初始化 GitHub memory 仓库\"\nAI: [获取 Token 和仓库信息后执行初始化]\n```\n\n### 推送更新（备份）\n\n```\n用户：\"同步到 GitHub\" / \"备份配置\"\nAI: [执行推送操作，同步所有记忆和配置文件]\n```\n\n### 拉取更新（恢复）\n\n```\n用户：\"从 GitHub 拉取配置\" / \"恢复备份\"\nAI: [执行拉取操作，恢复所有文件]\n```\n\n### 查看状态\n\n```\n用户：\"检查同步状态\"\nAI: [显示本地和远程的差异]\n```\n\n### 🚀 服务器迁移（完整流程）\n\n**在原服务器上：**\n```\n用户：\"备份所有配置到 GitHub\"\nAI: [执行完整推送，包括 SOUL.md, IDENTITY.md, USER.md, MEMORY.md, TOOLS.md, memory/* 等]\n```\n\n**在新服务器上：**\n```\n用户：\"从 GitHub 恢复配置\"\nAI: [执行以下步骤]\n1. 克隆 GitHub 仓库到临时目录\n2. 复制所有记忆和配置文件到 workspace\n3. 保留新服务器的通道配置（不覆盖 openclaw.json 中的通道凭证）\n4. 验证文件完整性\n```\n\n### 部分恢复\n\n```\n用户：\"只恢复 MEMORY.md\"\nAI: [仅拉取指定文件]\n\n用户：\"恢复 memory 目录\"\nAI: [仅拉取 memory/*.md 文件]\n```\n\n## 安全提醒\n\n⚠️ **重要安全注意事项：**\n\n1. **Token 保护**\n   - ❌ 不要把 Token 发送到任何公开渠道\n   - ❌ 不要在代码中硬编码 Token\n   - ✅ 使用环境变量或配置文件\n   - ✅ 定期轮换 Token\n\n2. **仓库隐私**\n   - 🔒 建议将 GitHub 仓库设为 **Private**（私有）\n   - 👁 memory 可能包含敏感信息\n   - 📝 审查 memory 内容再上传\n\n3. **权限最小化**\n   - 只给 Token 必要的权限（`repo`）\n   - 避免使用具有广泛权限的 Token\n   - 设置 Token 过期时间（不要永不过期）\n\n## 激活技能\n\n当用户提到以下关键词时激活此技能：\n- \"GitHub memory\"\n- \"同步 memory\"\n- \"备份 memory\"\n- \"GitHub 备份\"\n- \"memory 同步\"\n- \"github-memory-sync\"\n\n## 配置流程\n\n### 1. 获取配置信息\n- 向用户询问 GitHub Token\n- 向用户询问 GitHub 仓库地址（或帮其创建）\n\n### 2. 保存配置\n- 将 Token 和仓库信息保存到配置文件或环境变量\n- 提醒用户注意安全事项\n\n### 3. 执行操作\n- 根据用户请求执行 init/push/pull/status/migrate 操作\n- 显示操作结果\n\n### 4. 验证同步\n- 推送后验证远程仓库文件完整性\n- 拉取后验证本地文件完整性\n\n## 注意事项\n\n- 首次使用必须先执行 `init` 初始化\n- 推送前建议先拉取，避免冲突\n- 定期检查 Token 是否过期\n- 建议启用 GitHub 的两因素认证\n- **通道凭证不同步** - openclaw.json 中的 tokens/secrets 不应上传到 GitHub\n- **迁移模式** - 使用 `migrate` 命令可安全恢复到新服务器\n\n## 相关文件\n\n- `scripts/sync_to_github.py` - 同步脚本\n- `references/migration-guide.md` - 完整服务器迁移指南\n- `references/backup-policy.md` - 备份策略和安全建议\n\n## 快速参考\n\n### 常用命令\n\n```bash\n# 初始化（首次使用）\npython scripts/sync_to_github.py init\n\n# 备份\npython scripts/sync_to_github.py push\n\n# 恢复\npython scripts/sync_to_github.py pull\n\n# 查看状态\npython scripts/sync_to_github.py status\n\n# 迁移到新服务器\nBACKUP_DIR=/tmp/openclaw-restore python scripts/sync_to_github.py migrate\n```\n\n### 对话触发词\n\n- \"备份到 GitHub\"\n- \"同步配置\"\n- \"恢复备份\"\n- \"迁移到新服务器\"\n- \"检查同步状态\"\n- \"github-memory-sync\"\n","topics":["GitHub","Sync","Backup","备份","服务器"],"tags":{"latest":"1.1.0"},"stats":{"comments":0,"downloads":1066,"installsAllTime":40,"installsCurrent":3,"stars":0,"versions":2},"createdAt":1772170113284,"updatedAt":1779077468685},"latestVersion":{"version":"1.1.0","createdAt":1773010175693,"changelog":"Version 1.1.0: Full workspace sync support","license":"MIT-0"},"metadata":null,"owner":{"handle":"davinwang","userId":"s17cpqa0wqc3x4vxg9aq3kbev5885dyy","displayName":"Davin Wang","image":"https://avatars.githubusercontent.com/u/5567847?v=4"},"moderation":{"isSuspicious":false,"isMalwareBlocked":false,"verdict":"clean","reasonCodes":["review.llm_review"],"summary":"Review: review.llm_review","engineVersion":"v2.4.24","updatedAt":1779963450430}}