Automated skill management for AI coding assistants
Project description
Agent Skills Updater
Automated skill management for AI coding assistants. Keep your agent skills up-to-date across Windsurf, Cursor, Claude Code, GitHub Copilot, Opencode, other AI-powered IDEs and Agentic tools.
๐ง Python rewrite in progress. The original PowerShell version is available in the
legacy/folder. See Legacy PowerShell Version below.
Project Board: Track development and future releases at GitHub Project
What Are Skills?
Skills are markdown files that provide context, instructions, and capabilities to AI coding assistants. They extend your AI's knowledge with specific expertise like SEO optimization, copywriting, frontend design, and more.
- Discover skills: skills.sh โ Browse and search the ecosystem of available skills
- Windsurf skills guide: docs.windsurf.com/windsurf/cascade/skills โ Learn how skills work in Windsurf (and other IDEs)
- Manual installation: Skills are typically installed via your IDE's skill manager or by copying to the appropriate directory (see Supported IDEs)
The Problem
AI coding assistants use "skills" (markdown files with context and instructions) to extend their capabilities. These skills come from various GitHub repositories with different structures:
- Skills in
skills/<name>/SKILL.md - Skills in repository root
- Skills in
template/subdirectories - Multiple skills in subdirectories
Keeping these updated manually is tedious. This tool automates the process.
Features
- Multi-source updates โ Clone skills from any public Git repository
- Structure-aware โ Handles root, template, multi-skill, and standard repo layouts
- Branch support โ Clone from specific branches (e.g.,
canary,main) - Lockfile tracking โ Maintains
.skill-lock.jsonwith install/update timestamps - Configurable โ External YAML config for easy customization
- Schedulable โ Run manually or via Task Scheduler / cron
- List installed โ See what skills you currently have installed
- Dry-run mode โ Preview changes before applying them
- Backup & rollback โ Automatic backups before updates with restore support
- Security โ Interactive allowlist for non-GitHub repository hosts
Repository Structure
agent-skills-updater/
โโโ pyproject.toml # Python package config
โโโ README.md # This file
โโโ CONTRIBUTING.md # Contribution guidelines
โโโ LICENSE # Apache-2.0 license
โโโ .gitignore
โโโ src/
โ โโโ agent_skills_updater/
โ โโโ __init__.py # Package version
โ โโโ cli.py # Click-based CLI
โ โโโ config.py # YAML config loading
โ โโโ downloader.py # Git clone + archive fallback
โ โโโ installer.py # Skill installation logic
โ โโโ lockfile.py # Lockfile management
โ โโโ backup.py # Backup and rollback
โโโ tests/
โ โโโ conftest.py
โ โโโ ...
โโโ legacy/
โโโ agent-skills-update.ps1 # Original PowerShell script
โโโ agent-skills-config.example.yaml
Quick Start
Installation
pip install agent-skills-updater
Or install from source:
git clone https://github.com/BallLightningAB/agent-skills-updater.git
cd agent-skills-updater
pip install -e ".[dev]"
Usage
# Update all skills
agent-skills-update
# Force overwrite existing skills
agent-skills-update --force
# Update specific skills only
agent-skills-update --skills copywriting,seo-audit
# Show installed skills
agent-skills-update --list
# Dry run (show what would be updated)
agent-skills-update --dry-run
# Verbose output
agent-skills-update --verbose
# Trust all hosts (CI mode, skip prompts)
agent-skills-update --trust-all
# List available backups
agent-skills-update --list-backups
# Roll back a specific skill
agent-skills-update --rollback copywriting
# Roll back all skills to last backup
agent-skills-update --rollback-all
# Machine-readable output (for automation)
agent-skills-update --json
# Custom config path
agent-skills-update --config ~/my-config.yaml
Configuration
agent-skills-config.yaml
settings:
globalSkillsPath: ~/.agents/skills
windsurfSkillsPath: ~/.codeium/windsurf/skills
tempPath: ~/.temp-agent-skills-update
logPath: ~/scripts/agent-skills-update.log
backupPath: ~/.agent-skills-updater/backups
keepBackups: 5
# Auto-updated when user selects "Allow always" for non-GitHub hosts
allowedHosts:
- gitlab.com
- bitbucket.org
repositories:
coreyhaines31/marketingskills:
url: https://github.com/coreyhaines31/marketingskills.git
skills:
- copywriting
- seo-audit
- page-cro
resend/react-email:
url: https://github.com/resend/react-email.git
branch: canary
skills:
- react-email
Repository structure types
| Type | Config | Description |
|---|---|---|
| standard | (default) | skills/<name>/SKILL.md or src/skills/<name>/SKILL.md |
| root | structure: root |
SKILL.md in repository root |
| template | structure: template |
SKILL.md in template/ subdirectory |
| multi | structure: multi |
Multiple skills as subdirectories with SKILL.md each |
Supported IDEs
The tool copies skills to these locations by default:
| IDE | Default Path |
|---|---|
| Generic agents | ~/.agents/skills |
| Windsurf | ~/.codeium/windsurf/skills |
| Amp | ~/.config/agents/skills |
| Kimi Code CLI | ~/.config/agents/skills |
| Antigravity | ~/.gemini/antigravity/global_skills |
| Augment | ~/.augment/rules |
| Claude Code | ~/.claude/skills |
| OpenClaw | ~/.moltbot/skills |
| Cline | ~/.cline/skills |
| CodeBuddy | ~/.codebuddy/skills |
| Codex | ~/.codex/skills |
| Command Code | ~/.commandcode/skills |
| Continue | ~/.continue/skills |
| Crush | ~/.config/crush/skills |
| Cursor | ~/.cursor/skills |
| Droid | ~/.factory/skills |
| Gemini CLI | ~/.gemini/skills |
| GitHub Copilot | ~/.copilot/skills |
| Goose | ~/.config/goose/skills |
| Junie | ~/.junie/skills |
| iFlow CLI | ~/.iflow/skills |
| Kilo Code | ~/.kilocode/skills |
| Kiro CLI | ~/.kiro/skills |
| Kode | ~/.kode/skills |
| MCPJam | ~/.mcpjam/skills |
| Mistral Vibe | ~/.vibe/skills |
| Mux | ~/.mux/skills |
| OpenCode | ~/.config/opencode/skills |
| OpenClaude IDE | ~/.openclaude/skills |
| OpenHands | ~/.openhands/skills |
| Pi | ~/.pi/agent/skills |
| Qoder | ~/.qoder/skills |
| Qwen Code | ~/.qwen/skills |
| Replit | Project-only (no global path) |
| Roo Code | ~/.roo/skills |
| Trae | ~/.trae/skills |
| Trae CN | ~/.trae-cn/skills |
| Windsurf | ~/.codeium/windsurf/skills |
| Zencoder | ~/.zencoder/skills |
| Neovate | ~/.neovate/skills |
| Pochi | ~/.pochi/skills |
| AdaL | ~/.adal/skills |
Cross-Platform Notes
- Python 3.12+ required
- Paths use
~which expands correctly on all platforms - Git must be installed and available in PATH (archive fallback available when git is unavailable)
Contributing
Contributions welcome! Please:
- Fork the repository
- Create a feature branch
- Submit a pull request
See CONTRIBUTING.md for details.
License
Apache-2.0 โ see LICENSE
Credits
Built by Nicolas Brulay of Ball Lightning AB as part of the Chronomation ecosystem.
Inspired by the growing ecosystem of AI agent skills from:
- Anthropic
- Vercel Labs
- Resend
- Community contributors
Legacy PowerShell Version
The original PowerShell version (v1.0.2) is available in the legacy/ folder. It requires PowerShell 5.1+ (Windows) or PowerShell 7+ (macOS/Linux). See legacy/agent-skills-config.example.yaml for configuration.
Migrating from PowerShell
- Install the Python version:
pip install agent-skills-updater - Your existing
agent-skills-config.yamlis compatible โ no changes needed - Run
agent-skills-updateinstead of.\agent-skills-update.ps1 - The lockfile format (
.skill-lock.json) is preserved
Version History
v0.1.1 (Python rewrite โ in progress)
- Python 3.12+ rewrite with pip installation
- Click-based CLI with
--dry-run,--force,--verbose,--jsonflags - Backup and rollback support
- Interactive security allowlist for non-GitHub repos
- Same YAML config format as PowerShell version
v1.0.0 (2026-01-30) โ PowerShell (legacy)
- Initial release
- Multi-source skill updates from GitHub repositories
- Support for 4 repository structures (standard, root, template, multi)
- Branch-specific cloning
- Lockfile tracking with timestamps
- Cross-platform support (Windows PowerShell 5.1+, PowerShell 7+)
- List installed skills (
-List) - Dry-run mode (
-WhatIf) - Support for 43+ IDEs and AI coding tools
Follow Along
This project and other Ball Lightning AB initiatives are documented on The Builder Coil โ a public builder's log covering the journey of building products, tools, and the Chronomation ecosystem.
Subscribe to The Upkeep newsletter for weekly updates on new releases, behind-the-scenes insights, and practical tips for developers and solopreneurs.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file agent_skills_updater-0.1.8.tar.gz.
File metadata
- Download URL: agent_skills_updater-0.1.8.tar.gz
- Upload date:
- Size: 27.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
43f14ee429507dc50ccd6cb3cfe4d0f86db82f03c517dba60a7c9874a5102250
|
|
| MD5 |
ab14f10f757627389e56ec1585b7bd06
|
|
| BLAKE2b-256 |
67bac99dc83524c8081500545e951605511e85bd7f5bb5ff5958017098c78c64
|
Provenance
The following attestation bundles were made for agent_skills_updater-0.1.8.tar.gz:
Publisher:
publish.yml on BallLightningAB/agent-skills-updater
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_skills_updater-0.1.8.tar.gz -
Subject digest:
43f14ee429507dc50ccd6cb3cfe4d0f86db82f03c517dba60a7c9874a5102250 - Sigstore transparency entry: 930465059
- Sigstore integration time:
-
Permalink:
BallLightningAB/agent-skills-updater@9f3829c279e749c956ac9530ac42d848a0473946 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/BallLightningAB
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9f3829c279e749c956ac9530ac42d848a0473946 -
Trigger Event:
release
-
Statement type:
File details
Details for the file agent_skills_updater-0.1.8-py3-none-any.whl.
File metadata
- Download URL: agent_skills_updater-0.1.8-py3-none-any.whl
- Upload date:
- Size: 23.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b754c509f226aedbf6e952889a8c3ea47a6e97e2bc2395e512de7c7cf47cb063
|
|
| MD5 |
3cb00b8f696f7043b86595cac46c5d25
|
|
| BLAKE2b-256 |
1401d49b397c94d40e6232b4d483d3b7dfcfbfcc17c90b1061863a9205ce5b3c
|
Provenance
The following attestation bundles were made for agent_skills_updater-0.1.8-py3-none-any.whl:
Publisher:
publish.yml on BallLightningAB/agent-skills-updater
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
agent_skills_updater-0.1.8-py3-none-any.whl -
Subject digest:
b754c509f226aedbf6e952889a8c3ea47a6e97e2bc2395e512de7c7cf47cb063 - Sigstore transparency entry: 930465060
- Sigstore integration time:
-
Permalink:
BallLightningAB/agent-skills-updater@9f3829c279e749c956ac9530ac42d848a0473946 -
Branch / Tag:
refs/tags/v0.1.8 - Owner: https://github.com/BallLightningAB
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@9f3829c279e749c956ac9530ac42d848a0473946 -
Trigger Event:
release
-
Statement type: