Day 79 of 80 · Saturday · Learning

Skills you did not install - claude.ai sync arrived in 2.1.275Capability

Claude Code 2.1.275 started syncing the skills and plugins enabled on your claude.ai account into terminal sessions. Check what arrived, and opt out if it is not yours.

Catch-up progress
79/80
Why this matters to you

The 8-28 audit shelved fifty skills to cut per-session context load. A sync can quietly put unaudited ones back. You are on 2.1.276; 2.1.278 is current.

Every skill loaded into a session costs tokens on every turn, whether or not it fires. That is why the roster is curated and why the skill-addition rule says read the SKILL.md and scripts first. Since 2.1.275, signing in with a Claude account also pulls in whatever skills and plugins are enabled on claude.ai - a second source of context you did not choose at the terminal.

Two settings switch it off: syncClaudeAiSkills: false and syncClaudeAiPlugins: false in ~/.claude/settings.json. Edits to a synced skill are not saved back to the account; the tool result says so. The ListPlugins tool lists account plugins, not the ones installed with /plugin.

Two other lines in this window touch your headless jobs. 2.1.277: claude -p sessions that could hang with no result after an internal error now report the error and exit 1 - the watchdog wrappers already treat a non-zero exit as failure, so this turns a silent hang into a logged one. Also 2.1.277: headless start-up no longer waits on the per-directory CLAUDE.md lookup. 2.1.274 fixed claude agents losing --model and --effort after an auto-update relaunch.

Worked example

Compare what a session sees with what is on disk, then opt out.

claude --version
ls ~/.claude/skills | grep -v _shelved | wc -l
# inside a session:  /skills

# opt out (merge into the existing JSON, do not replace it)
python3 - <<'PY'
import json,pathlib
p=pathlib.Path.home()/'.claude/settings.json'; d=json.loads(p.read_text())
d['syncClaudeAiSkills']=False; d['syncClaudeAiPlugins']=False
p.write_text(json.dumps(d,indent=2)+'\n'); print('written')
PY
▶ Do it now
  1. Open a session, type /skills, and compare against the ls count.
  2. If anything foreign appears, run the opt-out block. If nothing does, leave the keys out - fewer settings is better.
  3. Run claude update and confirm 2.1.278 with claude --version.

Gotchas

Go deeper: Claude Code changelog
One-card takeaway

Context you did not choose is still context you pay for every turn.