← Back to Skills Marketplace
qvshuo

custom-skills-updater

by An Jing · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ⚠ suspicious
328
Downloads
0
Stars
2
Active Installs
3
Versions
Install in OpenClaw
/install custom-skills-updater
Description
Manage manually installed skills (non-ClawHub). Supports checking updates, updating, and listing custom skills from GitHub or local sources.
README (SKILL.md)

custom-skills-updater

Manages manually installed skills not installed from ClawHub.

Supported types: github-dir, github-file, github-readme, local

This skill checks and updates existing skills only. It does NOT create new skills.


Prerequisites

All GitHub operations require an authenticated gh CLI session. Before any GitHub request, run gh auth status. If it fails, prompt: "Run gh auth login first." and stop.


Operations

Check for updates

Scan REGISTRY.yaml, detect remote versions, compare with stored versions, report:

skill-name ........ up-to-date
skill-name ........ update available

Update skills

Target all outdated skills or a specific skill by name.

  1. Run update check
  2. For each outdated skill, notify the user before updating:
    • Skill name and type
    • Summary of what changed (e.g. diff highlights, new commit description, or content delta)
    • How the update will be applied (overwrite, merge, delegate to skill-creator, etc.)
    • Wait for explicit user approval before proceeding
  3. Update approved skill(s)
  4. Update REGISTRY.yaml

If the user cannot respond immediately (e.g. scheduled/automated run, no active session), do not execute updates. Instead, write a summary of pending updates (skill name, change description, proposed action) and leave it for the user to review and approve later.

List installed skills

Read and list all entries in REGISTRY.yaml.


Registry

Location: REGISTRY.yaml in the same directory as this SKILL.md.

If it does not exist:

  1. If REGISTRY.example.yaml exists, copy it to REGISTRY.yaml
  2. Otherwise create with:
skills: {}

Do not rename the skills root key.

Format

Map structure keyed by skill name:

skills:
  example-dir-skill:
    type: github-dir
    source: example-owner/example-repo@main:skills/example-dir-skill
    version: abc123
    updated: 2026-01-01
  example-readme-skill:
    type: github-readme
    source: example-owner/example-project@main
    version: def456
    updated: 2026-01-02
Field Meaning
key skill name
type github-dir / github-file / github-readme / local
source source location
version commit SHA (github-dir) or SHA256 (file-based types)
updated last update date

Automatic Skill Discovery

Scan skills/*/SKILL.md. Only direct subdirectories of skills/, no recursion.

If a skill exists but is not in REGISTRY.yaml:

  1. Notify the user and ask for source type and location
  2. Add to registry

If unable to prompt, register as local and notify the user to configure later.


Version Detection

Compare remote version against version in REGISTRY.yaml.

github-dir

gh api "repos/{owner}/{repo}/commits?path={path}&per_page=1" --jq '.[0].sha // empty'

github-file

gh api "repos/{owner}/{repo}/contents/{path}?ref={branch}" -H "Accept: application/vnd.github.raw+json" | shasum -a 256

github-readme

Find README filename:

gh api "repos/{owner}/{repo}/contents/?ref={branch}" --jq '.[].name' | grep -i '^readme' | head -n 1

Take first match, download and hash:

gh api "repos/{owner}/{repo}/contents/{readme_filename}?ref={branch}" -H "Accept: application/vnd.github.raw+json" | shasum -a 256

local

Skip entirely.


Update Procedure

Only update when remote version differs from stored version.

github-dir

gh api "repos/{owner}/{repo}/tarball/{branch}" > archive.tar.gz

Verify the file is valid gzip before extracting. Copy target path to skills/{name}/.

github-file

gh api "repos/{owner}/{repo}/contents/{path}?ref={branch}" -H "Accept: application/vnd.github.raw+json" > skills/{name}/SKILL.md

github-readme

  1. Download the new README using the same method as version detection
  2. Compare the new README against the existing local README to identify changes
  3. Assess change scope:
    • Major changes (structural changes, new/removed sections, significant content rewrites): check if the skill-creator skill is installed. If yes, delegate the SKILL.md update to skill-creator with the new README as input. If skill-creator is not installed, fall through to step 4.
    • Minor changes (wording tweaks, small additions): proceed to step 4 directly.
  4. Evaluate whether the changes contradict any statements in the current SKILL.md, or introduce important new information that should be reflected in SKILL.md
  5. Update the skill only for the relevant parts based on the evaluation above.

Error Handling and Safety

Handle gh api failures by HTTP status:

Status Action
401 "Authentication expired. Run gh auth login." Stop all operations.
403 "Permission denied or rate limit for {skill-name}." Skip.
404 "Source not found for {skill-name}." Skip.
Other "Check failed for {skill-name}." Skip.

On any failure: do NOT overwrite local files, do NOT modify registry.

Registry updates: modify only the target entry, do not reorder or remove others, update version and updated only after success.

This skill manages manually installed skills only. ClawHub-installed skills are out of scope.

Usage Guidance
This skill appears to do what it says, but take these precautions before installing or running it: - Install and authenticate GitHub CLI (gh auth login). The SKILL.md requires gh, but the registry metadata does not list it—ensure gh is present and you understand which GitHub account/token it uses. - Understand that updates involve downloading tarballs/files and writing into skills/{name}/ and updating REGISTRY.yaml. Keep backups of REGISTRY.yaml and any skills you care about before running updates. - The skill promises to wait for interactive approval. If you run it unattended, it will defer updates but may register discovered skills as 'local' automatically—check REGISTRY.yaml for unexpected entries after discovery runs. - Review the gh auth token's scope (least privilege) because gh operations use your credentials implicitly; a compromised token could allow remote repo access. - If you require stricter guarantees, request the author add gh as a declared required binary in registry metadata and consider a dry-run mode where downloads are shown but not extracted. Given the metadata omission (missing gh dependency) and the file-write/extract behavior, treat this as suspicious until you confirm the environment and backup state.
Capability Analysis
Type: OpenClaw Skill Name: custom-skills-updater Version: 1.0.2 The custom-skills-updater skill (logic in SKILL.md) manages updates for manually installed skills by fetching content from GitHub via the gh CLI and overwriting local files. While it incorporates safety measures like mandatory user approval and authentication verification, it performs high-risk operations including file system modification and remote code retrieval. A notable risk is the github-readme update logic, which directs the agent to interpret untrusted remote content to modify skill instructions (SKILL.md), creating a significant surface for indirect prompt injection attacks.
Capability Assessment
Purpose & Capability
SKILL.md and README describe a GitHub-backed updater that uses the GitHub CLI (gh) to detect and apply updates; that capability matches the name/description. However, the registry metadata lists no required binaries even though the skill explicitly requires an authenticated gh CLI session for all remote operations. The missing declared dependency is an incoherence the user should know about.
Instruction Scope
Instructions stay within the stated scope: scanning REGISTRY.yaml, checking remote versions, downloading archives or files, and writing into skills/{name}/ plus updating REGISTRY.yaml. The SKILL.md enforces user approval before updates and defers updates when unattended. One behavior to note: when discovery cannot prompt the user it will register discovered skills as 'local' automatically—this could add entries to REGISTRY.yaml without full remote metadata.
Install Mechanism
This is an instruction-only skill with no install spec or code to download/execute. That minimizes install-time risk.
Credentials
No env vars or credentials are declared, which is consistent with an instruction-only skill. However, the skill relies on the user's gh CLI session (which may use stored GitHub tokens/credentials). Access to GitHub via gh is proportionate to the updater's purpose, but users should be aware gh's credentials are used implicitly.
Persistence & Privilege
The skill writes to REGISTRY.yaml and overwrites or updates files under skills/{name}/ as part of normal operation. It does not request 'always: true' or system-wide privileges. Still, extracting tarballs and copying remote content into the local skills directory is powerful—the SKILL.md requires explicit user approval for updates, which mitigates risk if followed.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install custom-skills-updater
  3. After installation, invoke the skill by name or use /custom-skills-updater
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
custom-skills-updater 1.0.2 - Adds interactive update approval: users now see details of each pending update and must explicitly approve before any update is applied. - For non-interactive sessions, proposed changes are summarized and left for later review—no updates occur automatically. - The update workflow for GitHub-readme type skills is enhanced: major README changes are delegated to the `skill-creator` skill if present, or handled with extra care if not. - No code or file changes—documentation and process improvements only.
v1.0.1
- README update logic for github-readme skills is now more selective: SKILL.md is only updated when the new README introduces contradictions or important new information, rather than wholesale replacement. - No other file or operational changes; registry, update, and error handling workflows remain unchanged.
v1.0.0
- Initial release of custom-skills-updater. - Provides checking, updating, and listing of manually installed (non-ClawHub) skills from GitHub or local sources. - Supports `github-dir`, `github-file`, `github-readme`, and `local` skill types. - Uses `REGISTRY.yaml` to track installed skills and can discover unregistered local skills. - Requires an authenticated GitHub CLI (`gh`) session for remote operations. - Includes structured error handling for authentication failures, permission issues, and missing resources.
Metadata
Slug custom-skills-updater
Version 1.0.2
License MIT-0
All-time Installs 2
Active Installs 2
Total Versions 3
Frequently Asked Questions

What is custom-skills-updater?

Manage manually installed skills (non-ClawHub). Supports checking updates, updating, and listing custom skills from GitHub or local sources. It is an AI Agent Skill for Claude Code / OpenClaw, with 328 downloads so far.

How do I install custom-skills-updater?

Run "/install custom-skills-updater" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is custom-skills-updater free?

Yes, custom-skills-updater is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does custom-skills-updater support?

custom-skills-updater is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created custom-skills-updater?

It is built and maintained by An Jing (@qvshuo); the current version is v1.0.2.

💬 Comments