Observed since 20 Oct, 23:25 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
agent-skills-updater
Automated skill management for AI coding assistants
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.
Naming convention: The package is
agent-skills-updater(what youpip install). The CLI command isagent-skills-update(what you run). The original PowerShell version is available in thelegacy/folder.
Project Board: Track development and future releases at GitHub Project
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.
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/<name>/SKILL.mdtemplate/ subdirectoriesKeeping these updated manually is tedious. This tool automates the process.
canary, main).skill-lock.json with install/update timestampsagent-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
│ └── updater.py # Self-update and version check
├── tests/
│ ├── conftest.py
│ └── ...
└── legacy/
├── agent-skills-update.ps1 # Original PowerShell script
└── agent-skills-config.example.yaml
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]"
# 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
# Machine-readable output (for automation)
agent-skills-update --json
# Custom config path
agent-skills-update --config ~/my-config.yaml
# Update the tool itself
agent-skills-update self-update
# Skip version check (for CI/scripting)
agent-skills-update --no-update-check
agent-skills-config.yamlsettings:
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
| 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 |
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 |
~ which expands correctly on all platformsContributions welcome! Please:
See CONTRIBUTING.md for details.
Apache-2.0 — see LICENSE
Built by Nicolas Brulay of Ball Lightning AB as part of the Chronomation ecosystem.
Inspired by the growing ecosystem of AI agent skills from:
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.
pip install agent-skills-updateragent-skills-config.yaml is compatible — no changes neededagent-skills-update instead of .\agent-skills-update.ps1.skill-lock.json) is preserved--dry-run, --force, --verbose, --json flagslist, rollback, list-backups, self-update-List)-WhatIf)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.
Download counts and popularity will appear here as the collector receives them.
| Package / target | Requirement | Relationship |
|---|---|---|
clickEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | click>=8.1 | runtime |
pyyamlEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | pyyaml>=6.0 | runtime |
requestsEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | requests>=2.31 | runtime |
richEnvironment{
"extras": "",
"marker": null,
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | rich>=13.0 | runtime |
pytestEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | pytest>=8.0; extra == "dev" | runtime |
pytest-mockEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | pytest-mock>=3.12; extra == "dev" | runtime |
ruffEnvironment{
"extras": "",
"marker": "extra == \"dev\"",
"requires_python": ">=3.12",
"evaluation": "NOT_EVALUATED"
} | ruff>=0.1; extra == "dev" | runtime |
bdist_wheel · 24.49 KB · Python py3
sdist · 29.09 KB · Python source
Shared repository data · GitHub
Observed since 20 Oct, 23:25 UTC
No superseded metadata states collected. Unchanged observations do not create new revisions.
package_version:beffec820c24ea0208e4c45c55b96d8d6bd957ec542c0eddcc7fb7c8d08a006f