Skip to content

原文(日本語に翻訳)

カスタムキーバインド(~/.claude/keybindings.json)がBedrock、Vertex、その他のサードパーティプロバイダーで読み込まれない問題を修正しました。

原文(英語)

Fixed custom keybindings (~/.claude/keybindings.json) not loading on Bedrock, Vertex, and other third-party providers

概要

AWS BedrockやGoogle Cloud Vertex AI等のサードパーティプロバイダー経由でClaude Codeを使用する場合、~/.claude/keybindings.json に設定したカスタムキーバインドが読み込まれないというバグがありました。このアップデートにより、どのプロバイダーを使用している場合でも、カスタムキーバインドが正しく読み込まれるようになりました。

基本的な使い方

bash
# カスタムキーバインドの設定
cat ~/.claude/keybindings.json
json
{
  "bindings": [
    {
      "key": "ctrl+k",
      "action": "compact",
      "description": "コンテキストを圧縮"
    },
    {
      "key": "ctrl+n",
      "action": "newSession",
      "description": "新しいセッション"
    }
  ]
}
bash
# 修正前: Bedrock/Vertex経由では設定が無視される
# 修正後: すべてのプロバイダーでカスタムキーバインドが機能する

# AWS Bedrockで使用
ANTHROPIC_PROVIDER=bedrock claude
# → カスタムキーバインドが正常に読み込まれる

# Google Vertex AIで使用
ANTHROPIC_PROVIDER=vertex claude
# → カスタムキーバインドが正常に読み込まれる

実践例

AWS Bedrock環境でのカスタムキーバインド

bash
# AWS Bedrock の設定
export AWS_REGION=ap-northeast-1
export CLAUDE_PROVIDER=bedrock

# カスタムキーバインドを設定
cat > ~/.claude/keybindings.json << 'EOF'
{
  "bindings": [
    {
      "key": "ctrl+]",
      "action": "compact",
      "description": "コンテキストを圧縮(Bedrock環境用)"
    },
    {
      "key": "ctrl+shift+n",
      "action": "newSession",
      "description": "新しいセッションを開始"
    },
    {
      "key": "ctrl+shift+h",
      "action": "help",
      "description": "ヘルプを表示"
    }
  ]
}
EOF

# 修正後: Bedrock環境でも設定が読み込まれる
claude
# ctrl+] でコンテキストを圧縮できる

Google Cloud Vertex AI環境での設定

bash
# Vertex AI の設定
export GOOGLE_CLOUD_PROJECT=my-project
export GOOGLE_CLOUD_REGION=us-central1
export CLAUDE_PROVIDER=vertex

# カスタムキーバインドの確認
cat ~/.claude/keybindings.json

# 修正後: Vertex AI環境でも設定が読み込まれる
claude

サードパーティプロバイダー共通の設定

json
// ~/.claude/keybindings.json
// どのプロバイダーでも動作するキーバインド設定

{
  "bindings": [
    {
      "key": "ctrl+l",
      "action": "clearScreen",
      "description": "画面をクリア"
    },
    {
      "key": "ctrl+shift+c",
      "action": "copyLastResponse",
      "description": "最後の応答をコピー"
    },
    {
      "key": "ctrl+r",
      "action": "resume",
      "description": "前のセッションを再開"
    },
    {
      "key": "alt+enter",
      "action": "submitWithNewline",
      "description": "改行を保持して送信"
    }
  ]
}
bash
# 設定のテスト(プロバイダーを指定)
CLAUDE_PROVIDER=bedrock claude
# または
CLAUDE_PROVIDER=vertex claude

# 修正後: いずれの環境でもキーバインドが機能する

キーバインド設定の確認と管理

bash
#!/bin/bash
# キーバインド設定の確認スクリプト

check_keybindings() {
  local keybindings_file="$HOME/.claude/keybindings.json"
  
  if [ -f "$keybindings_file" ]; then
    echo "カスタムキーバインドが設定されています:"
    python3 -c "
import json
with open('$keybindings_file') as f:
    data = json.load(f)
    
for binding in data.get('bindings', []):
    key = binding.get('key', '不明')
    action = binding.get('action', '不明')
    desc = binding.get('description', '')
    print(f'  {key} → {action} ({desc})')
"
  else
    echo "カスタムキーバインドは設定されていません"
    echo "~/.claude/keybindings.json を作成して設定してください"
  fi
  
  # 現在のプロバイダーを確認
  provider="${CLAUDE_PROVIDER:-anthropic}"
  echo ""
  echo "現在のプロバイダー: $provider"
  echo "修正後: このプロバイダーでもキーバインドが機能します"
}

check_keybindings

注意点

  • この修正はAWS Bedrock、Google Cloud Vertex AI、およびその他のサードパーティプロバイダーで効果があります
  • デフォルトのAnthropicプロバイダーでは以前から正常に動作していました
  • キーバインドファイルのパスは ~/.claude/keybindings.json で固定されています
  • 利用可能なアクションはClaude Codeのバージョンによって異なる場合があります
  • キーバインドの設定はユーザーレベルの設定のため、プロジェクト設定には存在しません

関連情報