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.76 完全ガイド 2026年3月版 ── /loop・Voice Mode・MCP Elicitation が開発体験を根本から変える

0
Posted at

Claude Code v2.1.76 完全ガイド 2026年3月版 ── /loop・Voice Mode・MCP Elicitation が開発体験を根本から変える

2026年3月、Anthropicは Claude Code に怒濤のアップデートを投入しました。v2.1.63 から v2.1.76 まで、わずか数週間で数十の機能が追加されています。

声で話しながらコードを書く Voice Mode、ターミナルにクーロンジョブを持ち込む /loop コマンド、Opus 4.6 がデフォルト化して 1M コンテキストが使えるようになったこと、MCP サーバーが処理の途中に構造化入力を求められる Elicitation... どれも「あったらいいな」ではなく「なぜ今まで なかったのか」と思わせる変化です。

正直に言いましょう。このアップデート群をちゃんと理解して使いこなせている人は、まだそんなに多くないと思います。だからこそ、今回はこの 3 月の変化を丁寧に整理してみました。


目次

  1. /loop コマンド — ターミナルに「定期実行」を組み込む
  2. Voice Mode — スペースキーで話す、放して送る
  3. Opus 4.6 デフォルト化と 1M コンテキスト
  4. ultrathink と /effort — 思考の深さをコントロールする
  5. MCP Elicitation — タスク途中の構造化入力
  6. メモリとコンテキスト管理の改善
  7. HTTP Hooks と自動化の可能性
  8. その他の注目アップデート
  9. まとめ — 開発体験の「次の層」が見えてきた

/loop コマンド — ターミナルに「定期実行」を組み込む {#loop}

v2.1.71 で導入された /loop は、Claude Code のセッション内で指定した間隔でプロンプトを繰り返し実行する仕組みです。

# デプロイの状態を5分ごとに確認する
/loop 5m check the deploy status and notify me of any errors

# 30秒ごとにテストを走らせる
/loop 30s run the test suite and report failures

# 1時間ごとに GitHub の新しい Issue をチェックする
/loop 1h check for new GitHub issues and summarize them

シンプルに見えますが、これはかなり大きな変化です。

従来のワークフローを振り返ってみると...

CI/CD の状況を確認したいとき、開発者はターミナルを別で開いて watch コマンドを使うか、別のシェルスクリプトを書くか、あるいは手動で定期的に確認していました。Claude Code はその間、何もしていない状態でした。

/loop があると、Claude Code そのものが「待機しながら監視する」存在になります。デプロイが失敗したら教えてくれる、テストが通ったら次のステップに進む、エラーログが増えてきたら警告する — こういった動作を自然な言葉で設定できるわけです。

実際にどんな場面で使えるか、具体的に考えてみましょう。

CI/CD 監視パターン

/loop 3m check if the GitHub Actions workflow for PR #123 is complete, and tell me the result

これを実行しておくと、ワークフローが完了した瞬間に Claude が教えてくれます。別のターミナルやブラウザのタブに目を向ける必要がありません。

ログ監視パターン

/loop 1m tail -20 /var/log/app/error.log and alert if there are new errors since last check

エラーログを定期的にチェックして、変化があったときだけ通知する、という動作を自然言語で定義できます。

テスト駆動開発パターン

/loop 30s run pytest tests/unit/ and show only failing tests

コードを書きながら Claude にテストを走らせ続けてもらうことで、リアルタイムのフィードバックループが生まれます。

注意点として、/loop はセッションが開いている間だけ動作します。ターミナルを閉じると止まります。また CLAUDE_CODE_DISABLE_CRON 環境変数を設定すると、ループ機能を完全に無効化することもできます。

設定ファイルでも無効化できます。

// claude.json
{
  "loop": {
    "enabled": false
  }
}

複雑なシステム的スケジューリングが必要な場合は従来の cron や systemd の方が適しています。でも、開発中の「ちょっと定期確認したい」という場面では、/loop の手軽さは格別です。


Voice Mode — スペースキーで話す、放して送る {#voice}

2026年3月に最も注目を集めた機能が Voice Mode です。/voice コマンドで有効化し、スペースキーを押している間だけマイクに入力、離したら送信、というプッシュトーク方式で動作します。

# Voice Mode を有効にする
/voice

# キーバインドをカスタマイズする場合
# keybindings.json に設定する
// keybindings.json
{
  "key": "voice:pushToTalk",
  "binding": "space",
  "alternatives": ["meta+k"]
}

「常時ウォッチ型」ではなく「話したいときだけ話す」という設計が、開発ツールとして誠実だと感じます。会議中に音声が拾われて誤送信、なんてことが起きる心配はありません。

対応言語は 20 言語に

3月のアップデートで 10 言語が追加され、合計 20 言語に対応しました。

以前から対応 3月に追加
英語、スペイン語、フランス語、ドイツ語、イタリア語、ポルトガル語、日本語、韓国語、中国語、ヒンディー語 ロシア語、ポーランド語、トルコ語、オランダ語、ウクライナ語、ギリシャ語、チェコ語、デンマーク語、スウェーデン語、ノルウェー語

日本語が最初から対応していたのはありがたいです。技術用語やリポジトリ名の音声認識も最適化されているとのことで、「ぷるりくえすと」「ぎっとはぶあくしょんず」のような固有名詞も認識しやすくなっています。

どんなシーンで役立つか

キーボードを打ちながら考えを整理するより、話しながら考えた方が速い、という人には特に向いています。複雑なリファクタリングの方向性を言語化しながら Claude と対話する、設計の選択肢を声で列挙しながら議論する、といった使い方が考えられます。

ただし、現時点では全ユーザーの約 5% に段階的ロールアウト中です。まだ使えない場合は、まず npm update -g @anthropic-ai/claude-code でバージョンを最新に更新してみてください。

# バージョン確認
claude --version

# 最新版に更新
npm update -g @anthropic-ai/claude-code

# Voice Mode を試す
/voice

Opus 4.6 デフォルト化と 1M コンテキスト {#opus}

v2.1.68(3月4日)以降、Max・Team プランのユーザーは Opus 4.6 がデフォルトモデルになりました。Opus 4 と 4.1 は第一党 API から削除され、ユーザーは自動的に 4.6 へ移行されています。

そして v2.1.75(3月13日)から、Opus 4.6 は 1M トークンのコンテキストウィンドウをデフォルトで使えるようになりました(Max・Team・Enterprise プラン)。

これは数字以上の変化です。

従来の 200K トークンでは、大きなコードベースを扱う際に「どのファイルをコンテキストに入れるか」を意識的に管理する必要がありました。関係ないファイルを省いたり、重要な部分だけを抜き出したり。

1M トークンがあれば、中規模プロジェクト全体をコンテキストに入れたまま作業できる状況に近づきます。ファイル間の依存関係、型定義と実装の整合性、テストとソースの対応 — これらを Claude が「全体を見ながら」考えられるようになります。

# コンテキスト使用状況を確認する
/context

# 大きなコードベースでの作業例
# プロジェクト全体を読み込んで分析してもらう
claude "analyze the entire codebase and identify potential circular dependencies"

Bedrock・Vertex AI・Microsoft Foundry を使っている場合も、Opus 4.6 がデフォルトになっています。既存のコードで特定のモデルを明示指定していない場合は、挙動が変わっている可能性があります。

# Bedrock 使用時の例 — モデル指定を確認する
import anthropic

client = anthropic.AnthropicBedrock()

# 以前: anthropic.claude-opus-4-1-20251231-v1:0
# 現在: anthropic.claude-opus-4-6-20260201-v1:0 が使われる
response = client.messages.create(
    model="anthropic.claude-opus-4-6-20260201-v1:0",  # 明示指定を推奨
    max_tokens=4096,
    messages=[{"role": "user", "content": "Hello"}]
)

ultrathink と /effort — 思考の深さをコントロールする {#effort}

v2.1.76 で /effort コマンドが追加されました。モデルの思考レベルを 3 段階で設定できます。

レベル 記号 適した用途
Low 簡単な質問、定型作業、素早い確認
Medium 通常の開発作業(デフォルト)
High 深い分析、複雑なデバッグ、アーキテクチャ設計
# Low に設定する(コスト・速度重視)
/effort low

# High に設定する(品質重視)
/effort high

# 現在の設定を確認
/effort

以前あった「max」レベルは削除されています。代わりに、次のターンだけ最大思考モードを使いたいときultrathink キーワードをプロンプトに含めます。

# ultrathink を使う例
# "ultrathink" という単語を含めるだけで、そのターンだけ高思考モードになる
claude "ultrathink about the best way to refactor this authentication system"

ultrathink が発動すると、Claude は約 32,000 トークンを使って回答の前に推論を行います。通常の High 設定より深い分析が必要な局面に使うイメージです。

使い分けの目安

普段の開発は Medium(デフォルト)のまま使って、設計判断や難しいバグ調査のときだけ /effort high に切り替える、さらに「本当に難しい」場面では ultrathink を呼ぶ、という階層が自然です。

常に High で動かせばよいのでは、と思うかもしれませんが、High は実行時間もトークン消費も増えます。ルーティン作業に使うのはもったいないです。


MCP Elicitation — タスク途中の構造化入力 {#mcp}

v2.1.76 で追加された MCP Elicitation は、開発者向けの地味ながら本質的な機能です。

Elicitation とは何か

MCP サーバーがタスクを実行している途中で、「ここで追加の情報が必要です」とユーザーに問い合わせる仕組みです。フォームを表示したり、ブラウザで URL を開いたりして、必要なデータを収集してから処理を続けることができます。

// MCPサーバー側の実装例 (TypeScript)
import { Server } from "@modelcontextprotocol/sdk/server/index.js";
import { ElicitRequest } from "@modelcontextprotocol/sdk/types.js";

const server = new Server(
  { name: "my-mcp-server", version: "1.0.0" },
  { capabilities: { tools: {}, elicitation: {} } }
);

// ツール実行中にユーザー入力を求める
server.setRequestHandler("tools/call", async (request, extra) => {
  if (request.params.name === "deploy_to_production") {
    // Elicitation でユーザーに確認を求める
    const elicitResult = await extra.elicit({
      message: "本番環境へのデプロイを実行します。確認してください。",
      requestedSchema: {
        type: "object",
        properties: {
          confirmed: {
            type: "boolean",
            description: "デプロイを実行してもよいですか?"
          },
          tag: {
            type: "string",
            description: "デプロイするバージョンタグを入力してください"
          }
        },
        required: ["confirmed", "tag"]
      }
    });

    if (!elicitResult.content.confirmed) {
      return { content: [{ type: "text", text: "デプロイをキャンセルしました。" }] };
    }

    // 入力されたタグでデプロイを実行
    const tag = elicitResult.content.tag as string;
    return { content: [{ type: "text", text: `バージョン ${tag} をデプロイしています...` }] };
  }
});

Claude Code 側(クライアント)での表示

Elicitation が発動すると、Claude Code はインタラクティブなフォームまたはプロンプトを表示します。ユーザーが入力して送信すると、MCP サーバーが処理を再開します。

Hooks でのインターセプト

Elicitation リクエストと ElicitationResult をフックで横取りすることもできます。

// claude.json でのフック設定例
{
  "hooks": {
    "Elicitation": {
      "command": "python3 /path/to/elicitation_handler.py"
    },
    "ElicitationResult": {
      "command": "python3 /path/to/result_handler.py"
    }
  }
}

これにより、MCP サーバーからの入力要求をカスタムスクリプトで処理したり、特定の条件では自動応答したりといった高度な自動化が可能になります。

どんな場面で使えるか

  • デプロイ前の最終確認(本番環境変更の承認ゲート)
  • 外部サービスの認証情報を安全に収集(パスワードや API キーをファイルに残さない)
  • バッチ処理の対象範囲をユーザーに選ばせる
  • カスタムダッシュボードのフォームでパラメータを設定する

MCP サーバーが「途中で止まって待てる」ようになったことで、完全な自律実行だけでなく「人間の判断を挟んだ半自動化」も綺麗に設計できます。


メモリとコンテキスト管理の改善 {#memory}

v2.1.74 では、コンテキストとメモリの管理に関わる複数の改善が入りました。

/context コマンドの強化

/context コマンドが以前より賢くなりました。実行すると、単に使用量を表示するだけでなく、アクションできる提案をしてくれます。

/context

# 出力例(イメージ)
# コンテキスト使用率: 67% (670K/1M tokens)
# 
# ⚠️  最も消費しているツール:
#   - Bash実行履歴: 180K tokens
#   - ファイル読み込みキャッシュ: 120K tokens
#   - 会話履歴: 95K tokens
# 
# 💡 推奨アクション:
#   - /compact を実行して会話を圧縮する
#   - 不要なファイルのキャッシュをクリアする

どのツールがコンテキストを食っているかが分かると、手の打ちようが具体的になります。

autoMemoryDirectory

メモリファイルを保存するディレクトリをカスタム設定できるようになりました。

// claude.json
{
  "autoMemoryDirectory": "/home/username/.claude/memories"
}

メモリファイルには 最終更新タイムスタンプ が含まれるようになり、Claude がどのメモリが新しくてどれが古いかを判断しやすくなっています。プロジェクトをまたいで長期間使っていると、古い情報が優先されてしまう問題が起きやすかったですが、これで改善されます。

modelOverrides

v2.1.73 で追加された設定で、モデルピッカーのエントリを特定のモデル ID にマッピングできます。

// claude.json
{
  "modelOverrides": {
    "opus": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-opus-4-6-20260201-v1:0",
    "haiku": "arn:aws:bedrock:us-east-1::foundation-model/anthropic.claude-haiku-4-5-20250725-v1:0"
  }
}

Bedrock の推論プロファイル ARN を使っているエンタープライズチームには特に重要な設定です。


HTTP Hooks と自動化の可能性 {#hooks}

v2.1.63(2月28日)から、シェルスクリプト形式のフックに加えて HTTP Hooks が使えるようになりました。

// claude.json での HTTP Hook 設定例
{
  "hooks": {
    "PostToolUse": {
      "type": "http",
      "url": "https://your-service.example.com/hooks/tool-use",
      "headers": {
        "Authorization": "Bearer your-token",
        "Content-Type": "application/json"
      }
    }
  }
}

ツールが実行されるたびに、指定した URL に JSON でリクエストが飛びます。レスポンスの JSON を Claude Code が受け取り、処理に反映できます。

活用シナリオ

外部の承認システムと連携して、特定のコマンド実行に承認フローを設けることができます。

# FastAPI での簡単な承認サーバー例
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel

app = FastAPI()

class ToolUseEvent(BaseModel):
    tool: str
    input: dict

@app.post("/hooks/tool-use")
async def handle_tool_use(event: ToolUseEvent):
    # rm -rf 系のコマンドは承認を要求する
    if event.tool == "Bash" and "rm -rf" in event.input.get("command", ""):
        raise HTTPException(status_code=403, detail="危険なコマンドはブロックされました")
    
    # Slack に通知する
    await notify_slack(f"Claude がツールを実行: {event.tool}")
    
    return {"status": "ok"}

Slack や Teams への通知、監査ログへの記録、外部データベースへの操作ログ保存、危険なコマンドの自動ブロックなど、様々な用途に使えます。


その他の注目アップデート {#others}

/color — セッションを色分けする

/color コマンドで、現在のセッションのプロンプトバーに色を設定できます。複数のターミナルウィンドウで異なるプロジェクトの Claude Code セッションを並走させるとき、一目で「どのセッションを見ているか」がわかるようになります。

# セッションに赤色を割り当てる(本番環境用)
/color red

# 緑色(開発環境用)
/color green

シンプルですが、「あれ、今どのセッションにいたっけ」という混乱を防げます。

/claude-api スキル

/claude-api コマンドで、Claude API と Anthropic SDK を使ったアプリケーション開発に特化したスキルが有効になります。API の呼び出しパターン、ストリーミングの実装方法、エラーハンドリングのベストプラクティスなど、SDK ドキュメントに即した回答が得られます。

# Claude API スキルを有効化
/claude-api

# その後の質問が SDK ドキュメントを参照した回答になる
claude "streaming response を Python で実装する最短のコードを教えて"

Worktree Sparse Paths

大規模なモノリポジトリで作業する際に効果的な設定です。

// claude.json
{
  "worktree": {
    "sparsePaths": [
      "packages/api/",
      "packages/shared/",
      "docs/"
    ]
  }
}

claude --worktree で起動したとき、指定したパスだけを git sparse-checkout でチェックアウトします。数十万ファイルを抱えるモノリポでも、必要な部分だけ作業できます。

セッション命名

起動時にセッション名をつけられるようになりました。

# 起動時にセッション名を指定
claude -n "feature/user-auth"

# セッション内でリネームする
/rename "bugfix/login-timeout"

セッション名はプロンプトバーに表示されます。/loop と組み合わせて「この監視セッションは何のためにあるか」を明示的に管理できます。

パフォーマンス改善

地味ですが実感しやすい変化です。

  • API ストリーミングバッファのメモリリーク修正(RSS が際限なく増える問題を解決)
  • ベースメモリが約 16MB 削減(Yoga WASM の遅延読み込み)
  • バンドルサイズが約 510KB 削減(ネイティブ bash パーサー採用)
  • プロンプトの再レンダリングが約 74% 削減

長時間セッションでの快適さが上がっています。「なんか最近 Claude Code 重くなったな...」と感じていた方は、アップデートで解消されているかもしれません。


まとめ — 開発体験の「次の層」が見えてきた {#summary}

2026年3月のアップデートを振り返ると、Claude Code が向かっている方向が少しずつ見えてきます。

待機から共存へ。

/loop コマンドは「命令して待つ」から「一緒に作業する」への変化を象徴しています。CI/CD を監視してくれる、テストを走らせ続けてくれる — Claude が開発プロセスに常に存在している感覚は、これまでとは質的に異なります。

入力チャンネルの拡張。

Voice Mode は文字入力に縛られなくなるための一歩です。口で話しながら設計を練り、確認が必要なときだけキーボードに手を伸ばす、そういうワークフローが近づいています。

MCP の進化とセミオートメーション。

Elicitation は、AIエージェントが「完全自律か完全手動か」のどちらかではなく、適切なタイミングで人間の判断を取り込みながら動く設計を可能にします。承認フローを組み込んだ CI、対話的な設定ウィザード、危険な操作前の確認ゲート — 実務での活用シーンが広がります。

使えていない機能がいくつかあった方は、まずアップデートから始めてみるとよいかと思います。

# 最新バージョンに更新する
npm update -g @anthropic-ai/claude-code

# バージョン確認
claude --version

# 主要な新機能を一通り試す
/effort         # 思考レベルを確認
/context        # コンテキスト状況を確認
/loop 1m echo "hello from loop"   # /loop を試す
/voice          # Voice Mode を有効化(段階的ロールアウト中)

3月のアップデート全体を通して感じるのは、Claude Code が「使い捨ての道具」から「開発の相棒」へとポジションを変えつつある、ということです。長時間一緒にいることを前提とした設計 — メモリ管理、セッション命名、視覚的な色分け、音声入力 — が積み重なってきています。

まだ全機能が全ユーザーに届いているわけではありませんが、アップデートを追いながら少しずつ取り入れてみてください。


参考資料

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?