SkillHub

backupclaw

v1.0.0

Backup and restore OpenClaw configuration files. Use when the user wants to backup ~/.openclaw/ configuration (excluding workspace) to a date-stamped directory, or restore from a previous backup. Includes backup with diff-based change detection and changelog logging, and restore by date. The backup...

Sourced from ClawHub, Authored by flyingtimes

Installation

Please help me install the skill `backupclaw` from SkillHub official store. npx skills add flyingtimes/backupclaw

Backupclaw

Overview

Full backup and restore capability for OpenClaw configuration files. Backups are stored in date-stamped directories (YYYY-MM-DD format). Only performs backup when configuration has actually changed.

Core Operations

0. Backup Directory Management (NEW)

Configuration file: - Location: ~/.openclaw/backup.json - Format: json { "backup_location": "/path/to/backup/directory" }

Get backup directory: 1. Check if ~/.openclaw/backup.json exists 2. If exists, read "backup_location" field 3. If missing or file doesn't exist: - Ask user for backup directory path - Create ~/.openclaw/backup.json with the provided path - Confirm path to user

Change backup directory (changedir command): When user runs backupclaw changedir <new_path>: 1. Validate new path exists and is writable 2. Update ~/.openclaw/backup.json with new path 3. Inform user of successful change

Example changedir usage: - "backupclaw changedir ~/backups/openclaw" - "修改备份目录到 /mnt/backup/openclaw"

1. Backup Configuration

Backup directory setup: - Get backup directory using the management flow above (Section 0) - No longer store in TOOLS.md; use backup.json instead

Backup process: 1. Generate current date string in YYYY-MM-DD format 2. If backup directory has no previous backups: - Copy all files from ~/.openclaw/ to $backup_claw_dir/YYYY-MM-DD/, excluding workspace/ - Record initial backup in changelog 3. If previous backups exist: - Find the most recent backup directory (latest date) - Compare files between latest backup and current ~/.openclaw/ using diff - If no changes detected: Tell user "配置文件没有变化,不需要备份" - If changes detected: - Create new date-stamped directory - Copy all files from ~/.openclaw/ to new directory, excluding workspace/ - Update changelog with list of modified files - Report changes to user

Changelog format: - Located at $backup_claw_dir/changelog.md - Each entry includes date, time, and list of changed files - Format example: markdown ## 2026-03-12 14:30:00 - openclaw.json (modified) - extensions/feishu/skills/feishu-doc/SKILL.md (added)

Exclusion rules: - Always exclude workspace/ directory from backup - Preserve directory structure for all other files

2. Restore Configuration

Restore process: 1. Accept date parameter in YYYY-MM-DD format 2. Verify backup directory exists at $backup_claw_dir/YYYY-MM-DD/ 3. If backup not found, inform user and list available dates 4. If backup found: - Warn user about overwriting current configuration - Confirm before proceeding - Restore files from backup to ~/.openclaw/ - Exclude workspace/ from restoration - Report success and list restored files

Usage Examples

Typical user requests that trigger this skill: - "backup my openclaw config" - "restore openclaw backup from 2026-03-12" - "check if config changed" - "备份 openclaw 配置" - "恢复 2026-03-12 的备份" - "backupclaw changedir ~/backups/openclaw" - "修改备份目录" (prompts for new path)

Implementation Notes

Tools to use: - rsync or cp -r for copying files - diff for comparing file contents - find with sort and tail to find latest backup - Date command: date +%Y-%m-%d - read and write tools for managing ~/.openclaw/backup.json

Backup directory management: - Always check ~/.openclaw/backup.json first before asking user - Only prompt for backup path if backup_location is not set - Validate directory exists and is writable before saving - Use write tool to create/update backup.json

changedir command handling: - Parse command format: backupclaw changedir <path> or equivalent Chinese phrasing - Validate new directory exists and is writable (create if doesn't exist, ask first) - Update backup.json with new path - Confirm successful change to user

Backup directory structure:

$backup_claw_dir/
├── 2026-03-12/
│   ├── openclaw.json
│   ├── agents/
│   ├── extensions/
│   └── ...
├── 2026-03-13/
│   └── ...
└── changelog.md

Error handling: - Always verify backup directory exists and is writable before proceeding - Check for sufficient disk space - Validate date format for restore operation - Provide clear error messages in Chinese when appropriate