コンテンツにスキップ

Vibe Kanban を Claude Code + AWS Bedrock + zsh 環境で動かす

概要

AWS Bedrock を用いた Claude Code を使って Vibe Kanban を動かそうとしたが、Vibe Kanban は Claude Code のログインを前提としていた。初期設定のままでは AWS Bedrock を用いた Claude Code を利用できないため、Vibe Kanban の設定で実行コマンドを上書きし、zsh 関数と組み合わせて解決した。本記事ではその手順を紹介する。

これは当時試した構成の記録で、Vibe Kanban と Claude Code の正確なバージョンは記録していない。初期設定の制約と回避策も、その構成で確認したものだ。

Vibe Kanban とは

Vibe Kanban は、コーディングエージェントのためのカンバンボードだ。チケットごとに異なるコーディングエージェントを割り当てたり、複数のエージェントを並列またはシーケンシャルに実行したりでき、GitHub と連携すれば Pull Request も作れる。

気に入っている機能:Git Worktree による作業の分離

個人的に気に入っているのは、Git Worktree を使ってチケットごとに異なるブランチを作成し、作業を分離できる点だ。複数のチケットを同時並行で進めても作業内容が混ざらないうえ、.envのように git の追跡対象外のファイルも設定で共有できる。Git Worktree 単体だと git の管理外のファイルが共有されず、各ワークツリーで改めて用意する必要がある。Vibe Kanban なら設定で共有できるので、用意し直す手間を省ける。

解決

Vibe Kanban はコーディングエージェント実行時のコマンドを上書きできる。AWS Bedrock を用いた Claude Code を起動するコマンドを作成し、Vibe Kanban が利用するように設定すれば、AWS Bedrock 上の Claude を Vibe Kanban で利用できる。

bash と zsh の違いへの対応方針

ただし、コマンド実行は bash で行われるため、私のように zsh 環境でコマンドを作成している場合は一工夫がいる。zsh 関数として AWS Bedrock 経由の Claude Code 起動コマンドを作成し、Vibe Kanban のbase_command_override設定から作成したコマンドを bash 経由で呼び出す。

AWS Bedrock 用の起動コマンド

AWS Bedrock を用いた Claude Code を使うコマンドを作成する。 zsh からの利用を想定しているため、~/.zshrcに次のように記述する。

1
2
3
4
5
6
7
8
function my-claude-code() {
  env \
    AWS_PROFILE="personal" \
    AWS_REGION="us-east-1" \
    ANTHROPIC_MODEL="arn:aws:bedrock:us-east-1:123456789012:application-inference-profile/my-claude-code-profile" \
    CLAUDE_CODE_USE_BEDROCK=1 \
    claude --dangerously-skip-permissions "$@"
}

ポイントは--dangerously-skip-permissionsオプションを付与することだ。 付与しないと、Vibe Kanban から Claude Code を実行した際にファイルの作成や編集の権限がなく、エラーが発生する。 Vibe Kanban から Claude Code を実行する場合に--dangerously-skip-permissionsオプションを付与する設定もあるが、うまく機能しなかったため、コマンドで直接指定する形にした。

Vibe Kanban の設定

次のように Vibe Kanban の Coding Agent の設定を変更する。Claude Code の bedrock プロファイルを追加し、base_command_overrideに先ほど作成したコマンドを指定する。 base_command_override のコマンド実行は bash で行われるため、zsh の設定を読み込むようにzsh -c 'source ~/.zshrc > /dev/null 2>&1 && my-claude-code'としている。

{
  "executors": {
    "CODEX": {
      "HIGH": {
        "CODEX": {
          "append_prompt": null,
          "sandbox": "danger-full-access",
          "model_reasoning_effort": "high"
        }
      },
      "DEFAULT": {
        "CODEX": {
          "append_prompt": null,
          "sandbox": "danger-full-access"
        }
      }
    },
    "OPENCODE": {
      "DEFAULT": {
        "OPENCODE": {
          "append_prompt": null
        }
      }
    },
    "CLAUDE_CODE": {
      "PLAN": {
        "CLAUDE_CODE": {
          "append_prompt": null,
          "plan": true,
          "additional_params": []
        }
      },
      "DEFAULT": {
        "CLAUDE_CODE": {
          "append_prompt": null,
          "plan": false,
          "dangerously_skip_permissions": true,
          "additional_params": []
        }
      },
      "bedrock": {
        "CLAUDE_CODE": {
          "append_prompt": null,
          "dangerously_skip_permissions": true,
          "base_command_override": "zsh -c 'source ~/.zshrc > /dev/null 2>&1 && my-claude-code'",
          "additional_params": []
        }
      }
    },
    "AMP": {
      "DEFAULT": {
        "AMP": {
          "append_prompt": null,
          "dangerously_allow_all": true
        }
      }
    },
    "QWEN_CODE": {
      "DEFAULT": {
        "QWEN_CODE": {
          "append_prompt": null,
          "yolo": true
        }
      }
    },
    "CURSOR": {
      "DEFAULT": {
        "CURSOR": {
          "append_prompt": null,
          "force": true
        }
      }
    },
    "GEMINI": {
      "FLASH": {
        "GEMINI": {
          "append_prompt": null,
          "model": "flash",
          "yolo": true
        }
      },
      "DEFAULT": {
        "GEMINI": {
          "append_prompt": null,
          "model": "default",
          "yolo": true
        }
      }
    }
  }
}

今回追加したbedrockプロファイルでは、長い設定のうち次の 2 つの項目を指定した。

フィールド 値
dangerously_skip_permissions true
base_command_override zsh -c 'source ~/.zshrc > /dev/null 2>&1 && my-claude-code'

タスク実行時に今回設定した bedrock プロファイルを選択すれば、AWS Bedrock を用いた Claude Code を利用できる。 余談だが、コマンドをalias mc='my-claude-code'のようにエイリアスで設定しても、Vibe Kanban からは実行できなかった。

まとめ

今回の手順の要点は次の 3 つだ。

  • Vibe Kanban の初期設定は Claude Code のログインを前提としており、そのままでは AWS Bedrock を利用した Claude Code を使えない
  • base_command_overrideでコーディングエージェント実行時のコマンドを上書きすれば、AWS Bedrock 用の起動コマンドを使える
  • 上書きしたコマンドは bash で実行されるので、zsh 関数はzsh -c 'source ~/.zshrc ...'の形で呼び出す(エイリアスでは動かなかった)

特定の認証方式を前提とするほかのツールでも、コマンド実行を上書きできる設定があれば、別の認証経路(今回は AWS Bedrock)へ差し替えられる。ただし、差し替えたコマンドがどのシェルで実行されるかは前提として確認しておく必要がある。zsh の関数やエイリアスを、そのまま使えるとは限らない。