本文へスキップ
Claude Media
Claude Code v2.1.0 — Skillが独立した実行ユニットに昇格、Hooksが機能ファイルに同梱可能に

Claude Code v2.1.0 — Skillが独立した実行ユニットに昇格、Hooksが機能ファイルに同梱可能に

Claude Code v2.1.0はv2.1シリーズの起点となる大型リリース。Skillのホットリロード、context: fork、agent / Skill / スラッシュコマンドfrontmatterへのHooks同梱、Bash権限のワイルドカード対応により、拡張ユニットの設計が一段階整理されました。

読了目安 約9

このリリースで何ができるようになるか

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 / Yp / P でヤンク / ペースト
  • テキストオブジェクト: iw aw iW aW i" 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 を棚卸しする区切りとして扱うとちょうどよい節目になります。

この記事を共有:XLinkedIn