⛓️

Claude Code と Gemini CLI の連携をしてみた

はじめに

前回の記事では、Gemini CLI をホストとした Claude Code とのペアプログラミングに挑戦しました。

記事中にも記載しましたが、Gemini CLI からの Claude Code の実行にはうまく行ったり行かなかったりと結構不安定な部分も多く、個人的な印象としてはなかなか使いづらい印象を持ちました。

そこで今回は、逆に Claude Code の方をホストとして、Gemini CLI とのペアプログラミングに挑戦してみることにします。

またこの記事を執筆中に、MCP による連携で簡単にできるようになる記事を見つけました。
今回は MCP を使ったペアプログラミングは行いませんが、今後こちらについてもやってみたいですね。

早速やってみた

今回も、前回同様テトリスを作成してもらうことにします。
指示書の内容はざっくり下記の通りです。(特に前回と変更はしておりません)

Markdown ファイルの中身(例:CLAUDE.md)
# 指示書

Gemini と共にペアプログラミングを行い, テトリスゲームを作成してください.

## 前提条件

- Gemini CLI の設定は完了しているため, 後述の「## Gemini CLI の操作方法」から Gemini を起動させることができます.
- 開発は Docker Compose を利用した仮想環境で構築すること.

## 制作のフロー

1. テトリスというゲームについて調査
2. 調査した結果をもとに, 開発の流れを作成
3. Claude Code, Gemini CLI それぞれの強みをそれぞれで考えて, 開発の流れから役割を分担
4. 分担した内容から作業を開始

## Gemini CLI の操作方法
{ここに Gemini CLI のヘルプコマンドで出る内容を記載}

なんとなく Gemini CLI の操作方法 のセクションに関しては、/help コマンドで見れる内容すらもいらないのではないかと思っています。
基本的に Claude Code が Gemini CLI を呼び出す場合、非対話モードでの呼び出しになると思っているので、例えば gemini --prompt "{ここに Gemini へのプロンプト}"echo "{ここに Gemini へのプロンプト} | gemini" のいずれかを記載するだけで良さそうな気がしています。

ただ今回は、前回の内容との比較も兼ねているため、あくまで前回 Gemini CLI でやったことを Claude Code で行うことに徹しようと思います。

それではこれで早速作ってもらいましょう!

指示書に沿って Gemini とペアプログラミングでゲームを構築して

Claude Code でもやっぱり Gemini CLI の起動を失敗しました。
何回もやり取りするのが面倒だったので、先ほどの「gemini --prompt "Geminiへのプロンプト"で聞けるよ」と教えてあげると、Claude が Gemini へ質問してくれるようになりました。
この辺りのやり取りと、非対話モードでしか起動できない点を踏まえても MCP による起動はやはり試してみたいところです。

Claude Code をホストにしたペアプログラミングの成果物

完成した成果物がこちらになります。

個人的には、前回の Gemini CLI をホストにして作成したものよりも品質が高いものが出来上がってきていると思っています。
テトリスの基本機能である左右の移動や下矢印による加速、上矢印による回転に加えて、Gemini CLI では一度も実装されなかった Spaceキーによる瞬間的な設置 もできるようになってます。

また機能以外にも、ブラウザの一画面で収まっていることや操作方法の記載、あとテトリスっぽいブロック表示(四角いブロックの十字線など)の実装など細かな UI 部分が丁寧に実装されている印象を受けました。

唯一、ゲームオーバーの画面が実装されていないため、やり直しをするにはブラウザ画面をリロードする必要があることくらいがミスといえばミスになるのでしょうか。

とはいえ、具体的なゲームに関する指示もなくここまで実装できるのは驚きです。
おそらくではありますが CLAUDE.md 内のフローで設定した「1. テトリスというゲームについて調査」と言う部分がうまく作動したように思えます。

さいごに

今回は Claude Code をホストにして Gemini CLI とのペアプログラミングをしてもらいました。
結果的にはうまく実装でき、また前回の Gemini CLI とのペアプログラミングよりもいいものが作れたのではないかと思いますが、Claude Code と Gemini CLI を含む AI エージェントの強みである「対話形式によるプロジェクト開発」が活かしきれていないのが、今後の課題かなと思います。

なんとなく今回と前回のペアプログラミングでは、どちらかをホストとして起動する必要があったため「上司と部下」みたいな上下関係ができているような進め方だった印象です。本当はもっとフラットな関係で進める方法を想定していたので、手を替え品を替え、これをいつか実現させたいです。

今後は「上下関係ができる」ことを活かして、もう一つ、プロジェクトを管理するエージェントを用意して 組織的な開発 を意識した方法を試してみたいと思います。
また MCP による連携についてもどこかで試してみて、今回の結果と比較をしてみたいなと思います。

アーティスティックス テックブログ

Discussion