Claude Codeでclaude.aiのスキル同期を止める設定
syncClaudeAiSkills・syncClaudeAiPluginsをfalseにすると、claude.aiアカウントのスキルとプラグインの端末同期を止められます。1件だけ止める方法と.trash/の扱いも載せました。
Claude Codeでclaude.aiのスキル同期を止める設定
Claude Codeは、claude.aiアカウントでサインインした端末セッションに、そのアカウントで有効なスキルとプラグインを自動でダウンロードします。これを止めるキーがsyncClaudeAiSkillsとsyncClaudeAiPluginsです。2つは独立していて、スキルだけ・プラグインだけを個別に止められます。マーケットプレイス側のskills配列がweb版で効かない報告は別記事にあります。組織が必須にしたプラグインの拒否はdisableの拒否の記事で扱います。
同期が入ったバージョンは、公式ページで書き分けがあります。v2.1.275のchangelogは「端末セッションへの同期を追加し、2つのキーでオプトアウトできる」と記します。スキルのページとプラグインのページは「端末同期はv2.1.273以降が必要」と書いています。手元の版が古いときは、v2.1.275以降に上げると両方の記述に当てはまります。
同期されているかを先に確かめる
止めるかどうかは、実際に何が入っているかを見てから決められます。端末セッションのスキルは~/.claude/skills/synced/に入り、/skillsのメニューではclaude.ai syncのグループに並びます。プラグインは<name>@syncedという名前で読み込まれ、/pluginのInstalledタブから見えます。
同期の有無を確かめて止める流れ
- 1
/skillsを開く
claude.ai syncのグループにスキルがあれば、そのセッションで同期が動いています。 - 2
止める範囲を選ぶ
全件ならユーザー設定の2つのキー、プラグイン1件だけなら
claude plugin disableを使います。スキル1件だけはclaude.ai側の設定です。 - 3
Claude Codeを再起動する
ユーザー設定で
falseにしてから次に起動したとき、同期済みのスキル・プラグインが.trash/へ移動します。 - 4
/skillsをもう一度開く
claude.ai syncのグループが消えていれば、止まっています。
syncClaudeAiSkillsとsyncClaudeAiPluginsが止めること
syncClaudeAiSkillsはスキルの同期、syncClaudeAiPluginsはプラグインの同期を担当します。既定値は未設定で、claude.aiアカウントでサインインしたセッションは両方を同期します。falseを設定すると、その項目のダウンロードが止まり、すでに同期済みのものも読み込まなくなります。trueは未設定と同じ扱いで、オフになっている環境をオンへ戻す効果はありません。
同期が動くのは、Cowork・クラウドセッションと、端末でclaude.aiアカウントを使ってサインインしたセッションです。
ユーザー設定への書き方
止めたい範囲に応じて、ユーザー設定ファイル~/.claude/settings.jsonに次のキーを追加します。
{
"syncClaudeAiSkills": false,
"syncClaudeAiPlugins": false
}falseが効くのは、ユーザー設定・ローカル設定・managed settings(管理設定)と、--settingsフラグで渡すファイルです。プロジェクトの.claude/settings.jsonに書いたfalseは無視されます。共有リポジトリのプロジェクト設定では、他のメンバーの同期を止められません。組織全体で止めたい場合は、管理者がmanaged settingsに同じキーを書きます。
syncClaudeAiPluginsはv2.1.273以降が必要です。それ以前の版でサインインした場合は、Claude Codeがサインインを更新するまでプラグインの同期に使えません。すぐ使いたいときは/loginをやり直すと、次の起動からプラグインが同期されます。claude.ai側で有効になるプラグインはClaude.aiのプラグイン機能とはにまとめています。
同期はセッションの起動を遅らせません。ダウンロードを待つのはClaudeがそのスキルを実際に呼び出す瞬間だけなので、短い非対話実行は新しいスキルのダウンロードより先に終わることがあります。非対話セッションで同期を待たせたい場合は、2つのキーとは別に環境変数CLAUDE_CODE_SYNC_SKILLSを使います。-p実行でスキル一覧の取得を待たせる設定です。タイムアウトの調整はCLAUDE_CODE_SYNC_SKILLSのタイムアウト設定にまとめています。プラグインにはCLAUDE_CODE_SYNC_PLUGIN_INSTALLという同種の変数があり、-p実行でインストール完了を待ちます。
スキルとプラグインで同期のタイミングが違う
同じ「同期」でも、スキルとプラグインではClaude Codeの動き方が異なります。
端末セッションの同期の違い
スキル
セッション開始時にバックグラウンドで~/.claude/skills/synced/へダウンロードし、動作中も約10分ごとにclaude.ai側の変更をチェックします。追加・編集・オフが見つかると、再起動なしでセッションに反映されます。
プラグイン
起動時にバックグラウンドで1回だけ同期します。変更が入ると「Plugins changed. Run /reload-plugins to activate.」と表示され、/reload-pluginsを実行するまで反映されません。claude.aiで新しく有効にしたものは、次の起動でダウンロードされます。
同期されたスキルのファイルをClaudeが書き換えても、claude.aiアカウント側には保存されず、次の同期で上書きまたは削除されます。直したいときはclaude.ai側で更新します。
Coworkセッションでは、スキルもプラグインもセッション開始時にClaude Codeがその環境へダウンロードします。ここで同期されるスキルは、本体に同梱されたバンドルスキル(/code-reviewなど)とは別物です。claude.aiアカウント側で有効・無効を切り替えるスキルを指します。pdf・xlsxなどAnthropic製の一部は、アカウント側で個別にオフにできず常に同期されます。マシン単位で止めるならsyncClaudeAiSkills: falseを使います。組織全体で同期だけを止めるなら、管理者がmanaged settingsに同じキーを書きます。claude.aiでSkillsをオフにすると、同期でなくスキル機能そのものが止まります。
同期したスキルはローカルのスキルと同じ扱いではない
同期を止めるかどうかの判断では、同期されたスキルの実行がローカルのスキルと同じではない点も効いてきます。Claude Codeは、自分で書いたのでなくアカウントからダウンロードしたスキルに、追加の制限を課しています。
frontmatterはどのセッションでも通常どおり扱われ、allowed-toolsの許可も普段の権限フローに乗ります。一方で説明文などの表示テキストは、制御文字を取り除き、Claude Code内部の書式を装えないよう山括弧をエスケープするサニタイズが入ります(v2.1.228以降)。
スキル本文の扱いはセッションの種類で変わります。クラウドセッションは隔離コンテナで動くため、ローカルのスキルと同じ挙動です。デスクトップのCoworkセッションもほぼ同じですが、!から始まるコマンド行だけはdisableSkillShellExecutionのプレースホルダーに置き換わります。
それ以外の、自分のマシン上で動く通常の端末セッションでは制限が強くなります。!コマンドは実行されずそのままの文字列としてClaudeに渡り、@参照によるファイル添付も行われません。${CLAUDE_PROJECT_DIR}・${CLAUDE_SESSION_ID}も展開されないまま渡ります(v2.1.228以降)。ダウンロードした外部のスキルが、知らないうちにマシン上でシェルコマンドを実行することはありません。
同期を止めるのでなく、実行の許可だけを絞る道もあります。同期されたスキルはanthropic-skillsという専用の名前空間に入ります。Skill(anthropic-skills:pdf)と書けばそのスキルだけ、Skill(anthropic-skills *)なら同期スキル全体をプロンプトなしで承認できます。Skill(anthropic *)のように名前空間の外の接頭辞ではanthropic-skills:pdfに一致しません。
この名前空間は予約済みです。自作のスキルフォルダーや.claude/commands/のファイルにanthropic-skillsかanthropic-skills:始まりの名前を付けると、読み込まれません。syncedという名前のスキルフォルダーも、大文字小文字を問わず個人・プロジェクト・エンタープライズのどこでも読み込まれません。~/.claude/skills/synced/が同期のダウンロード先だからです。
表示名はバージョンで変わっています。v2.1.269より前の同期スキルは短い名前だけで、v2.1.269からv2.1.280までは/メニューや/skillsに常にフルネーム(/anthropic-skills:<name>)で並びました。v2.1.281以降は、短い名前を使う別のコマンドがない限り短い名前で表示されます。
1つだけ止めたいときの選択肢
syncClaudeAiSkills・syncClaudeAiPluginsはいずれもマシン単位で全件を止めるキーです。1件だけ止めたいときの選択肢は、スキルとプラグインで対称ではありません。
| 止めたい範囲 | 方法 |
|---|---|
| 全スキルの同期 | 方法ユーザー設定でsyncClaudeAiSkills: false |
| 全プラグインの同期 | 方法ユーザー設定でsyncClaudeAiPlugins: false |
| プラグイン1件だけ | 方法シェルでclaude plugin disable <name>@synced、またはセッション内/pluginのInstalledタブから無効化 |
| スキル1件だけ | 方法claude.aiのスキル設定でそのスキルをオフにする |
| プロジェクトで1件のプラグインだけ常時オフにする | 方法プロジェクトの.claude/settings.jsonに"<name>@synced": falseをコミットする |
| 組織が必須指定したプラグイン | 方法この表の方法では止められない。管理者への相談が必要 |
プラグイン1件の無効化は、Claude Code v2.1.289で実際に動かすと次のようになります。HOMEとCLAUDE_CONFIG_DIRを空の一時ディレクトリに差し替えた環境で、存在しないdemo@syncedを指定しました。
$ claude plugin disable demo@synced
✔ Successfully disabled plugin: demo
$ cat "$CLAUDE_CONFIG_DIR/settings.json"
{
"enabledPlugins": {
"demo@synced": false
}
}この空の環境では、ユーザー設定のenabledPluginsにfalseが書き込まれました。--scopeでuser・project・localを選べ、省略すると書き込み先は自動判定です。同じ"<name>@synced": falseをプロジェクトの.claude/settings.jsonにコミットすれば、その環境の全員に対してそのプラグインだけを止められます。
組織が必須(required)に指定したプラグインは、この方法では無効化できません。claude plugin disableはこの場合、次のメッセージで拒否します。claude plugin listにはrequired by your orgと表示されます。
Plugin "<name>@synced" is required by your organization and can't be disabled here. Contact your admin to change it.名前が衝突しているときは、設定を触らなくても実質的に止まる場合があります。同期と同じ名前のプラグインをほかの経路ですでに有効にしていると、Claude Codeはそちらを読み込み、同期版は読み込まれなかったものとして扱います。同期版を使いたいときは、自分で入れた側を無効にします。
そもそも同期が動いていない条件
syncClaudeAiSkills・syncClaudeAiPluginsを設定しなくても、次のセッションでは同期そのものが起きません。
- APIキー認証、または
ANTHROPIC_AUTH_TOKEN・CLAUDE_CODE_OAUTH_TOKEN・apiKeyHelperスクリプトで資格情報を渡すセッション(/loginによるサインインを使っていない) - Amazon Bedrockなど、Anthropicへの機能フラグ取得を行わないセッション。
CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICを設定した場合も同じ - bareモード、または
--safe-modeで起動したセッション - 組織のmanaged settingsが
strictPluginOnlyCustomization: ["skills"]でスキルの取得元をプラグイン・管理ソースに限定している場合(スキルの同期のみ) --setting-sourcesフラグでuserを含まないリストを指定したセッション
claude --helpには、--bare・--safe-mode・--setting-sourcesの3つが載っています。--setting-sourcesに渡せるのはuser・project・localのカンマ区切りで、userを外すと同期の対象外です(v2.1.289で確認)。/loginでサインインし直した場合、同期を始めるにはセッションの再起動が必要です。
オフにしても同期済みのファイルは即消えない
falseにすると、Claude Codeはダウンロードをやめます。次の起動では、同期済みのスキル・プラグインも読み込みません。ファイルは削除されず、~/.claude/skills/.trash/・~/.claude/plugins/.trash/へ移動するだけなので、設定を戻す前でも中身を確認できます。移動するのはユーザー設定かmanaged settingsでfalseにした場合です。ローカル設定や--settingsでは、読み込みが止まるだけでファイルはそのまま残ります。
この.trash/は、保持期間の自動削除の対象です。削除までの日数は設定キーcleanupPeriodDaysが決め、既定値は30日、最小値は1日です。組織がclaude.ai側でSkillsをオフにしたときも、ダウンロード済みのスキルは同じ.trash/へ移動し、プラグインの同期も止まります。オンに戻すと次の同期でまたダウンロードされます。
同期を止めていない間は、以前の同期でダウンロード済みのスキルは、claude.aiに接続できない状況でも読み込まれ続けます。サインアウトした場合は、cleanupPeriodDaysのあいだ更新されなかった同期スキルが、次の起動で回収用のごみ箱へ移ります。
まとめ
分かれ目は、残したいものが混ざっているかどうかです。混ざっていなければ2キーで足ります。混ざっているなら1件ずつ外しますが、組織が必須にしたプラグインだけは自分では外せません。