Update Skills
Pull the latest code for your installed channel and provider skills by re-applying them from upstream.
What it does
- Detects which channel and provider skills are wired into your tree
- Re-applies each selected skill through its own idempotent apply step
- Refreshes copied-in code without merging any branch or losing customizations
- Leaves .env credentials, barrel wiring, and DB state untouched
- Validates with build and tests, and rebuilds the container image when needed
- Requires a clean working tree before it runs
What you'll need
- NanoClaw installed and running
- One or more channel or provider skills already installed
- A clean git working tree
- An origin remote pointing at the NanoClaw upstream
Install
/update-skills How it works
Each NanoClaw skill is a self-installing additive unit. Channel and provider skills copy their code into your tree from a long-lived upstream branch — channels or providers — using git fetch origin <branch> followed by git show origin/<branch>:path > path. Because every apply is idempotent, updating a skill just means re-running its own apply: it re-fetches the latest files and overwrites the copied-in code, so newer versions land additively.
The /update-skills skill orchestrates that across everything you have installed. It never merges a branch and never touches your local customizations, credentials, or database state — it only refreshes each skill’s own code files.
Setup
The skill runs in a few phases:
- Preflight — runs
git status --porcelainand stops if the working tree is dirty, telling you to commit or stash first. It then checksgit remote -vand confirmsoriginpoints at a NanoClaw upstream (the default ishttps://github.com/nanocoai/nanoclaw.git), and fetches the skill branches withgit fetch origin channels providers --prune. - Detection — reads
src/channels/index.tsandsrc/providers/index.ts, collecting eachimport './<name>.js';line (excludingcli). Each imported name maps to its/add-<name>skill. Operational and utility skills under.claude/skills/copy no code into the tree, so they’re listed for reference only. - Selection — presents the installed channel and provider skills and lets you multi-select which to re-apply, or skip.
- Re-apply — processes one skill at a time, invoking each skill’s own
/add-<name>apply. That apply runs its own pre-flight, fetches the latest files from upstream, overwrites the copied-in code, and installs any pinned dependency. If a skill’s apply reports a problem, it’s recorded and the run continues with the rest. - Validation — runs
pnpm run buildandpnpm test. If the re-apply changed any files undercontainer/, it rebuilds the agent image with./container/build.shso new sessions pick up the new code.
At the end you get a summary of the skills re-applied, anything skipped or that reported a problem, and the new HEAD from git rev-parse --short HEAD.
Tips
- Only code-carrying skills — channels and providers — can be refreshed this way. If none are installed, the skill tells you there’s nothing to update and stops.
- The container rebuild is what makes a provider’s runtime fix live, not the file copy. Skill code that lives in the container keeps running the old image until
./container/build.shfinishes. - Each channel and provider ships its own registration test, which runs as part of
pnpm testand asserts the barrel still registers the adapter against the freshly fetched code. - If build fails, the skill only fixes issues clearly caused by the refreshed code — missing imports or type mismatches — and won’t refactor unrelated code.
- If the service is running, restart it afterward so it picks up the refreshed code.