Token导航 LogoToken导航TokenDH.com
开发敏感数据clawhub未标认证来源可访问clear审计提醒

gitclawgitclaw 开发

Agent Skill

gitclaw 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 OpenClaw 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

117,912

周安装

4,913

GitHub Stars

6

下载量

39,304
OpenClaw

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

MIT-0

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:gitclaw(gitclaw 开发)
来源仓库:https://github.com/marian2js/gitclaw
安装命令:
openclaw skills install gitclaw
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 OpenClaw 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

ClawHubOpenClaw
openclaw skills install gitclaw

简介

将 OpenClaw 代理工作区备份到 GitHub 存储库,并通过 cron 驱动的提交/推送脚本保持同步。

SKILL.md

name
gitclaw
description
Back up the OpenClaw agent workspace to a GitHub repo and keep it synced via a cron-driven commit/push script.
homepage
https://gitclaw.ai
metadata
{ "openclaw": { "emoji": "🐙", "homepage": "https://gitclaw.ai" } }

GitClaw: Agent self-backup to GitHub

When to use

Use this skill automatically when it's installed or reference, and also when the user asks to:

  • back up / sync / mirror the OpenClaw workspace
  • set up periodic commits and pushes
  • install/configure GitHub backup automation for the agent

Behavioral rule (important)

  • Do everything automatically and quietly.
  • Only message the user when:

- you need inputs (repo name, visibility, optional frequency), or - Git/GH/Cron install fails, or - GitHub auth requires the user to complete the browser/device step, or - Git operations fail (conflicts, permissions, etc).

Inputs to ask the user for

Ask the user for:

  1. Repository name (e.g., openclaw-backup)
  2. Visibility: public or private
  3. (Optional) Backup frequency in minutes (default: 60)

Do NOT ask for a Personal Access Token. We use gh auth.


Step 1: Ensure prerequisites (auto-install)

1A) Ensure git is installed (auto-install; do not stop)

Check:

  • git --version

If missing, install using the best available method:

  • If brew exists:

- brew install git

  • Else if apt-get exists:

- sudo apt-get update && sudo apt-get install -y git

  • Else if dnf exists:

- sudo dnf install -y git

  • Else if yum exists:

- sudo yum install -y git

  • Else if pacman exists:

- sudo pacman -S --noconfirm git

  • Else if zypper exists:

- sudo zypper install -y git

  • Else if apk exists:

- sudo apk add git

  • Else if macOS and xcode-select exists:

- xcode-select --install (this may prompt the user)

  • Else:

- Tell the user you couldn’t auto-install git on this OS and show the failing detection output.

Re-check:

  • git --version

Only notify the user if install failed.

1B) Ensure cron/crontab is available (best-effort auto-install)

Check:

  • command -v crontab

If missing, attempt install:

  • If apt-get exists:

- sudo apt-get update && sudo apt-get install -y cron - sudo systemctl enable --now cron || sudo service cron start || true

  • Else if dnf exists:

- sudo dnf install -y cronie - sudo systemctl enable --now crond || true

  • Else if yum exists:

- sudo yum install -y cronie - sudo systemctl enable --now crond || true

  • Else if pacman exists:

- sudo pacman -S --noconfirm cronie - sudo systemctl enable --now cronie || true

  • Else if apk exists:

- sudo apk add dcron - sudo rc-update add dcron default || true - sudo rc-service dcron start || true

  • Else:

- If you can’t install, tell the user cron is required for scheduling.

Re-check:

  • command -v crontab

Step 2: Ensure GitHub CLI (gh) is installed (auto-install)

Check:

  • gh --version

If missing, install:

  • If brew exists:

- brew install gh

  • Else if apt-get exists (official GitHub CLI packages; preferred):

- Install using the official apt repo steps: - (type -p wget >/dev/null || (sudo apt-get update && sudo apt-get install -y wget)) - sudo mkdir -p -m 755 /etc/apt/keyrings - out=$(mktemp) && wget -nv -O"$out" https://cli.github.com/packages/githubcli-archive-keyring.gpg - cat "$out" | sudo tee /etc/apt/keyrings/githubcli-archive-keyring.gpg > /dev/null - sudo chmod go+r /etc/apt/keyrings/githubcli-archive-keyring.gpg - sudo mkdir -p -m 755 /etc/apt/sources.list.d - echo "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | sudo tee /etc/apt/sources.list.d/github-cli.list > /dev/null - sudo apt-get update && sudo apt-get install -y gh

  • Else if dnf exists:

- sudo dnf install -y 'dnf-command(config-manager)' || sudo dnf install -y dnf5-plugins || true - sudo dnf config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo || sudo dnf config-manager addrepo --from-repofile=https://cli.github.com/packages/rpm/gh-cli.repo || true - sudo dnf install -y gh --repo gh-cli || sudo dnf install -y gh || true

  • Else if yum exists:

- type -p yum-config-manager >/dev/null || sudo yum install -y yum-utils - sudo yum-config-manager --add-repo https://cli.github.com/packages/rpm/gh-cli.repo - sudo yum install -y gh

  • Else if zypper exists:

- sudo zypper addrepo https://cli.github.com/packages/rpm/gh-cli.repo || true - sudo zypper ref - sudo zypper install -y gh

  • Else if pacman exists:

- sudo pacman -S --noconfirm github-cli

  • Else if apk exists:

- sudo apk add github-cli

  • Else:

- Tell the user you can’t auto-install gh on this OS.

Re-check:

  • gh --version

Only notify the user if install failed.


Step 3: Ensure the user is authenticated in gh (agent runs the flow)

Check:

  • gh auth status --hostname github.com

If NOT authenticated:

  1. Run:

- gh auth login --hostname github.com --git-protocol https

  1. The terminal flow will show a one-time code and ask the user to authorize.

- Tell the user to open https://github.com/login/device in their browser and enter the code shown in the terminal, then authorize.

  1. After login:

- gh auth setup-git

  1. Verify again:

- gh auth status --hostname github.com

If auth fails, stop and report the exact terminal output.


Step 4: Initialize git in the OpenClaw workspace and connect/create the repo

Workspace dir (where you store SOUL.md, AGENTS.md, etc.):

  • Example (path might be different on your environment): WORKSPACE_DIR="$HOME/.openclaw/workspace"
  1. Ensure the workspace exists:

- mkdir -p "$WORKSPACE_DIR" - cd "$WORKSPACE_DIR"

  1. Initialize repo if needed:

- If .git does not exist: git init - git branch -M main

  1. Configure a deterministic commit identity (local-only):

- git config user.name "gitclaw.ai" - git config user.email "gitclaw-bot@users.noreply.github.com"

  1. Determine the authenticated GitHub username (owner):

- OWNER="$(gh api user --jq .login)" - (Do not print unless debugging is needed)

  1. Repo name and visibility:

- REPO="<repo name from user>" - Visibility: - public => --public - private => --private

  1. Ensure there is at least one commit (required for first push/cron):

- Create a tiny marker file if needed: - test -f .gitclaw.keep || printf "gitclaw initialized: %s\ " "$(date -u '+%Y-%m-%dT%H:%M:%SZ')" > .gitclaw.keep - git add -A - git commit -m "gitclaw: initial backup" || true

  1. Create or reuse the target repo:

- If it exists: - gh repo view "$OWNER/$REPO" >/dev/null 2>&1 - Set remote: - REMOTE_URL="https://github.com/$OWNER/$REPO.git" - If origin exists: git remote set-url origin "$REMOTE_URL" - Else: git remote add origin "$REMOTE_URL" - Try to fast-forward sync (avoid overwriting remote history): - git fetch origin main || true - git merge --ff-only origin/main || true - If it does NOT exist: - Create it non-interactively and connect it: - Public: - gh repo create "$REPO" --public --confirm - Private: - gh repo create "$REPO" --private --confirm - Set remote: - REMOTE_URL="https://github.com/$OWNER/$REPO.git" - git remote add origin "$REMOTE_URL" || git remote set-url origin "$REMOTE_URL"

  1. Initial push:

- git push -u origin main

If push fails due to conflicts or non-fast-forward:

  • Do NOT force-push automatically.
  • Report the exact error and stop (user decision required).

Step 5: Install deterministic backup script (NO AI / NO heartbeat)

Create a folder outside the workspace:

  • mkdir -p "$HOME/.openclaw/gitclaw"

Create this script EXACTLY:

Path:

  • $HOME/.openclaw/gitclaw/auto_backup.sh

Contents:

#!/usr/bin/env bash
set -euo pipefail

# GitClaw deterministic backup (no AI)
export PATH="/usr/local/bin:/opt/homebrew/bin:/usr/bin:/bin:$PATH"

WORKSPACE_DIR="${HOME}/.openclaw/workspace"
STATE_DIR="${HOME}/.openclaw/gitclaw"
LOG_FILE="${STATE_DIR}/backup.log"
LOCK_DIR="${STATE_DIR}/lock"

mkdir -p "${STATE_DIR}"

timestamp() { date -u '+%Y-%m-%dT%H:%M:%SZ'; }

# Simple lock to prevent overlapping runs
if ! mkdir "${LOCK_DIR}" 2>/dev/null; then
  echo "$(timestamp) Skip: already running." >> "${LOG_FILE}"
  exit 0
fi
trap 'rmdir "${LOCK_DIR}" >/dev/null 2>&1 || true' EXIT

if ! command -v git >/dev/null 2>&1; then
  echo "$(timestamp) ERROR: git not found on PATH. Install git first." >> "${LOG_FILE}"
  exit 2
fi

if [ ! -d "${WORKSPACE_DIR}/.git" ]; then
  echo "$(timestamp) ERROR: ${WORKSPACE_DIR} is not a git repo. Run GitClaw setup first." >> "${LOG_FILE}"
  exit 3
fi

cd "${WORKSPACE_DIR}"

# Stage everything
git add -A

# If nothing staged, exit quietly
if git diff --cached --quiet; then
  echo "$(timestamp) No changes." >> "${LOG_FILE}"
  exit 0
fi

# Commit + push
git commit -m "gitclaw backup: $(timestamp)" >> "${LOG_FILE}" 2>&1
git push origin main >> "${LOG_FILE}" 2>&1

echo "$(timestamp) Backup OK." >> "${LOG_FILE}"

Write the script to:

  • $HOME/.openclaw/gitclaw/auto_backup.sh

Then:

  • chmod +x "$HOME/.openclaw/gitclaw/auto_backup.sh"

Step 6: Configure crontab (idempotent)

Default schedule: hourly (0 * * * *). If user provided a different frequency, convert it to a cron expression.

  1. Define:
  • CRON_CMD="$HOME/.openclaw/gitclaw/auto_backup.sh"
  • CRON_LINE="0 * * * * $CRON_CMD"
  1. Install without duplicates:
  • crontab -l 2>/dev/null | grep -F "$CRON_CMD" >/dev/null
  • If not found, append:

- (crontab -l 2>/dev/null; echo "$CRON_LINE") | crontab -

  1. Confirm:
  • crontab -l | grep -F "$CRON_CMD"

Step 7: Final validation

  1. Run once:
  • $HOME/.openclaw/gitclaw/auto_backup.sh
  1. Show the log:
  • tail -n 50 "$HOME/.openclaw/gitclaw/backup.log" || true
  1. Tell the user:
  • Repo: https://github.com/$OWNER/$REPO
  • Schedule: hourly (or the chosen cadence)
  • Script path: ~/.openclaw/gitclaw/auto_backup.sh

适合场景

01

OpenClaw 用户查找和安装 Skill 时

02

用户想查找某类 Agent Skill 时

03

需要根据任务场景推荐可安装能力包时

04

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

OpenClaw

89.03%
按下载量换算34,992

安全审计

VirusTotal

可疑

ClawScan

可疑

Static analysis

未展示

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在 warning/failed 结果,不能写成本站确认安全。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills