AIエージェントを使った開発で「途中で止まってしまう」問題を感じたことはないでしょうか。
gnhfは「寝ている間にAIが自動でコードを書き続ける」を実現するOSS CLIツールです。Claude CodeやCodexなどのエージェントを自律ループで実行し、各イテレーションをGitコミットとして記録します。朝起きたら作業済みのブランチができている、という体験を提供します。
この記事でわかること:
- gnhfの概要と解決する課題
- インストール方法と基本的な使い方
- 主要機能(コミット管理・メモリ共有・並列実行)
- 類似ツールとの違い
AIエージェントを放置すると途中で止まる問題
Claude CodeやCodexを使って長時間タスクを実行しようとすると、確認待ち・エラー停止・トークン上限など様々な理由で処理が止まります。人間が付きっきりで監視するのは非効率で、特に「夜の間に大量のタスクをこなしたい」というニーズには応えられていませんでした。
gnhfはこの問題を「自律ループ+Gitコミット単位の進捗管理」で解決します。
gnhfとは
https://github.com/kunchenguid/gnhf
gnhf(Good Night, Have Fun)は、AIエージェントを自律的にループ実行し続けるOSS CLIオーケストレーターです。2026年4月24日にv0.1.26がリリースされており、macOS・Linux・Windowsで動作します。
使い方はシンプルで、Gitリポジトリ内で1コマンドを実行するだけです。
gnhf "コードの複雑さを下げてください"
これだけで、エージェントがループしながら少しずつ変更を加え、各イテレーションを個別のGitコミットとして保存します。成功したイテレーションはコミット、失敗したものは git reset --hard でロールバックします。
コミット単位の進捗管理で作業が消えない
各イテレーションは1つのGitコミットに対応します。途中で止めても進捗が保存されており、git log でどのステップまで完了したかを確認できます。失敗したイテレーションは自動でロールバックされるため、リポジトリが汚れる心配がありません。
3回連続で失敗するとループが自動停止します。ハードエラー(エージェントのクラッシュなど)は指数バックオフで再試行し、エージェント自身が「失敗」と報告した場合は即座に次のイテレーションへ進みます。
イテレーション間のメモリ共有
エージェントは各イテレーション終了時に notes.md を更新し、次のイテレーションへ情報を引き継ぎます。「前回の試行で何がうまくいかなかったか」を踏まえた上で次の変更に入るため、同じ失敗を繰り返しにくくなっています。
メモリの内容はリポジトリ内の .gnhf/runs/ に保存されますが、.gitignore 相当の扱いとなり、コミット対象のブランチには含まれません。
ランタイム制限オプション
gnhf "機能Xを実装してください" \
--max-iterations 10 \
--max-tokens 5000000 \
--stop-when "すべてのテストがパスした"
--max-iterations でイテレーション数の上限、--max-tokens でトークン使用量の上限を設定できます。--stop-when には自然言語で終了条件を指定でき、条件が満たされた時点でループを止められます。長時間稼働させるときはコスト管理のために --max-tokens を設定しておくのが安全です。
複数エージェントのworktree並列実行
--worktree フラグを使うと、同じリポジトリで複数のエージェントを同時に走らせられます。
gnhf --worktree "機能Xを実装" &
gnhf --worktree "モジュールYのテストを追加" &
gnhf --worktree "APIレイヤーをリファクタリング" &
各エージェントは独立したgit worktreeで動作するため、互いに干渉しません。実行後は各worktreeにコミット済みの作業が残り、git merge や cherry-pick で取り込めます。コミットのないworktreeは終了時に自動削除されます。
対応エージェント
現時点でサポートされているエージェントは次の通りです。
| エージェント | フラグ指定 |
|---|---|
| Claude Code | --agent claude(デフォルト) |
| Codex | --agent codex |
| Rovo Dev | --agent rovodev |
| OpenCode | --agent opencode |
| GitHub Copilot CLI | --agent copilot |
デフォルトはClaude Codeですが、~/.gnhf/config.yml でデフォルトエージェントを変更できます。
インストール方法
npmでグローバルにインストールします。
npm install -g gnhf
ソースからビルドする場合は以下の手順です。
git clone https://github.com/kunchenguid/gnhf.git
cd gnhf
npm install && npm run build && npm link
実行にはGitリポジトリが必要です。gnhfはクリーンなワーキングツリーを前提とするため、まだGitを初期化していないディレクトリでは git init を先に実行してください。
料金
gnhf自体は無料のOSSです。内部でエージェント(Claude Code、Codexなど)を呼び出すため、各エージェントのAPI使用料が別途発生します。長時間ループさせると大量のトークンを消費するため、--max-tokens で上限を設定しておくことを推奨します。
類似ツールとの違い
同様の「エージェント自律実行」アプローチとして、Andrej KarpathyのOSSである autoresearch や、ghuntleyの ralph があります。gnhfはこれらを参考に設計されており、特に「Gitコミット単位の粒度管理」「notes.mdによるイテレーション間メモリ」「worktreeを使った並列エージェント実行」「実行の再開機能」を組み合わせた点が特徴です。
Claude Code単体をカスタムループで動かす場合と比べると、失敗時のロールバック・メモリ引き継ぎ・再開のすべてが自動化されているため、エラーハンドリングのコードを自前で書く必要がありません。
まとめ
gnhfはコマンド1つでAIエージェントを夜間に自律実行し、作業をGitコミットとして積み上げていくCLIツールです。v0.1.26時点でClaude Code・Codex・GitHub Copilot CLIなど主要エージェントに対応しており、npm install -g gnhf で即座に使えます。
大量のリファクタリング・テスト追加・ドキュメント整備など、繰り返し性の高い作業を夜間バッチとして委任するユースケースに向いています。