Workspace Git Backup

v1.0.0

Set up automatic scheduled backups to GitHub or GitLab. Use when users want to backup their OpenClaw workspace or other directories. Supports GitHub CLI for...

1· 305· 1 versions· 0 current· 0 all-time· Updated 2h ago· MIT-0

GitHub Backup

Automatic scheduled backup of any directory to a remote Git repository.

Setup Flow

When user asks for backup setup, follow these steps:

1. Ask for backup directory

Default: ~/.openclaw/workspace

2. Configure remote repository

If GitHub CLI (gh) is available and authenticated:

Ask user:

  • "新建 GitHub 仓库 还是 同步到已有仓库?"

New repo:

gh repo create <name> --private --source=<backup-path> --remote=origin

Existing repo:

# List repos
gh repo list --limit 50

# Add remote (user provides repo name or URL)
git -C <backup-path> remote add origin <url>

If no GitHub CLI:

  • Ask user for repository URL directly

3. Create config file

cat > ~/.openclaw/workspace/.backup-config.json << 'EOF'
{
  "backupPath": "<backup-path>",
  "gitRemote": "<repo-url>",
  "schedule": "0 12,0 * * *",
  "updateTimestamp": true
}
EOF

4. Install backup script

mkdir -p ~/.openclaw/scripts
cp <skill-path>/scripts/backup.sh ~/.openclaw/scripts/github-backup.sh
chmod +x ~/.openclaw/scripts/github-backup.sh

5. Install scheduled task

macOS (launchd):

bash <skill-path>/scripts/install-launchd.sh

Linux (cron):

bash <skill-path>/scripts/install-cron.sh

6. Optional: First backup

bash ~/.openclaw/scripts/github-backup.sh

Commands

After setup, user can:

CommandAction
bash ~/.openclaw/scripts/github-backup.shManual backup
bash <skill-path>/scripts/manage.sh statusCheck status
bash <skill-path>/scripts/manage.sh logsView logs
bash <skill-path>/scripts/manage.sh uninstallRemove scheduled task

Configuration

Config: ~/.openclaw/workspace/.backup-config.json

FieldDefaultDescription
backupPath~/.openclaw/workspaceDirectory to backup
gitRemoterequiredRepository URL
schedule0 12,0 * * *Cron: 12:00 & 00:00 daily
updateTimestamptrueUpdate README timestamp

Backup Script Logic

Check for git changes
  └── No changes → exit
  └── Has changes → continue
       ↓
Update README timestamp (optional)
       ↓
git add . && git commit -m "chore: 自动备份"
       ↓
git push

Files Created

FileLocation
Backup script~/.openclaw/scripts/github-backup.sh
Config~/.openclaw/workspace/.backup-config.json
Log~/.openclaw/logs/github-backup.log
launchd plist~/Library/LaunchAgents/com.openclaw.github-backup.plist
cron entryVia crontab

Example Dialog

User: 帮我配置 workspace 自动备份

Agent:
1. 检测 gh CLI → 已登录
2. "新建仓库还是用已有的?" → "新建"
3. "仓库名称?" → "openclaw-backup"
4. "公开还是私有?" → "私有"
5. 执行: gh repo create openclaw-backup --private --source=~/.openclaw/workspace --remote=origin
6. 创建配置文件
7. 安装定时任务
8. "安装完成,每天 12:00 和 00:00 自动备份"

Version tags

latestvk972yfjf5wc7vf7pc4jg5qv8ah82dcwt