Workspace GitHub Backup
One-click backup solution for AI Agent workspaces to a private GitHub repository.
Quick Start
First time setup: Tell me "setup GitHub backup" and I'll guide you through the interactive wizard!
Already configured: Just say "backup now" to trigger an immediate backup.
Features
Two Backup Modes
| Mode | Trigger | Description |
|---|---|---|
| Manual | "setup backup" | Interactive Q&A to configure |
| Auto | After setup | Scheduled via OpenClaw Cron |
What Gets Backed Up ✅
| Files/Directories | Description |
|---|---|
skills/ | All installed skills |
memory/ | Daily memory files |
AGENTS.md | Agent configuration |
SOUL.md | AI identity definition |
USER.md | User information |
IDENTITY.md | AI identity info |
TOOLS.md | Local tools config |
HEARTBEAT.md | Heartbeat tasks |
| Config files | README.md, SYNC.md, etc. |
What's Excluded ❌
| Pattern | Description |
|---|---|
.clawhub/ | ClawHub cache |
.openclaw/ | Runtime data |
node_modules/ | Dependencies |
*.log | Log files |
*.tmp | Temp files |
.DS_Store | System files |
| API Keys | Sensitive info in env vars |
Interactive Setup Wizard
When user says "setup GitHub backup", ask these questions one by one:
Question 1: GitHub Username
Please tell me your GitHub username.
Wait for answer (e.g., "johnsmith")
Question 2: Repository Name
What name would you like for your backup repository? Suggestion:
ai-workspace-backuporagent-workspace
Wait for answer
Question 3: GitHub Token
Now let's generate a GitHub Token:
- Go to https://github.com/settings/tokens
- Click "Generate new token (classic)"
- Note:
backup-token- Check the
repopermission (full control of private repositories)- Click "Generate token"
- Copy and paste the Token here
Wait for token (format: ghp_xxx)
Question 4: Backup Time
When would you like automatic backup to run each day?
- A) 3:00 AM (midnight owl)
- B) 7:00 AM (morning)
- C) 12:00 PM (noon)
- D) 6:00 PM (evening)
Or tell me your preferred time (e.g., "every day at 5 PM")
Wait for selection
Question 5: Confirm
Configuration summary:
- GitHub Username: [username]
- Repository: [repo-name]
- Backup Time: [time]
Reply "confirm" or "yes" to start setup, or tell me what to change.
After confirmation:
- Initialize Git repo
- Run first backup
- Set up OpenClaw Cron
Usage Commands
Manual Triggers
# Immediate backup
"backup now"
"backup immediately"
"run backup now"
# Check status
"backup status"
"when did we last backup"
"show backup status"
# Restore
"restore from GitHub"
"recover workspace"
# Modify setup
"change backup time"
"pause auto backup"
Trigger Keywords
The skill activates when user or agent says:
- "setup GitHub backup"
- "backup to github"
- "auto backup"
- "manual backup"
- "backup now"
- "backup status"
- "workspace backup"
- "git backup"
- "scheduled backup"
- "sync to github"
Troubleshooting
Common Issues
| Problem | Cause | Solution |
|---|---|---|
| "Permission denied" | Invalid token | Regenerate token with repo scope |
| "Repository not found" | Wrong repo name | Check spelling |
| "Push failed" | No network | Check connection |
| "Cron not running" | Config error | Run openclaw cron list |
Manual Fix Commands
# Check remote
git remote -v
# Reset remote with new token
git remote set-url origin https://x-access-token:TOKEN@github.com/user/repo.git
# View cron jobs
openclaw cron list
# Manual backup
cd /root/.openclaw/workspace
git add skills/ memory/ AGENTS.md SOUL.md USER.md IDENTITY.md TOOLS.md HEARTBEAT.md README.md SYNC.md .gitignore
git commit -m "Backup: $(date +%Y-%m-%d)"
git push origin main
For Other AI Agents
If you're another AI agent using this skill:
- First backup: Run the setup wizard to configure
- Subsequent backups: Use
openclaw cron addto set schedule - Manual trigger: Execute git add/commit/push commands
- Status check: Run
git log -1to see last backup time
Example cron setup:
openclaw cron add --name "workspace-backup" --cron "0 3 * * *" --message "Execute workspace backup" --agent main
Security Notes
- Token is stored in Git remote URL (not in files)
- Sensitive data (API keys, passwords) are NOT backed up
- Backup archive contains no credentials
- Use a private repository for backup
- If token is compromised, revoke it immediately in GitHub Settings
Recovery Guide
When user needs to restore:
# 1. Clone the backup repo
git clone https://github.com/[username]/[repo].git /tmp/restore
# 2. Restore files
cp -r /tmp/restore/* ~/.openclaw/workspace/
# 3. Reconfigure environment variables
# (sensitive info not in backup)
Author
Created by Jeremy for OpenClaw community. Published to ClawHub for anyone to use and improve.