Clawsync
/install clawsync
ClawSync
Backup and restore your OpenClaw workspace to GitHub.
⚠️ Security First
This skill is designed with defense-in-depth. Please read carefully.
What It Backs Up
| Category | Files | Status |
|---|---|---|
| Identity Files | AGENTS.md, SOUL.md, USER.md, TOOLS.md, IDENTITY.md, HEARTBEAT.md | ✅ Safe |
| Skills | All from $OPENCLAW/skills/ |
⚠️ Manual review |
| Scripts | All from $OPENCLAW/scripts/ |
⚠️ Manual review |
Why Some Files Are Not Backed Up
The following files are NOT backed up by design:
- SITES.md — May contain API keys/secrets
- MEMORY.md — May contain sensitive conversation data
- Any file in
credentials/,.env,node_modules/
What It Excludes
- ❌ API keys and tokens (any format)
- ❌ Credentials folder
- ❌ .env files
- ❌ node_modules
- ❌ .git directories
- ❌ Nested git repositories
- ❌ Files containing secrets (detected by regex)
Secret Detection
ClawSync scans for these secret patterns:
- GitHub tokens (
ghp_*) - OpenAI keys (
sk-*) - Google API keys (
AIza*) - Slack tokens (
xoxb-*,xoxp-*) - AWS access keys (
AKIA*) - JWTs and bearer tokens
- Private keys (
-----BEGIN * PRIVATE KEY-----) - High-entropy strings
If any are detected → backup aborts before push.
Environment Variables (Required)
export GITHUB_TOKEN="ghp_xxxx"
export BACKUP_REPO="username/repo-name"
export OPENCLAW_WORKSPACE="${HOME}/openclaw-workspace"
🔐 Recommended: Fine-Grained PAT
For least privilege, use a GitHub Fine-Grained PAT:
- Go to GitHub → Settings → Developer settings → Personal access tokens → Fine-grained tokens
- Create new token with:
- Repository access: Only
$BACKUP_REPO - Permissions: Contents: Write
- Repository access: Only
- Use this token as
GITHUB_TOKEN
Quick Start
git clone https://github.com/your-username/clawsync.git ~/clawsync
cp .env.example .env
# Edit .env with your values
bash sync.sh
Features
- Pre-flight Check: Validates required env vars before running
- Strict Whitelist: Only copies explicitly allowed files
- Deny List: Filters out .git, credentials, node_modules
- Secret Scrubbing: Detects 100+ secret patterns, aborts if found
- Safe Restore: Requires --force or confirmation before overwriting
Safe Restore
# With confirmation (default)
bash restore.sh
# Force mode (no prompt)
bash restore.sh --force
Auth
Uses gh CLI if available, falls back to token auth.
Files
sync.sh- Backup script (ShellCheck compliant)restore.sh- Restore script.env_example- Template.gitignore- Blocks secrets
Development & Release
Running Tests Locally
# Set up test workspace
mkdir -p /tmp/test-workspace
echo "test" > /tmp/test-workspace/AGENTS.md
echo "test" > /tmp/test-workspace/USER.md
mkdir -p /tmp/test-workspace/skills /tmp/test-workspace/scripts
# Run integration test
export BACKUP_REPO="test/repo"
export OPENCLAW_WORKSPACE="/tmp/test-workspace"
export GITHUB_TOKEN="dummy"
cd /tmp && rm -rf test-backup-repo && mkdir test-backup-repo
cd test-backup-repo && git init
cp ~/clawsync/sync.sh .
bash sync.sh
Testing Secret Detection
# Create a test file with a fake secret
echo "My API key is ghp_test1234567890abcdefghijklmnopqrstuvwxyz" > /tmp/test-workspace/AGENTS.md
# Run sync - should abort with error
bash sync.sh
# Expected output: "Error: Potential secret detected..."
Security Audit Test (Proves Non-Staged Detection)
This test verifies the script catches secrets BEFORE they are staged:
# Set up test workspace
export BACKUP_REPO="test/repo"
export OPENCLAW_WORKSPACE="/tmp/test-workspace"
export GITHUB_TOKEN="dummy"
# Create workspace with secret in a non-staged file
mkdir -p /tmp/test-workspace
echo "Real API key: sk-realapikey12345678901234567890" > /tmp/test-workspace/AGENTS.md
# Copy sync.sh to temp backup dir
cd /tmp && rm -rf audit-test && mkdir audit-test && cd audit-test
git init
cp ~/clawsync/sync.sh .
# Run sync - should FAIL (catches non-staged secret)
bash sync.sh
# Expected: "Error: Potential secret detected in backup directory!"
# This proves the pre-git-add scanning works
Publishing to ClawHub
The CI runs on every push and pull request:
- ShellCheck - Lints bash scripts
- Integration test - Verifies backup/restore works
To publish a new version:
git add -A
git commit -m "Release v1.0.x"
git tag v1.0.x
git push origin master --tags
CI will automatically:
- Run tests
- If tests pass and tag starts with
v*, publish to ClawHub
- 确保已安装 OpenClaw(本地或 Docker 部署)
- 在对话框中输入安装命令:
/install clawsync - 安装完成后,直接呼叫该 Skill 的名称或使用
/clawsync触发 - 根据 Skill 的参数说明提供必要输入,即可获得结构化输出
Clawsync 是什么?
Backup and restore your OpenClaw workspace to GitHub. 它是一个面向 Claude Code / OpenClaw 的 AI Agent Skill 插件,目前累计下载 496 次。
如何安装 Clawsync?
在 OpenClaw 或 Claude Code 对话框中运行命令「/install clawsync」即可一键安装,无需额外配置。
Clawsync 是免费的吗?
是的,Clawsync 完全免费(开源免费),可自由下载、安装和使用。
Clawsync 支持哪些平台?
Clawsync 跨平台运行,可在任意部署了 OpenClaw / Claude Code 的环境中使用(cross-platform)。
谁开发了 Clawsync?
由 nickconstantinou(@nickconstantinou)开发并维护,当前版本 v1.0.6。