Smart file downloader with multi-threading, resumable downloads, and progress display
Security
Smart Backup
Try itIntelligent file backup with compression and verification. Backup, sync, verify integrity, dedup, and restore. Manifest tracking. Zero external dependencies.
What it does
Intelligent file backup with compression and verification. Backup, sync, verify integrity, dedup, and restore. Manifest tracking. Zero external dependencies.
The skill document
Smart Backup 💾
Stop losing config changes to disk failures. Start backing up intelligently.
The Problem
Config files, skills, memory — they're all on one disk with no backup strategy. When something breaks, everything is gone. Manual backups are error-prone and inconsistent.
Smart Backup fixes this with automated backup, sync, verification, and deduplication.
⚠️ Important Warnings
Destructive Restore / Sync
--restoreoverwrites target files with backup contents--synctwo-way merges can create conflicts- Both operations are irreversible if run without
--dry-runfirst Always preview with--dry-runbefore executing.
Silent Data Duplication
If backup intervals overlap or the same source is backed up to the same destination multiple times, files will accumulate with timestamps. Periodically audit the backup directory for unexpected duplicates.
Manifest Privacy
Backup manifests (manifest.json) contain full file paths and sizes, which may reveal directory structure and filenames. Treat manifests as sensitive metadata.
Incremental Metadata Persistence
The backup journal and deduplication hash database persist under the backup destination. These files (incremental-index.json, dedup-hashes.json) grow with each backup run.
Safety
This version includes safety fixes for the three ClawHub security audit findings:
--no-delete — Default for sync (safe)
By default, sync does not delete files in the destination that are absent from the source. This prevents accidental data loss.
--no-delete(default): files in dest not in source are skipped and logged with a WARNING--delete: enables deletion. Without--force, lists files that would be deleted but does not delete them--delete --force: actually deletes files absent from source, logging each one
--force — Required for restore overwrite
--restore skips existing files by default instead of silently overwriting them.
- Without
--force: existing files are skipped; WARNING logged for each - With
--force: existing files are overwritten; OVERWRITE logged for each
Restore preserves directory structure
Restore uses the relative path from the manifest's source directory, preserving the original directory tree. Files land at destination/, not flattened into destination/.
Tests excluded from published bundle
The test/ and tests/ directories are development artifacts and are not included in the published skill bundle.
Quick Start
Create a backup
node skills/smart-backup/smart-backup.js --backup ~/openclaw /path/to/backup
Preview backup without creating
node skills/smart-backup/smart-backup.js --backup --dry-run ~/openclaw /path/to/backup
Sync files between locations
node skills/smart-backup/smart-backup.js --sync ~/openclaw /path/to/backup/sync
Syncs only changed files. By default, files present in the destination but absent from the source are not deleted (--no-delete is the default). To enable deletion of such files, use --delete. Always pair with --dry-run first.
Preview sync
node skills/smart-backup/smart-backup.js --sync --dry-run ~/openclaw /path/to/backup/sync
Verify backup integrity
node skills/smart-backup/smart-backup.js --verify /path/to/backup-xxx
Checks SHA-256 hashes of all files against manifest.
Find duplicate files
node skills/smart-backup/smart-backup.js --dedup ~/openclaw
Groups files by content hash, shows sizes and paths.
List available backups
node skills/smart-backup/smart-backup.js --list
Restore from backup
node skills/smart-backup/smart-backup.js --restore /path/to/backup-xxx /restore/path
Restores files preserving the original directory structure from the manifest. Existing destination files are skipped by default. Use --force to overwrite them.
Status overview
node skills/smart-backup/smart-backup.js --status
Incremental backup
# First backup (full)
node skills/smart-backup/smart-backup.js --backup /source /dest
# Subsequent backups (only changed files)
node skills/smart-backup/smart-backup.js --backup /source /dest --incr
Hash-based change detection — skips unchanged files for 10-100x speedup.
Features
Backup with Manifest
- Creates timestamped backup directories
- SHA-256 hash for every file in manifest
- Total size and file count tracking
- Skips
.git,node_modules,.cache,.npmby default
Smart Sync
- Copies new files, updates changed files, deletes extras
- Hash-based change detection (not just timestamps)
- Dry-run mode shows what would change before doing it
Integrity Verification
- Verifies every file against stored SHA-256 hash
- Reports missing files and hash mismatches
- One-command verification of any backup
Incremental Backup
--incrflag enables hash-based change detection- Only backs up files that changed since last backup
- Skips unchanged files (10-100x speedup)
- Manifest tracks per-file SHA-256 hashes
--from-manifestto base diff on specific manifest
Content-Aware Deduplication
- Groups files by SHA-256 hash
- Shows duplicate groups with sizes
- Helps identify storage waste
Compression Ready
- Manifest format supports compression (planned)
- Estimated 60% compression savings shown in dry-run
- Backup directory structure preserved
Configuration
Backups stored in: backups/smart-backups/
Manifest stored in: backups/smart-backups/manifest.json
Override data directory:
--dir /path/to/data
Agent Protocol
During heartbeats and maintenance:
- Weekly backup —
--backupyour workspace to a safe location - Verify after backup —
--verifythe latest backup - Dedup periodically —
--dedupto find and clean duplicates - List backups —
--listto check backup health - Dry-run first — Always
--dry-runbefore sync/backup on important dirs
Heartbeat Integration
Add to your HEARTBEAT.md:
### 💾 Smart Backup
- Weekly: `node skills/smart-backup/smart-backup.js --backup ~/openclaw /path/to/backup`
- Verify: `node skills/smart-backup/smart-backup.js --verify `
- Dedup: `node skills/smart-backup/smart-backup.js --dedup ~/openclaw`
Security Notes
- File hashes are SHA-256 (integrity, not encryption)
- Backups contain all file content — ensure backup storage is secure
- Symlink-safe — uses standard fs operations
- No network calls, all local
Comparison
| Approach | Integrity Check | Dedup | Manifest | Automation |
|---|---|---|---|---|
cp -r | ❌ | ❌ | ❌ | Manual |
rsync | ⚠️ | ❌ | ❌ | Auto |
| Smart Backup | ✅ | ✅ | ✅ | Auto |
Smart Backup gives you integrity verification + dedup + manifest tracking in one tool.
Design Principles
- Zero setup — Works immediately, no config needed
- No dependencies — Pure Node.js fs/crypto/zlib, no npm packages
- Safe by default — Skips known bloat directories, dry-run available
- Transparent — Every operation reports what it did
- Persistent — Manifests survive restarts and can verify integrity later
Related skills
Content-aware file management for workspace files: search (content snippets opt-in via --snippets), dedup, organize, rename, file metadata inspection, and continuous watch mode. Watch mode persists a journal (paths/hashes/sizes/ timestamps/change events) to memory/smart-files-journal.json and can monitor paths outside the workspace when --force is passed. All file mutations (organize/rename) require --force and are dry-run by default.
Snapshot con restore distruttivo, trigger stretti e fallback tar sicuro (v1.2.2)
Encrypted OpenClaw backups to S3-compatible buckets with staged restore and opt-in scheduling.
Automated backup for OpenClaw instances. Backs up agents, skills, cron jobs, and memory. Supports local tar archives. Credentials, periodic scheduling, and g...
PURE LOCAL file backup of this Mac's workspace: mirrors ~/playground, ~/experiment and ~/WorkBuddy into BOTH a fixed local folder and an external drive, incremental and verified, so an interrupted run resumes. Use-when: '备份一下工作区', 'back up my workspace to the external drive', 'what is not backed up yet / 备份状态', 'the drive is plugged in, catch up the backup', '$workspace-backup'. Do-NOT use for: Time Machine repair or restore; git push to a remote; iCloud or cloud sync; database dumps; deleting node_modules to free space (this skill never deletes from the source); or a single-file .bak.