ついに来た!Ralph TUI、可視化されたRalph Loop
ついに来た!Ralph TUI、可視化されたRalph Loop
以前、ralph-loopに関するチュートリアルを書いたところ、多くの方から共通のフィードバックがありました。**「最高だ、Claude Codeがついに長時間実行できるようになった。」**しかし、時々、それが全く動いていないように見えると、「本当に進んでいるのか、それとも堂々巡りしているのか?」と不安になるのは避けられません。
これが、私が最近ralph-tuiをいじっている理由です。

**ralph-tui は Claude Code への強制的なバインドを必要としません。ralph loop の本質を継承・発展させ、タスクの実行とプロセスを可視化することで、大規模モデルを長時間動作させるためのハードルを大幅に下げます。**他のエージェントやモデル、国産の、安価な、長期的に実行可能なものに完全に接続できます。ralph-tui があれば、私たち一般人にとって、マニュアル車からオートマ車に乗り換えてクルーズコントロールが付いているようなものです。
それはいったい何?
ralph-tui を「AI コーディングエージェントのループオーケストレーター」と理解することができます。ただし、それは「実行できる」ことに満足せず、「あなたが見ることができ、制御でき、復元できる」ことをより重視します。
その基本的な動作方法は非常にシンプルです。
- あなたはそれにタスクの山を与えます(PRD からでも、他のタスクシステムからでも構いません)
- それは優先順位が最も高いものを選択します
- プロンプトを組み立てます
- エージェントを起動して実行します
- このタスクが完了したかどうかを判断します
- 状態を書き込みます
- 次のラウンドに進みます
重要なのは、これらすべてをターミナルで見ることができ、いつでも停止したり、引き継いだりできることです。公式もその位置づけを非常に率直に書いています。インタラクティブな TUI を備えたエージェントループオーケストレーターであり、TUI / headless / remote をサポートしています。
なぜ「長期実行」に適していると言うのか?
スクリプトでループを実行する最大の問題は、実行できないことではなく、どこまで実行されたかわからないことです。
ログが高速で更新され、ファンも楽しそうに回転しているのを見ても、あなたは確信が持てません。
- 同じバグを繰り返し修正しているのではないか?
- 同じコードを何度も変更して元に戻しているのではないか?
- すでに完了しているのに、終了していないだけではないか?
- 特定のテストでスタックして無限ループに陥っているのではないか?

ralph-tui の解決策は非常に「エンジニアリング」的です。
- セッションの概念があり、状態がディスクに保存されます(.ralph-tui/session.json)
- クラッシュしても復旧して実行できます(crash recovery)
- ロック機構があり、複数のインスタンスを開いてディレクトリをめちゃくちゃにすることを防ぎます
- headless で CI で実行したり、リモートでリスナーを開いてローカルの TUI から接続したりすることもできます
一言で言えば、それは「あなたがコードを書ける労働者を管理している」ようなものであり、「あなたがスクリプトの気まぐれを見張っている」ようなものではありません。
インストール方法
ralph-tui は Bun/TypeScript エコシステムなので、インストールは非常に簡単です。公式もインストールページを提供しています。
まず、マシンに bun がインストールされていることを確認します。
bun --version
次に、ralph-tui をインストールします(ここでは典型的なインストール方法を示します。詳細は公式インストールページを参照してください)。
bun add -g ralph-tui
インストールが完了したら確認します。
ralph-tui --help
もしあなたが Node 党で、bun に触れたくない場合は、次の方法もあります。
npm i -g ralph-tui
まず大きなことはせず、最小限のクローズドループを実行する
初めて使用する場合は、いきなり「リポジトリ全体をリファクタリングする」ようなことはしないでください。1 つのことだけを行います。受け入れ可能な小さなタスクを完了させることです。
初期化
適当なディレクトリを開きます。
mkdir ralph-tui-demo && cd ralph-tui-demo ralph-tui setup
これにより、インタラクティブなウィザードプロセスに入ります。簡単に言うと、「ralph-tui をこのリポジトリにインストールする」ことであり、次の処理が行われます。
- あなたの環境にインストールされているエージェント(例えば Claude Code、OpenCode など)を自動検出します。
- プロジェクト内に設定ファイル
.ralph-tui/config.tomlを生成します。 - PRD 生成/タスク変換関連の skills をインストールします(後で自分で設定する必要がなくなります)。
個人的なアドバイス:最初は面倒くさがらず、setup は必ず実行してください。
プロジェクト PRD の生成
setup が完了したら、次のステップは公式チュートリアルで最も重要な、そしてブログ記事のデモに最適な部分です:create-prd。
ralph-tui create-prd --chat コマンドを実行すると、対話形式のプロセスが開始されます。まるでプロダクトマネージャーのように、要件の目標、境界条件、受け入れ基準について質問されます。質問が終わると、プロジェクト内に2つのものが生成されます(これが重要です)。
- PRD の markdown ファイル:./tasks/prd-feature.md
- 直接実行可能なタスクファイル:./prd.json
この段階で、あなたは ralph-tui の「標準的な閉ループ」に本格的に入ったことになります。
要件(PRD) → タスク(prd.json) → 実行(run)
実行 (run) する
prd.json があれば、run は当然の流れです。
ralph-tui run --prd ./prd.json を実行すると、TUI が起動し、ループが開始されます:タスクを選択 → 実行 → 完了を判断 → 状態を書き込み → 終了または次のラウンド。
初めて実行する場合は、イテレーションの上限を追加することを強くお勧めします。まずは制限を設けてください。
ralph-tui run --prd ./prd.json --iterations 5 を実行した後、変更を確認し、テストを実行し、PRD とタスクが期待どおりであるかを確認します。このリンクが機能することを確認してから、イテレーションを解放し、headless/remote に移行するのが確実な方法です。
この時点で、あなたは基本的に このループが実際に動作している ことを確認できるはずです。
モデル/Agent の選び方?節約について正直に話します
多くの人が最も気にしているのは、「Claude Code を使わなくてもいいのか?もっと安いモデルを使えないのか?」ということだと思います。
答えは:可能です。
ralph-tui 自体は、agent と model の指定をサポートしています(公式の run ドキュメントに例があります)。
例えば、Claude Opus を使う場合:
ralph-tui run --prd ./prd.json --agent claude --model opus
ただし、正直に言うと、私は「テストの追加、lint の修正」のような作業に Opus を使うことはありません。高すぎます。私の習慣は階層化することです。
- 安いモデル:大量の反復作業を実行(テストの追加、コメントの追加、形式の修正、境界の追加)
- 高価なモデル:重要なノードでのみ使用(アーキテクチャの調整、難しいバグ、コアロジック)
あなたが普通の開発者であれば、この考え方はさらに重要です。なぜなら、あなたは大手企業のような予算を持っていないため、コストを制御可能にして、長く実行できるようにする必要があるからです。
もっと快適にしたい?「PRD の作成」も agent に任せる
ralph-tui には、私が気に入っている設計があります:それは skills をサポートしていることです(簡単に言うと、agent のアドオンコマンドのセットです)。
公式のインストール方法は add-skill を使用することです:
bunx add-skill subsy/ralph-tui --all
または、指定された agent にインストールします。例えば、claude-code:
bunx add-skill subsy/ralph-tui -a claude-code -g -y
インストール後、agent の会話で slash command を使用できます:
/ralph-tui-prd /ralph-tui-create-json /ralph-tui-create-beads
これは、IDE にプラグインをインストールしたようなものです。ただし、このプラグインは agent 用です。その意味は、「手作業で要件を転送する」時間を短縮し、要件 → タスク → 実行 をより流水ラインのようにすることです。
いつ使うべきか?いつ使うべきでないか?私は「何でもAIで解決できる」というストーリーがあまり好きではありません。人を誤解させやすいからです。ツールはツールであり、適切なシーンでこそ価値があります。
ralph-tui が適しているシナリオ
あなたは以下のような作業をたくさん抱えているとします。
- テストの追加(特に古いプロジェクト)
- lint / format の修正
- 小さなステップでのリファクタリング(重複コードの集約)
- 大量の型追加、境界条件の追加
- 要件を分解し、タスクキューに従ってゆっくりと進める
これらの作業には共通点があります。タスクが多く、繰り返しが多く、受け入れ可能で、反復的に進めることができる。
ralph-tui を無理に適用すべきでないシナリオ
あなたが以下のような作業をしようとしているとします。
- 一度に行う大規模なリファクタリング、受け入れ基準が不明確
- 要件自体が曖昧で、あなたの頭の中にある暗黙知に頼っている
- 大量のチーム間コミュニケーション/確認が必要
- 製品判断が必要
このようなタスクでは、agent loop は混乱を拡大させるだけです。
ralph-loop(ralph-claude-code)との違いは何ですか?
ralph-claude-codeは、より「Claude Code の自動運転アドオン」のようなものです。スクリプトがそれを起動し、ループを実行し、終了検出、レート制限、サーキットブレーカーがすべてバックアップされます。あなたが「速さ」を求めているなら、それは非常に速いです。
ralph-tuiは、より「agent loop のエンジニアリングコンソール」のようなものです。特定のモデルに固定されておらず、特定のタスクシステムにも固定されていません。解決したいのは、「長期実行、可観測性、制御可能性、回復可能性、リモート操作」といったエンジニアリング上の問題です。
では、どちらを選ぶべきか?
- あなたは Claude Code ユーザーで、すぐに実行したい → ralph-claude-code
- 異なるモデルを接続したい、コストを節約したい、loop をサービスとして管理したい → ralph-tui
最後に:リポジトリを実験室にしないでください
私自身が agent loop を実行する際の鉄則がいくつかあります。これを守れば、失敗する可能性は大幅に低くなります。
- ブランチで実行し、main ブランチで無理をしないでください。
- 最初に実行するときは、必ず--iterations を追加し、小さなステップで暴走しないことを確認してください。
- タスクは受け入れ可能でなければなりません:テストを実行できるか、lint を実行できるか、出力ファイルを比較できるかのいずれかです。
- 停止することを学ぶ必要があります:ループし始めたら、お金を使い続けるよりも一時停止する方が賢明です。
- 安いモデルは粗い作業に、高価なモデルは重要な作業に使用します:コストは運用によって生まれるものであり、祈りによって生まれるものではありません。プロジェクトアドレス:https://github.com/subsy/ralph-tui





