girbとは?
girb(Generative IRB)はIRB・Rails console・debuggerにAIエージェントを統合するgemです。
例えばこんな感じで、IRB上でAIを呼び出して実装やデバッグを行わせることができます。 youtu.be
いろんな場所で動く
Rails consoleでも動作します。ActiveRecordモデルの情報を理解した上で回答してくれます。
コード内のdebuggerやbinding.girbからでも呼び出せます。
実行中のコンテキストを持つ
girbはファイル、変数、定数、メソッドの定義にアクセスし、現在のプログラムの状態を確実に把握できます。
Claude Codeなどとの違いとして、実行中のプログラムのコンテキストを取得できるのが強みです。これはRubyのような動的な言語のデバッグで特に有効なアプローチと考えています。
また、REPL上で実行されたコードと会話の履歴を記憶しているため、試したコードや発生したエラーに対して自然な流れで質問・指示をすることができます。
デバッグの自動化
girbはAIエージェントです。1往復の会話だけでなく、自律的にタスクを進めることができます。
つまり、debuggerやbinding.girbで呼び出した後、ブレークポイントの設置やnextなどのデバッグコマンドを駆使して自動でデバッグを進めることができます。
一度の実行で解決できない場合、記憶の永続化オプションを有効にすればセッションが切れても記憶が途切れなくなります。
例えば10行目で『5行目のメソッド内で状態を調査するべきだった』と気づいたら、次回実行時にはその記憶を引き継いで5行目のメソッドの調査を行うことができます。
対応しているLLM
- girb-ruby_llm: OpenAI, Anthropic, Gemini, Bedrock, Ollama など
- girb-gemini: Google Gemini専用(Google検索機能に対応)
プロバイダー gemを変更してお好みのプロバイダー、LLMを選べます。
カスタムプロバイダー gemを作ることでどんなLLMでも対応することができます。
インストールと設定
gemをインストールします。
gem install girb girb-ruby_llm
.girbrcに設定を書きます。
require 'girb-ruby_llm' Girb.configure do |c| c.provider = Girb::Providers::RubyLlm.new(model: 'gemini-2.5-flash') end
export GEMINI_API_KEY="your-api-key" girb
詳しくはREADMEを参照してください。
使い方
| コマンド | 説明 |
|---|---|
qq 質問 |
AIに質問する |
Ctrl+Space |
現在の入力をAIに送る |
binding.girb |
コード内からAI付きIRBを起動 |
debugger |
debug gemと連携してAIデバッグを開始 |
自律的に動いている最中でも、Ctrl+Cでいつでも中断できます。
フィードバック募集中
girbはまだ発展途上です。使ってみて気づいたことがあれば、ぜひ教えてください。
「ここが使いにくい」「こんな機能がほしい」など、どんな意見でも歓迎です!