Skip to content

Chelase/openclaw-migrator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🦀 OpenClaw Migrator - 龙虾号迁移工具

版本: 1.0.0
状态: 规划中
开源协议: MIT
GitHub: github.com/openclaw-community/openclaw-migrator (拟)


📖 项目概述

OpenClaw Migrator 是一个完全迁移 OpenClaw 实例的工具,帮助用户在不同机器、不同环境或重置系统时,保留所有配置、记忆、技能和身份。

🎯 核心目标

  1. 完全复制 - 1:1 复制现有 OpenClaw 实例
  2. 保留所有配置 - API Key、通道配置、技能配置、记忆、学习成果
  3. 选择性产物 - 用户可选择保留哪些输出文件
  4. 身份延续 - 新实例继承原实例的身份和记忆
  5. 一键操作 - EXE 可执行文件,无需 Python/Node 环境

🔧 核心功能

功能 1: 备份与复制 (Backup & Clone)

作用: 创建当前 OpenClaw 实例的完整备份,并可恢复到新位置

备份内容:

类别 内容 默认 可选
核心配置 openclaw.json, openclaw-node.json, memory-path.json -
身份配置 identity/, devices/, credentials/ -
技能配置 skills/entries/, 自定义技能 -
记忆系统 workspace/MEMORY.md, workspace/memory/, self-improving/ -
工作区文件 workspace/*.md, workspace/agents/ -
输出产物 shared/outputs/, agents/*/outputs/ ⚠️ 用户选择
日志文件 shared/outputs/logs/ ⚠️ 用户选择
备份文件 备份/ 目录 可选

输出格式:

  • 压缩备份包 (.zip.tar.gz)
  • 可选加密 (AES-256)
  • 包含校验和 (SHA-256)

功能 2: 恢复与迁移 (Restore & Migrate)

作用: 将备份包恢复到新的 OpenClaw 实例

恢复流程:

  1. 检查目标位置是否有现有实例
  2. 如有实例,询问是否覆盖或合并
  3. 解压备份包到目标位置
  4. 更新路径配置(如目标路径不同)
  5. 验证配置完整性
  6. 重启网关服务

智能路径适配:

  • 源路径:D:\openclaw\龙虾二号\
  • 目标路径:E:\new-claw\ → 自动更新所有路径引用

功能 3: 卸载与清理 (Uninstall & Cleanup)

作用: 彻底卸载当前 OpenClaw 实例

卸载级别:

级别 内容 用途
轻量卸载 仅删除 ~/.openclaw/ 配置 保留工作区,重置配置
标准卸载 配置 + 工作区 + 技能 完全移除实例
深度卸载 标准 + 输出产物 + 备份 彻底清理所有痕迹

安全检查:

  • 检查是否有未保存的记忆
  • 检查是否有进行中的会话
  • 询问是否先备份
  • 确认后才执行删除

🏗️ 技术架构

系统架构

┌─────────────────────────────────────────────────────────┐
│                   OpenClaw Migrator                      │
│                    (Single EXE)                          │
├─────────────────────────────────────────────────────────┤
│  ┌─────────────┐  ┌─────────────┐  ┌─────────────┐     │
│  │   Backup    │  │   Restore   │  │  Uninstall  │     │
│  │   Module    │  │   Module    │  │   Module    │     │
│  └──────┬──────┘  └──────┬──────┘  └──────┬──────┘     │
│         │                │                │             │
│  ┌──────┴────────────────┴────────────────┴──────┐     │
│  │           Core Engine (Rust)                  │     │
│  │  - File Operations  - Compression             │     │
│  │  - Path Mapping     - Validation              │     │
│  └───────────────────────────────────────────────┘     │
│  ┌───────────────────────────────────────────────┐     │
│  │              UI Layer (TUI/CLI)               │     │
│  │  - Interactive Prompts  - Progress Bars       │     │
│  │  - Color Output         - Confirmation        │     │
│  └───────────────────────────────────────────────┘     │
└─────────────────────────────────────────────────────────┘

技术选型

组件 技术 理由
核心语言 Rust 单文件编译、跨平台、高性能、安全
压缩库 zip / tar + flate2 标准格式,易解压
加密 aes-gcm AES-256-GCM 加密
UI ratatui (TUI) 或 dialoguer (CLI) 终端友好,无需 GUI
打包 cargo-binstall / Inno Setup 生成 EXE

📁 项目结构

openclaw-migrator/
├── Cargo.toml                 # Rust 项目配置
├── README.md                  # 项目说明
├── LICENSE                    # MIT License
├── CHANGELOG.md              # 更新日志
│
├── src/
│   ├── main.rs               # 入口文件
│   ├── cli.rs                # 命令行解析
│   ├── tui.rs                # 终端 UI
│   │
│   ├── backup/
│   │   ├── mod.rs            # 备份模块
│   │   ├── config.rs         # 配置备份
│   │   ├── memory.rs         # 记忆备份
│   │   ├── skills.rs         # 技能备份
│   │   └── outputs.rs        # 产物备份
│   │
│   ├── restore/
│   │   ├── mod.rs            # 恢复模块
│   │   ├── validate.rs       # 验证逻辑
│   │   └── adapt.rs          # 路径适配
│   │
│   ├── uninstall/
│   │   ├── mod.rs            # 卸载模块
│   │   ├── levels.rs         # 卸载级别
│   │   └── safety.rs         # 安全检查
│   │
│   └── utils/
│       ├── fs.rs             # 文件操作
│       ├── compress.rs       # 压缩工具
│       ├── encrypt.rs        # 加密工具
│       └── paths.rs          # 路径工具
│
├── scripts/
│   ├── build.ps1             # Windows 构建脚本
│   ├── build.sh              # Linux/Mac 构建脚本
│   └── release.ps1           # 发布脚本
│
├── tests/
│   ├── backup_tests.rs       # 备份测试
│   ├── restore_tests.rs      # 恢复测试
│   └── uninstall_tests.rs    # 卸载测试
│
└── docs/
    ├── user-guide.md         # 用户指南
    ├── developer-guide.md    # 开发者指南
    └── migration-examples.md # 迁移示例

🚀 使用流程

场景 1: 迁移到新电脑

【旧电脑】
1. 下载 openclaw-migrator.exe
2. 运行:openclaw-migrator.exe backup
3. 选择备份内容(默认全选)
4. 设置备份密码(可选)
5. 生成备份包:lobster-backup-20260315.zip

【传输备份包】
- 通过网盘/U盘/局域网传输

【新电脑】
1. 安装 OpenClaw: npm install -g openclaw
2. 下载 openclaw-migrator.exe
3. 运行:openclaw-migrator restore lobster-backup-20260315.zip
4. 输入密码(如果加密)
5. 选择恢复位置
6. 等待恢复完成
7. 重启网关:openclaw gateway restart

场景 2: 重置当前实例

【备份阶段】
1. openclaw-migrator.exe backup
2. 选择备份内容
3. 生成备份包

【卸载阶段】
1. openclaw-migrator.exe uninstall
2. 选择卸载级别(标准卸载)
3. 确认删除
4. 等待卸载完成

【恢复阶段】
1. openclaw-migrator.exe restore lobster-backup-20260315.zip
2. 选择恢复位置(原位置)
3. 等待恢复完成

场景 3: 多实例管理

【创建测试实例】
1. 备份生产实例
2. 恢复到测试位置:E:\openclaw-test\
3. 修改测试实例配置(使用不同端口)
4. 两个实例并行运行

【实例同步】
1. 测试完成后,备份测试实例
2. 选择性恢复关键配置到生产实例

🔐 安全考虑

敏感数据处理

数据类型 处理方式
API Keys 加密存储,备份时 AES-256 加密
设备凭证 加密存储,可选排除
用户消息 可选排除,默认不包含
会话历史 可选排除,默认不包含

备份加密

// 使用 AES-256-GCM 加密
let cipher = Aes256Gcm::new_from_slice(key_bytes)?;
let nonce = generate_secure_nonce();
let ciphertext = cipher.encrypt(&nonce, plaintext.as_ref())?;

删除安全

  • 使用安全删除(多次覆写)
  • 回收站选项(默认使用回收站)
  • 确认提示(防止误删)

📋 命令行接口

主命令

# 备份
openclaw-migrator backup [OPTIONS]

# 恢复
openclaw-migrator restore <BACKUP_FILE> [OPTIONS]

# 卸载
openclaw-migrator uninstall [OPTIONS]

# 验证备份
openclaw-migrator verify <BACKUP_FILE>

# 列出备份内容
openclaw-migrator list <BACKUP_FILE>

备份选项

openclaw-migrator backup \
  --output ./backup.zip \           # 输出文件
  --exclude-outputs \               # 排除输出产物
  --exclude-logs \                  # 排除日志
  --encrypt \                       # 启用加密
  --password "mypassword" \         # 设置密码
  --compress fast \                 # 压缩级别:fast/normal/max
  --verbose                         # 详细输出

恢复选项

openclaw-migrator restore backup.zip \
  --target D:\new-claw\ \           # 目标位置
  --merge \                         # 合并模式(非覆盖)
  --dry-run \                       # 预览不执行
  --verify \                        # 恢复后验证
  --verbose

卸载选项

openclaw-migrator uninstall \
  --level standard \                # 卸载级别:light/standard/deep
  --backup-first \                  # 卸载前先备份
  --skip-confirm \                  # 跳过确认(危险)
  --verbose

🎨 用户界面

TUI 界面示例

╔══════════════════════════════════════════════════════════╗
║           🦀 OpenClaw Migrator v1.0.0                    ║
╠══════════════════════════════════════════════════════════╣
║  请选择操作:                                            ║
║                                                          ║
║  > ● 备份当前实例                                        ║
║    ○ 恢复备份                                            ║
║    ○ 卸载实例                                            ║
║    ○ 验证备份                                            ║
║                                                          ║
║  [继续]                      [退出]                      ║
╚══════════════════════════════════════════════════════════╝

备份选择界面

╔══════════════════════════════════════════════════════════╗
║  选择备份内容 (空格选择,Enter 继续)                      ║
╠══════════════════════════════════════════════════════════╣
║  [●] 核心配置 (openclaw.json 等)                         ║
║  [●] 身份配置 (identity/, devices/)                      ║
║  [●] 技能配置 (skills/)                                  ║
║  [●] 记忆系统 (MEMORY.md, memory/, self-improving/)      ║
║  [●] 工作区文件 (workspace/*.md)                         ║
║  [○] 输出产物 (shared/outputs/)                          ║
║  [○] 日志文件 (logs/)                                    ║
║  [○] 备份文件 (备份/)                                    ║
║                                                          ║
║  预计大小:156 MB                                        ║
╚══════════════════════════════════════════════════════════╝

进度显示

╔══════════════════════════════════════════════════════════╗
║  正在备份...                                             ║
╠══════════════════════════════════════════════════════════╣
║  ████████████████████████░░░░░░░░ 65%                    ║
║                                                          ║
║  当前:workspace/memory/2026-03-15.md                    ║
║  已处理:245/378 文件                                     ║
║  已压缩:89.2 MB → 45.6 MB (49% 压缩率)                  ║
║  预计剩余:2 分钟                                         ║
║                                                          ║
║  [取消]                                                  ║
╚══════════════════════════════════════════════════════════╝

🧪 测试计划

单元测试

  • 文件备份功能
  • 文件恢复功能
  • 压缩/解压功能
  • 加密/解密功能
  • 路径映射功能
  • 验证功能

集成测试

  • 完整备份流程
  • 完整恢复流程
  • 完整卸载流程
  • 跨平台路径处理
  • 大文件处理 (>1GB)
  • 中断恢复

场景测试

  • 新电脑迁移
  • 实例重置
  • 多实例管理
  • 配置冲突处理
  • 权限不足处理

📦 发布计划

版本规划

版本 目标 预计时间
v0.1.0 核心备份/恢复功能 2026-03-20
v0.5.0 添加卸载功能 + TUI 2026-03-25
v1.0.0 正式发布 + 文档完善 2026-04-01
v1.1.0 加密功能 + 增量备份 2026-04-15
v1.2.0 多实例管理 + 云同步 2026-05-01

发布渠道

  • GitHub Releases - 主要发布渠道
  • crates.io - Rust 包(开发者)
  • winget - Windows 包管理器
  • Homebrew - macOS 包管理器
  • AUR - Arch Linux 用户仓库

📄 开源协议

MIT License

Copyright (c) 2026 OpenClaw Community

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.

👥 贡献指南

开发环境设置

# 克隆仓库
git clone https://github.com/openclaw-community/openclaw-migrator.git
cd openclaw-migrator

# 安装 Rust
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 构建项目
cargo build

# 运行测试
cargo test

# 本地运行
cargo run -- backup

提交规范

遵循 Conventional Commits

feat: 添加加密备份功能
fix: 修复路径映射 bug
docs: 更新用户指南
test: 添加备份验证测试
chore: 更新依赖版本

📞 联系方式


🙏 致谢

  • OpenClaw - 基础框架
  • 第 1 代 龙虾二号 - 重生包灵感来源
  • Rust 社区 - 优秀的工具和库

最后更新:2026-03-15 | 版本:1.0.0 规划稿

About

OpenClaw 实例迁移工具 - 完全备份和恢复 OpenClaw 配置、记忆、技能

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors