Scan the version status of all commonly used tools, generate a numbered report, and update item by item after waiting for a selection.
Core Philosophy
Check only, do not auto-update—show the report to the user, and only act after confirmation. Because blind updates may break the environment (openclaw requires installing additional dependencies after an upgrade, plugins require a restart after an upgrade), the user must be informed about every update.
Not Applicable Scenarios
- Checking only a single tool version → just run
--versionornpm view <pkg> version, this skill is not needed - Installing a new tool → use
brew install/npm install/uv tool install, do not go through the update process
Workflow
Step 0: Discover Omissions
Run scripts/discover.sh, scan the whole system (npm/brew/pip/uv/conda/local-bin), filter out dependency libraries, and do a difference set against tools.json. If any newly discovered tools are found, report them to the user to confirm whether to add them.
The full description of the discovery methodology is in references/scan-methodology.md。
Step 1: Read the Tool List
Read references/tools.json, to get the check method and update command for all tools.
Step 2: Check Versions Item by Item
Execute check commands in parallel by category, comparing installed versions with the latest versions. Check logic:
| Check Source | Command | Description |
|---|---|---|
| npm | npm view <pkg> version |
npm registry latest version |
| brew | brew outdated --json=v2 |
Homebrew outdated check |
| pip | pip3 index versions <pkg> |
PyPI latest version |
| uv | pip3 index versions <pkg> |
PyPI (those installed with uv tool can also be checked) |
| gh release | gh api repos/<owner>/<repo>/releases/latest --jq .tag_name |
GitHub release |
| claude plugins | claude plugins list --json |
Plugin marketplace version |
Step 3: Generate a Numbered Report
Fixed format, one line per item:
[编号] [分类] [状态标记] [名字]
已装: x.x.x → 最新: y.y.y
作用: 中文说明
频繁度: 高/中/低 | 推荐更新: 是/否 | 推荐卸载: 是/否
更新方式: 具体命令
重大变化: (如果有)
Status Markers:
- ✅ Up to date
- ⬆️ Behind (update recommended)
- ⚠️ Far behind (across major versions)
- ❓ Unknown (check failed)
Categories: Core Platform | npm Packages | Homebrew | Python | uv Tools | Plugins | Skills | Runtime
Step 4: Wait for the User's Selection
Prompt at the end of the report:
输入要更新的编号(用逗号或空格分隔),或输入 "all" 全部更新,"q" 退出:
Step 5: Execute Updates
After the user provides the numbers, execute the corresponding update commands item by item in numerical order. After each item is updated, report the result (success/failure).
Notes:
- After updating openclaw, run the maintenance checklist (see below)
- For brew use
brew reinstallnotbrew upgrade(domestic mirror cache sync delay) - After npm updates, no need to
--force - For pip use
pip3 install --upgradeoruv pip install --upgrade - After a plugin update, the Claude Code session must be restarted
- For skills use
npx skills update -g -yto update all (updating individually is not supported)
Maintenance Checklist After Updating openclaw
If the user updated openclaw, remind them to execute:
# 1. 健康检查超时补丁
~/.openclaw/scripts/patch-health-timeout.sh
# 2. 补装 memory 依赖
DEPS_DIR=$(ls -td ~/.openclaw/plugin-runtime-deps/openclaw-*/ | head -1)
cd "$DEPS_DIR" && npm install node-llama-cpp@3.18.1 sqlite-vec
# 3. 重启 gateway
launchctl kickstart -k gui/$(id -u)/ai.openclaw.gateway
# 4. 等60秒冷启动后验证
sleep 60 && openclaw status
Tool List Maintenance
references/tools.json records the metadata of all tools. When adding a new tool, just add an entry to the JSON.
Scripts
scripts/check.sh — automated version check script, outputs results in JSON format for the skill to parse and generate a report.