0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude Code v2.1.129-136 新機能解説 — plugin-url・project purge・effortフック

0
Posted at

Claude Code拡張機能の概念図

はじめに

Anthropicは2026年5月にClaude Code v2.1.126からv2.1.136にかけて、複数の実用的な新機能をリリースしました。この記事では、エンジニアが日々の開発で活用できる主要7機能を公式ChangeLogをもとに解説します。

この記事で解説する機能

  • --plugin-url / --plugin-dir: ZIPアーカイブによるプラグイン配布
  • claude project purge: プロジェクト状態の完全削除
  • Hooks の effort level 受信: effort.level$CLAUDE_EFFORT
  • settings.autoMode.hard_deny: Auto モードの完全ブロックルール
  • CLAUDE_CODE_SESSION_ID: Bash サブプロセスとの連携
  • worktree.baseRef: ワークツリー分岐元の制御
  • claude auth login のターミナルOAuth対応

対象読者

  • Claude Code をチームや CI/CD で活用しているエンジニア
  • プラグイン配布や Hooks 自動化の仕組みを整備したい方
  • Auto モードの権限制御を強化したい方

前提環境

  • Claude Code: v2.1.129 以降
  • Node.js: v20.x 以降
  • Claude Pro / Max / Team / Enterprise プランのいずれか

TL;DR

  • --plugin-url <url> で URL 指定の ZIP プラグインをセッションに読み込める(v2.1.129)
  • claude project purge でトランスクリプト・タスク・ファイル履歴を一括削除できる(v2.1.126)
  • Hookseffort.level フィールドと $CLAUDE_EFFORT 変数でエフォートレベルを受信できるようになった(v2.1.133)
  • settings.autoMode.hard_deny で例外なくアクションを完全ブロックできる(v2.1.136)
  • CLAUDE_CODE_SESSION_ID が Bash ツールのサブプロセスにも自動で渡る(v2.1.132)

1. プラグインのZIP配布 — --plugin-url--plugin-dir

プラグインZIP配布フロー: 開発者→CDN→Claude Code

背景

これまでプラグインはディレクトリ形式での配布が前提でした。v2.1.128 と v2.1.129 の2段階のアップデートで、ZIP アーカイブ形式の配布が標準サポートされました。

v2.1.128: --plugin-dir の ZIP 対応

--plugin-dir フラグがディレクトリだけでなく .zip ファイルを直接受け取れるようになりました。

# ディレクトリ指定(従来)
claude --plugin-dir ./my-plugin

# ZIPアーカイブ指定(v2.1.128以降)
claude --plugin-dir ./my-plugin.zip

v2.1.129: --plugin-url による URL 配布

カレントセッション限定で、URL 指定の ZIP プラグインを読み込む --plugin-url フラグが追加されました。

# URLからプラグインを取得してセッションに適用
claude --plugin-url https://example.com/my-team-plugin.zip

チームで共有するプラグインを社内サーバーや CDN に置いておけば、メンバーがローカルにダウンロードする手間なく統一設定を配布できます。

プラグインマニフェストの変更点

v2.1.129 から、プラグインマニフェスト内の themesmonitors フィールドは experimental 以下に移動しました。既存のプラグインを使っている場合はマニフェスト形式を確認してください(公式ドキュメント: Claude Code Plugin Manifest)。

{
  "name": "my-plugin",
  "version": "1.0.0",
  "experimental": {
    "themes": [],
    "monitors": []
  }
}

2. claude project purge — プロジェクト状態の完全削除(v2.1.126)

何が削除されるか

claude project purge コマンドは、プロジェクト単位で Claude Code が蓄積した以下のデータを削除します。

削除対象 内容
トランスクリプト セッションの会話履歴
タスク 実行済み・未完了のタスク情報
ファイル履歴 操作したファイルの変更履歴
設定エントリ プロジェクト固有の設定キャッシュ

基本的な使い方

# カレントディレクトリのプロジェクトを削除
claude project purge

# 指定パスのプロジェクトを削除
claude project purge /path/to/project

# 確認なしで削除(CI/CDなど自動化環境向け)
claude project purge --yes

# 削除対象を確認だけする(ドライラン)
claude project purge --dry-run

# 対話的に削除するファイルを選択
claude project purge --interactive

# 全プロジェクトを削除
claude project purge --all

活用シナリオ

開発環境のリセット: 大きなリファクタリング後や別機能の着手前に、古いコンテキストをクリアしてクリーンな状態で再開できます。

セキュリティ要件への対応: 機密プロジェクトのトランスクリプトを定期的に削除するポリシーを CI/CD に組み込めます。

# CIパイプラインの後処理例
claude project purge --yes --all

3. Hooks の effort level 受信(v2.1.133)

effortレベルとは

Claude Code の effort レベル(low / medium / high / xhigh / max)は、Claude がタスクにどれだけのリソースと思考時間を使うかを制御します。/effort コマンドまたは起動フラグで設定できます。

# effortレベルを設定して起動
claude --effort high

# 対話中に変更
/effort xhigh

Hooks での受信方法

v2.1.133 以降、Hooks スクリプトは現在のエフォートレベルを2つの方法で受け取れます。

1. JSONフィールド effort.level(PreToolUse / PostToolUse など)

{
  "tool_name": "Bash",
  "tool_input": { "command": "npm test" },
  "effort": {
    "level": "high"
  }
}

2. 環境変数 $CLAUDE_EFFORT(Bashツールのサブプロセス内でも利用可能)

# Hookスクリプト内での使用例
#!/bin/bash
echo "Current effort: $CLAUDE_EFFORT"

if [ "$CLAUDE_EFFORT" = "max" ]; then
  echo "最大エフォートで実行中 — 詳細ログを有効化"
  export VERBOSE_LOG=1
fi

活用例: エフォートに応じてテストの深さを変える

import json
import sys
import os

hook_input = json.load(sys.stdin)
effort = hook_input.get("effort", {}).get("level", "medium")

# effortがhigh以上ならintegrationテストも実行
if effort in ("high", "xhigh", "max"):
    print(json.dumps({
        "decision": "approve",
        "reason": f"effort={effort}: integration tests enabled"
    }))
else:
    print(json.dumps({
        "decision": "approve",
        "reason": f"effort={effort}: unit tests only"
    }))

4. settings.autoMode.hard_deny — 無条件ブロックルール(v2.1.136)

Auto モードの制御体系

Claude Code の Auto モード(--auto フラグ)では、設定ファイルで許可・拒否のルールを定義できます。v2.1.136 以前の deny ルールは、ユーザーの意図やより優先度の高い allow ルールで上書きできました。

hard_deny はこの上書き機構をバイパスし、例外なく常にブロックします。

設定方法

.claude/settings.json に以下を追加します。

{
  "autoMode": {
    "hard_deny": [
      {
        "tool": "Bash",
        "pattern": "rm -rf /*"
      },
      {
        "tool": "Write",
        "path_pattern": "/etc/*"
      },
      {
        "tool": "Bash",
        "pattern": "git push --force"
      }
    ]
  }
}

deny との違い

設定 allowルールで上書き可能 ユーザー承認で上書き可能
deny △ (高優先度allowで上書き可)
hard_deny

hard_deny は「絶対に自動実行してはいけないアクション」に使用します。例えば、本番DBへの直接書き込みや、秘密鍵ファイルへのアクセスなどが該当します。


5. CLAUDE_CODE_SESSION_ID — Bash サブプロセス連携(v2.1.132)

v2.1.132 以降、Claude Code が Bash ツールを実行する際、すべてのサブプロセスに CLAUDE_CODE_SESSION_ID 環境変数が自動で設定されます。

# Bashツール内でセッションIDを取得
echo "Session: $CLAUDE_CODE_SESSION_ID"
# 例: Session: sess_01XYZ...

活用例

ログの紐付け: 実行ログにセッションIDを付与することで、後からどのセッションが何を実行したかを追跡できます。

#!/bin/bash
# deploy.sh
echo "[${CLAUDE_CODE_SESSION_ID}] デプロイ開始: $(date)" >> /var/log/claude-deploy.log
# ... デプロイ処理
echo "[${CLAUDE_CODE_SESSION_ID}] デプロイ完了: $(date)" >> /var/log/claude-deploy.log

外部サービスとの連携: Webhookやモニタリングサービスにセッション情報を送信する際のトレーサビリティが向上します。

# セッション情報を外部APIに通知(Hooks から呼び出す例)
curl -X POST https://monitoring.example.com/events \
  -H "Content-Type: application/json" \
  -d "{\"session_id\": \"$CLAUDE_CODE_SESSION_ID\", \"event\": \"task_start\"}"

6. worktree.baseRef — ワークツリー分岐元の制御(v2.1.133)

Claude Code の EnterWorktree 機能でワークツリーを作成する際の分岐元を制御する設定です。

設定値

.claude/settings.json に追加します。

{
  "worktree": {
    "baseRef": "fresh"
  }
}
挙動
fresh(デフォルト) origin/<デフォルトブランチ> から分岐(最新のリモートを反映)
head ローカルの現在の HEAD から分岐(ローカル未コミット変更を含む)

fresh の推奨シナリオ: CI/CD やレビュー用のクリーンなブランチが必要な場合。

head の推奨シナリオ: ローカルで進めている変更を土台に別機能の実装を並行して始めたい場合。


7. claude auth login のターミナルOAuth対応(v2.1.126)

WSL2・SSH・コンテナなどブラウザコールバックが localhost に届かない環境での認証が改善されました。

claude auth login
# ブラウザで認証後、表示されたコードをターミナルに貼り付け
# Enter the authorization code: [ここにコードをペースト]

以前はブラウザのコールバック URI が localhost を指すため、WSL2 やリモートサーバー上ではブラウザ認証が完了できないケースがありました。v2.1.126 以降は認証コードをターミナルに直接入力できます。


その他の改善点

セキュリティ修正(v2.1.126)

allowManagedDomainsOnly および allowManagedReadPathsOnly 設定が、優先度の高い設定ソースに sandbox ブロックがない場合でも正常に適用されるようになりました。この設定を使用している場合は早めにアップデートを推奨します。

MCP 改善(v2.1.128)

  • /mcp コマンドが各サーバーのツール数を表示
  • ツール数ゼロのサーバーをフラグ表示(設定ミスを即座に検出可能)
  • workspace が予約済みサーバー名として登録(競合防止)

パフォーマンス(v2.1.133)

サブエージェントの進捗サマリーでプロンプトキャッシュを活用するようになり、cache_creation_tokens が大幅に削減されました。マルチエージェント構成でのコスト最適化に直結します。


まとめ

Claude Code v2.1.126-136 のアップデートを整理します。

バージョン 主要機能
v2.1.126 claude project purge、OAuth ターミナル認証、セキュリティ修正
v2.1.128 --plugin-dir ZIP対応、/mcp ツール数表示
v2.1.129 --plugin-url URL配布、CLAUDE_CODE_PACKAGE_MANAGER_AUTO_UPDATE
v2.1.132 CLAUDE_CODE_SESSION_IDCLAUDE_CODE_DISABLE_ALTERNATE_SCREEN
v2.1.133 worktree.baseRef、Hooks の effort.level 受信、キャッシュ最適化
v2.1.136 settings.autoMode.hard_deny、MCP /clear 後消失バグ修正

特に --plugin-url によるプラグイン配布の標準化Hooks の effort level 受信 は、チーム規模での Claude Code 活用において設定の一元管理と自動化ルールの精緻化を大きく前進させる機能です。

公式ChangeLogを定期的に確認して、最新機能をワークフローに取り込んでいきましょう。

参考リンク

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?