# Gitclaw Backup

> GitHub backup for OpenClaw workspace. Use when user says "同步", "备份", "backup", "sync", "push to github", or asks about backup status/history/failures. Manages git-based full backup of ~/.openclaw to GitHub.

- Skill: `blessonism/gitclaw-backup` (Agent Skill)
- Install (CLI): `npx skillmds@latest add blessonism/gitclaw-backup`
- Raw SKILL.md: https://api.skillmd.com/api/skills/blessonism/gitclaw-backup/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: blessonism (https://skillmd.com/u/blessonism)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/blessonism/gitclaw-backup

---


# GitClaw Backup

Full backup of `/home/node/.openclaw/` to GitHub via git.

## Quick Reference

- **Repo**: `https://github.com/blessonism/openclaw-backup.git`
- **Branch**: `main`
- **Script**: `/home/node/.openclaw/gitclaw/auto_backup.sh`
- **Cron**: `daily-workspace-backup` — 每天 UTC 16:00 (北京时间 0:00)
- **Exclude rules**: `/home/node/.openclaw/.gitignore`

## Manual Sync

Run the backup script directly:

```bash
bash /home/node/.openclaw/gitclaw/auto_backup.sh
```

Script behavior:
- Lock-based (prevents concurrent runs)
- Stages all changes (`git add -A`), respects `.gitignore`
- Skips commit if no changes
- Pushes to `origin main`
- Logs to `/home/node/.openclaw/gitclaw/backup.log`

## Post-Sync Response

After a successful sync, **always** include a clickable link to the latest commit in your reply:

```bash
# Get the latest commit short hash
cd /home/node/.openclaw && git log --oneline -1
```

Then format the response like:

> ✅ 同步完成 — [查看 commit](https://github.com/blessonism/openclaw-backup/commit/<full_hash>)

- If no changes were detected, report "无变更，跳过" (no link needed).
- If the push failed, report the error and suggest troubleshooting steps.

## Check Status

```bash
# Last backup log
tail -5 /home/node/.openclaw/gitclaw/backup.log

# Git status (uncommitted changes)
cd /home/node/.openclaw && git status --short

# Recent commits
cd /home/node/.openclaw && git log --oneline -5
```

## Exclude Files from Backup

Edit `/home/node/.openclaw/.gitignore` — standard gitignore syntax.

Current notable exclusions: `workspace/images/`, `workspace/node_modules/`, `workspace/.micromamba/`, `workspace/bin/`, large binary files.

## Troubleshooting

- **"already running"** in log → stale lock at `/home/node/.openclaw/gitclaw/lock/`, remove it: `rmdir /home/node/.openclaw/gitclaw/lock`
- **Push rejected** → likely force-push or diverged history on remote; check with `git log --oneline -5 origin/main`
- **Auth failure** → credentials in `~/.git-credentials`; verify with `git credential fill <<< "host=github.com"`

