# OpenClaw Custom Skills Backup and version control for custom OpenClaw skills deployed on `docker-test`. These skills extend the agent beyond the built-in defaults (ClawHub-installed or bundled). ## Purpose - **Backup** — Preserve custom skills outside the deployment - **Version control** — Track changes, roll back, collaborate - **Sync** — Pull new skills from docker-test, push local edits back ## Directory Structure Skills are organized by their source location on the remote: | Directory | Remote Path | Skills | |-----------|-------------|--------| | `workspace/` | `/opt/openclaw/workspace/skills/` | capmetro-monitor, github-notifications, model-selector | | `workspace-security/` | `/opt/openclaw/state/workspace-security/skills/` | vt-monitor, monitor-unauthorized | | `workspace-home/` | `/opt/openclaw/state/workspace-home/skills/` | cron-manager | | `extensions/` | `/opt/openclaw/state/extensions/openclaw-plugin-vt-sentinel/skills/` | vt-sentinel | Each skill is a folder containing `SKILL.md` and optional `scripts/`, `references/`, etc. ## Access Pattern ### Prerequisites - SSH access to `docker-test` (configured in `~/.ssh/config`) - OpenClaw deployed at `/opt/openclaw` on docker-test ### Sync Script ```bash # Pull skills FROM docker-test TO local (download new/updated) ./sync.sh pull # Push skills FROM local TO docker-test (upload your changes) ./sync.sh push ``` Override the SSH host: ```bash REMOTE=my-server ./sync.sh pull ``` ### What Gets Excluded The sync script and `.gitignore` exclude runtime files: - `state.json` — Per-skill state (tokens, seen IDs) - `seen-connections.json` — Connection tracking - `authorized-ips.json` — IP whitelist - `memory/` — Skill memory directories These contain environment-specific or sensitive data and should never be committed. ## Custom Skills Inventory | Skill | Source | Description | |-------|--------|-------------| | capmetro-monitor | workspace | Monitor CapMetro (Austin) service changes for Route 5/500 | | github-notifications | workspace | Check GitHub PRs and releases with smart filtering | | model-selector | workspace | Safely change agent primary/fallback models via LLM proxy | | vt-monitor | workspace-security | Parse VT-Sentinel activity from gateway logs | | monitor-unauthorized | workspace-security | Detect unauthorized WebSocket connections | | cron-manager | workspace-home | Manage cron and reminder workflows | | vt-sentinel | extensions | VirusTotal security scanner (ClawHub plugin) | ## First-Time Setup 1. Create the repository on Gitea (e.g. `b3nw/openclaw-skills`) if it does not exist. 2. Push the initial commit: `git push -u origin main` ## Workflow 1. **Regular backup**: Run `./sync.sh pull` periodically to capture new skills or updates made directly on docker-test. 2. **Edit locally**: Modify skills in this repo, commit, push to Gitea. 3. **Deploy changes**: Run `./sync.sh push` to apply local edits to docker-test. 4. **Restart OpenClaw** or start a new session so it picks up changes.