Claude Code Actionをさっそくレビューしてみた！

おひさしぶりです。ひさふるです。

先ほど(日本時間5月23日未明)に行われたAnthropicの開発者向けイベントCode with Claude内の発表で、コーディングエージェント"Claude Code"がGitHub Actionsとして利用出来るようになったことが明らかになりました。

https://www.youtube.com/watch?v=L_WFEgry87M

最近は、OpenAI CodexやGoogle Julesなど、自律的にコーディングを行うエージェントの発表が相次いでいます。

Claude Code自体は以前から利用できたものの、恐らく今回のGitHub Actions対応はそれに対抗する形での発表でしょう。

今回は、そんな"Claude Code Action"をさっそく使ってみてレビューしてみます！

## Claude Code Actionとは？？

Claude Code Actionは、Anthropicのコーディングエージェント"Claude Code"をGitHub Actions上から呼び出せる機能になっています。

https://github.com/anthropics/claude-code-action

もともと、Claude Code自体はターミナル上で呼び出すことを前提としていたので、(人によって賛否はあると思いますが)、利用ユーザーは限られている印象でした。

今回のアップデートで、GitHubのPull RequestやIssue内からも呼び出し、直接コーディングの指示を行えるようになったので、使いやすさは飛躍的に向上すると思われます！

## さっそく使ってみた

先日、たまたま個人で作っていた"Zinja"というWebアプリを公開しました。これは、サービス名を評価・生成してくれるサービスで、競合の調査やドメインの取得可否までしてくれるようになっています！

https://zinja.jp/

今回は、このアプリに対してClaude Code Actionを導入し、使ってみたいと思います。

## セットアップ

以下のリポジトリに記述されているクイックスタートを見ながらセットアップを進めてみます。

https://github.com/anthropics/claude-code-action

まず、claude code自体がローカルにインストールされている必要があるので、以下のコマンドでインストールします。

```bash
npm install -g @anthropic-ai/claude-code
```

インストールされたことが確認できました。

```bash
❯ claude --version 
1.0.1 (Claude Code)
```

Claude Code Actionを導入するには、該当のリポジトリ内でClaude Codeを呼び出します。

```bash
claude
```

最初に、Claude Codeを信頼するかどうかなどを聞かれるので、適当に「Yes」と回答しておき、対話セッションが出来るところまで進めます。

対話セッション内で以下のコマンドを実行します。

```bash
/install-github-app
```
![スクリーンショット 2025-05-23 6.12.28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/911d4a6c-ef14-4d5a-a693-b260856c64a1.png)


すると、導入先のリポジトリが合っているかどうか聞かれるので確認し、Enterを押すとブラウザが開きます。

![スクリーンショット 2025-05-23 6.12.43.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/faf41289-d0df-4bdb-81e3-a9a0693825ea.png)


ClaudeのGithub Appのページに飛ばされるので`Install`を選択し、導入先のリポジトリを選び再度`Install`ボタンを押します。


![スクリーンショット 2025-05-23 6.08.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/afbdef5d-06ed-41b0-aaa4-8ef25a47478b.png)

終わったらターミナルに戻りEnter。

![スクリーンショット 2025-05-23 6.14.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/fc293beb-fe00-43c6-a547-d3b8ff9a476a.png)

次に、APIキーをどう設定するか聞かれます。私は既存のものを設定済みだったので、`Use your existing Claude Code API`を選択しました。

![スクリーンショット 2025-05-23 6.14.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/3173cccb-a167-418b-8dc1-14434a1e36d9.png)

まだAPI Keyを発行していない場合は、以下の記事などを参考に作成し、`Enter a new API key`から入力すれば大丈夫だと思います。

https://note.com/noa813/n/n307d62b5820b

さて、ここまで来ると以下のような表示となり、ターミナルからの操作は終了です。

![スクリーンショット 2025-05-23 6.18.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/98fe5cab-23d0-4180-bbb1-63c0a4f34111.png)

セットアップが完了すると、勝手にブラウザが起動しPull Requestの作成画面に遷移するので、`Create pull request`。

![スクリーンショット 2025-05-23 6.22.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/fbc2352f-5459-42da-a3e4-dd2f3a335be4.png)

変更の内容は、Github Actions用のワークフローの作成ですね。

![スクリーンショット 2025-05-23 6.22.58.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/3a13970e-00a9-4036-a1e5-f6c958b970c1.png)

`Merge pull request`でこれをマージします。

## 指示を出してみる
今回は、Issueを発行しそこから指示を出してみたいと思います！

テストとはいえ簡単な内容ではClaude Codeの実力を測れないので、あえてあまり詳細な指示は書かずにやってみます。

内容は、今後の実装予定の追記にしました。

![スクリーンショット 2025-05-23 6.33.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/567914bb-66b3-41b9-b919-5d53f3d45004.png)

さて、ではClaude Codeを呼び出してみます。使い方はいたって簡単で、`@claude`をつけて頼みたい内容をコメントするだけです。

今回は実装をお願いしていますが、自分が作成したPRの修正やレビューなど、様々なタスクを実行出来るようです。

コメントして少し経つと、Claudeが現れ実装計画を立て、実際に実装が始まります。

![スクリーンショット 2025-05-23 6.36.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/b7bc7765-f145-42fa-acfc-f7b7049df462.png)

(裏では先ほど作成したactionsが動いているようですね)

![スクリーンショット 2025-05-23 6.35.46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/e0a76114-1737-4475-a3fe-3e3f39667649.png)

Claudeからのコメントは動的に更新され、現在の進捗も一目でわかるようになっています。

![スクリーンショット 2025-05-23 6.36.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/c9176def-24a2-47a4-834f-1804f44fc7b7.png)

実装が完了すると、このように実装内容が説明されました。

![スクリーンショット 2025-05-23 6.38.23.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/c761cb8c-743e-4b60-badc-05db24c0890d.png)

では、作成されたブランチを手元で確認してみましょう。
現在の実装を踏襲し、指示内容が正しく実装されています、完璧です。ちょっと簡単すぎましたかね？

![スクリーンショット 2025-05-23 6.39.51.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/c4dce05d-b54a-4203-bafe-289c484107ce.png)

最後に、先程のコメントの右上にある`Create PR →`から直接PRを作成します。
今回は問題なく実装出来ていたので、さっそくマージしちゃいましょう。

![スクリーンショット 2025-05-23 6.40.09.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/655545/9e22c765-35c4-4409-89e6-418f87f395ee.png)

デプロイしたので、そのうち更新されると思います。

https://zinja.jp/

## 感想

自律型のコーディングエージェントも様々な形態がありますが、やはり開発者としてはGithubから直接呼び出せるのは非常に大きなメリットに感じました。

呼び出されているモデル自体はClaudeなので精度も高いと感じており、簡単なタスクなら	丸投げできてしまいそうです。

私自身、最近電車などの移動時間にもコーディングを進められないか考えていたので、Claude Code Actionを使ってスマホから指示を出すなど、今後実験してみたいと思います。

ここまで読んでいただきありがとうございました！