skills check and skills update commands. These commands use a remote API to detect changes in skill repositories.
Overview
The update system works by comparing the skill folder hash stored in your local lock file against the latest hash from the remote source (e.g., GitHub).1
Read lock file
The CLI reads
~/.agents/.skill-lock.json to get all installed skills and their current skillFolderHash values2
Request fresh hashes
POST skill metadata to the update API at
https://add-skill.vercel.sh/check-updates with forceRefresh: true3
Compare hashes
The API fetches fresh content from GitHub, computes the latest folder hash, and compares it to the hash you provided
4
Return updates
The API returns a list of skills with different hashes (updates available)
Check Command
Theskills check command checks for available updates without installing them.
API Request
The CLI sends a POST request to the update API:Output
Update Command
Theskills update command checks for updates and automatically reinstalls any skills with available updates.
Workflow
1
Check for updates
Same as
skills check - POST to the API with current hashes2
Confirm updates
If updates are found, prompt the user to confirm (unless
-y flag is passed)3
Reinstall skills
For each skill with an update:
- Fetch the latest version from the source
- Compute the new folder hash
- Install to the same agents as before
- Update the lock file with new hash and
updatedAttimestamp
4
Report results
Show success/failure count for updated skills
Example Session
Force Refresh
Why forceRefresh: true?
Both skills check and skills update always send forceRefresh: true in the API request. This ensures the API fetches fresh content from GitHub rather than using its Redis cache.
Tradeoff
Slower
Requires a GitHub API call per skill instead of using cache
Accurate
Always reflects the true current state of the remote repository
Performance Considerations
For repositories with many skills:- The API makes ONE GitHub Trees API call per repository (not per skill)
- Skills from the same repository share a single request
- Typical check time: 1-3 seconds for 10 skills across 3 repositories
Update API Endpoint
Request Schema
array
required
Array of skill metadata objects
boolean
If
CLI always sends:
true, bypass cache and fetch fresh content from GitHubDefault: falseCLI always sends:
trueResponse Schema
array
Array of skills with update information
Lock File Compatibility
Version 3 Required
The update system requires lock file version 3, which introduced theskillFolderHash field.
Migration Path
1
Backup (optional)
If you want to preserve skill names:
2
Run any command
Any CLI command will trigger the lock file wipe:
3
Reinstall skills
Reinstall your skills to populate the new lock file:
How the API Works
The update API performs these steps for each skill:1
Parse source
Extract owner/repo from the source identifier
2
Fetch tree
Call GitHub Trees API to get the entire repository tree:
3
Find skill folder
Locate the tree entry matching the skill path
4
Extract SHA
Get the
sha field from the tree entry (this is the folder hash)5
Compare
Compare the remote SHA with the hash from your request
6
Cache (optional)
If
forceRefresh: false, cache the result in Redis for 5 minutesRate Limiting
The API uses GitHub tokens to avoid rate limits:- Authenticated requests: 5,000 requests/hour
- Unauthenticated requests: 60 requests/hour
Telemetry
The update commands send anonymous telemetry to help improve the CLI:Check Command
Update Command
Telemetry can be disabled by setting
DISABLE_TELEMETRY=1 or DO_NOT_TRACK=1Examples
Check for Updates
Update Skills
Related Documentation
Lock Files
Learn about lock file structure and the skillFolderHash field
Telemetry
See what data is tracked and how to disable it