Claude Code v2.1.0 — Skillが独立した実行ユニットに昇格、Hooksが機能ファイルに同梱可能に
Claude Code v2.1.0はv2.1シリーズの起点となる大型リリース。Skillのホットリロード、context: fork、agent / Skill / スラッシュコマンドfrontmatterへのHooks同梱、Bash権限のワイルドカード対応により、拡張ユニットの設計が一段階整理されました。
このリリースで何ができるようになるか
Claude Code v2.1.0は、v2.1シリーズ全体の土台を敷いた大型リリースです。Skill / Hooks / 権限という3つの拡張機構が同時に再編され、それぞれが独立した「配布可能な拡張ユニット」として書きやすくなりました。
- Skillが「独立した実行ユニット」に昇格: ホットリロード、フォークサブエージェントでの実行(
context: fork)、agent種別の指定が同時に追加され、Skillが単なるプロンプト断片ではなくなりました - Hooksをagent / Skill / スラッシュコマンドのfrontmatterに同梱できる: 拡張の配布単位とフックのスコープが一致し、
settings.jsonをいじらずに副作用を制御できます - Bash権限がワイルドカードで書けるようになる:
Bash(npm *)Bash(* install)のように位置自由でマッチ可能になり、settings.jsonの表現力が上がります - Claudeの応答言語を
language: "japanese"で固定できる: 日本語環境で安定した応答が得られるようになりました
加えて、OAuthトークン / APIキー / パスワードがデバッグログに漏出し得るセキュリティ問題が修正されており、v2.0系から更新する明確な動機があります。
あなたの開発フローはどう変わるか
Skillを作る・配布する人
ホットリロードによって「修正 → セッション再起動 → 試す」のループが「修正 → 即試す」に短縮されます。~/.claude/skills または .claude/skills 配下のファイルを書き換えると、現セッションのまま反映されます。
# .claude/skills/my-skill.md frontmatter
---
name: my-skill
context: fork
agent: explorer
---context: fork をfrontmatterに書くと、親セッションの文脈を汚さずに重い処理をフォークしたサブエージェントへ逃がせるようになります。agent フィールドで実行エージェント種別を指定することで、Skillごとに役割の異なるエージェントを充てる設計も可能です。
settings.json を細かく書いているチーム
Bash 権限ルールでワイルドカードが任意位置に書けるようになります。
{
"permissions": {
"allow": [
"Bash(npm *)",
"Bash(* install)",
"Bash(git * main)"
]
}
}あわせて git -C /path log のようにグローバルオプションを挟む書式でも Bash(git log:*) ルールに正しくマッチするよう、プレフィックス抽出が修正されました。Task(AgentName) 構文で特定エージェントを disallowedTools に並べる書き方もサポートされ、エージェント単位の無効化が settings.json で完結します。
Hooksをプラグイン / Skill同梱で配りたい人
agent / Skill / スラッシュコマンドのfrontmatterに PreToolUse PostToolUse Stop のHooksが書けるようになります。once: true で1回限りのフックも宣言できます。これまで settings.json にグローバル定義していたHooksを、機能ファイルに同梱して配布する書き方に切り替えられます。
MCPサーバを長時間運用している人
MCPサーバが list_changed 通知を送ることで、再接続なしに利用可能なツール / プロンプト / リソースを動的更新できるようになりました。デプロイで新しいAPIが生えるケースなど、MCPの構成が動く運用で文脈が途切れにくくなります。
日本語でClaude Codeを使う人
language 設定が追加され、language: "japanese" のように明示することで応答言語を固定できます。CJK文字を含む複数行プロンプトで余分な空行が入る描画バグも同時に修正されています。
主な変更点
Skillの運用構造
- Skillホットリロード:
~/.claude/skills.claude/skillsのファイルを変更すると即時反映。再起動不要 context: fork対応: Skill / スラッシュコマンドをフォークサブエージェントの文脈で実行可能agentフィールド: Skillにどのエージェント種別で実行するかを宣言/skills/配下が標準で/メニューに表示: 隠したい場合はfrontmatterでuser-invocable: false- Skill候補が利用頻度・最近性でソート: よく使うSkillが上に来るようになりました
/contextのSkillトークン見積りが正確化: frontmatterのみ読み込みを反映
Hooksの配置先
- agent / Skill / スラッシュコマンドのfrontmatterにHooks: ライフサイクル単位でフックをスコープ化
once: trueオプション: 1回だけ走らせたいフックを宣言- プラグイン経由のprompt / agentフック: コマンドフックだけだったのがprompt / agentにも拡張
権限・ツール制御
- Bash権限ワイルドカード:
*をルール内任意位置で利用可能 - Bashプレフィックス抽出修正:
git -C /path logがきちんとBash(git log:*)にマッチ Task(AgentName)構文:settings.json--disallowedToolsで特定エージェントを止められる--toolsの対話モード対応: セッション開始後にビルトインツールを絞り込める- planモード突入時の権限プロンプト撤去:
/planで軽く入れます
新しいスラッシュコマンド・CLI
/plan: プロンプトから直接planモードへ/teleport/remote-env: claude.aiサブスクライバー向けのリモートセッション操作CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS環境変数: ファイル読み取りトークン上限の上書きIS_DEMO環境変数: メールと組織名をUI上で隠せる(配信・録画用途)respectGitignore設定: プロジェクト別に@メンションファイルピッカーの挙動を制御
Vimモード
;,でf/F/t/Tモーション繰り返しyオペレータとyy/Y、p/Pでヤンク / ペースト- テキストオブジェクト:
iwawiWaWi"a"i'a'i(a(i[a[i{a{ >><<でインデント / デデント、Jで行結合
ターミナル統合
- Shift+EnterがiTerm2 / WezTerm / Ghostty / Kittyで標準動作: 設定ファイル変更不要
- iTerm2でCmd+Vによる画像貼り付け: Ctrl+Vにマップされます
- Alt+B / Alt+Fのワードナビ: iTerm2 / Ghostty / Kitty / WezTermで動くように
- 終了時のキーボードモードリセット: ターミナルが壊れたまま戻る問題が解消
MCP
list_changed通知サポート: 再接続なしでツール / プロンプト / リソースを更新- Atlassian MCP統合: より信頼性の高いstreamable HTTPがデフォルトに
セキュリティ・認証
- デバッグログ漏出修正: OAuthトークン / APIキー / パスワードがログに出る不具合を修正
- OAuthリフレッシュ修正: サーバ側expired / ローカルvalidの不一致でリフレッシュが発火しない問題を解消
- トークンキャッシュ競合修正: 並行リフレッシュでkeychainから古いトークンが読まれる競合を解消
セッション再開
-c/--resumeでファイルとSkillが検出されない問題を修正- 409コンフリクトからの復旧と並行ツール実行で生じる残留tool result起因のresume失敗を修正
企業利用
- AWS Bedrockサブエージェント: EU/APACクロスリージョン推論の設定継承が直り、IAM限定環境での403を解消
- Bedrock / Vertexのモデルピッカー:
--model haiku選択時の表示不一致を修正
ファイル書き込み
- Writeツールの権限: ハードコードされた
0o600ではなくumask尊重に変更 $()コマンド置換のパースエラー修正、バックスラッシュ継続の複数行コマンド誤分割修正
UI / 可観測性
- Ctrl+B統一: bashコマンドとエージェントの両方をまとめてバックグラウンド化
- Ctrl+Oトランスクリプトにリアルタイムthinkingブロック表示
- コンテキスト可視化でSkillが独立カテゴリに
- スラッシュコマンド補完: 入力途中の
/でも発火 sedインプレース編集: diffプレビュー付きのファイル編集として描画
日本語環境
language設定追加:language: "japanese"のように応答言語を固定可能- CJK複数行プロンプトの空行混入を修正
v2.0系からv2.1系への遷移が示すもの
v2.1.0を「v2.0系の積み増し」と捉えると本質を見落とします。v2.0系でもSkill / Hooks / 権限は段階的に拡張されてきましたが、v2.1.0はそれらを「配布可能な拡張ユニット」として束ね直した節目です。
- Skill: プロンプト断片ではなく、独立した実行ユニットへ(ホットリロード +
context: fork+ agent指定 + frontmatter Hooks) - Hooks: グローバル設定から「機能同梱」へ(agent / Skill / スラッシュコマンドのfrontmatterに書ける)
- 権限: allowlistから「マッチング可能なポリシー」へ(Bashワイルドカード、
Task(AgentName)、対話モードの--tools)
この3つは相互に絡んでいます。Skillパックを配布する側は、必要なツールのallowlistと副作用を遮るフックを同じファイルに書けるようになり、受け取る側は settings.json を汚さずに取り込めます。後続のv2.1系パッチ(v2.1.46のMCPコネクタ共有やv2.1.69の運用磨き込み)は、この土台があるからこそ成立している流れです。
まとめ
- Skill開発者・配布者: ホットリロードと
context: forkで開発体験が変わるため、即更新の価値が高いリリースです settings.jsonで権限管理しているチーム: BashワイルドカードとTask(AgentName)で既存ルールを書き直すタイミングです- デバッグログを収集している運用: 機微情報漏出の修正のため、ログのアクセス権・保存ポリシーと合わせて要確認
- 日本語常用ユーザー:
language設定とCJK描画修正の合わせ技で、日本語入力の摩擦が下がります - 企業利用 / Bedrock・Vertex: クロスリージョン推論の継承不具合が解消されているため、IAM限定環境では更新を推奨
v2.1.0は機能数の多さよりも、「Skillとエージェントをどう配布・運用するか」の設計レイヤーが整理された点に意味があるリリースです。手元のSkillや settings.json を棚卸しする区切りとして扱うとちょうどよい節目になります。
関連する記事
Claude Code をもっと見る →Claude Code v2.1.9 — Hookが追加文脈を返せるようになり、長時間セッションのAPIエラーも解消
Claude Code v2.1.3 — Hook実行時間が10分に拡張、到達不能な権限ルールを検出
Claude Code v2.1.139 — 複数セッションを束ねるエージェント一覧と、目標達成まで走り続ける /goalコマンドの追加
Claude Code v2.1.133 — ワークツリーのベース選択機能と、Hooks/Bashでのeffort連携
Claude Code v2.1.132 — ターミナル全画面表示を切り替え可能に、IDE停止時の安全な終了処理
Claude Code v2.1.128 — MCP接続状態の可視化と、ツール並列実行で兄弟処理が巻き込まれない修正
Claude Code v2.1.118 — Vim Visualモードと、MCP OAuth経路の不具合をまとめて修正
Claude Code v2.1.98 — Vertex AIセットアップウィザードとLinuxサンドボックス強化