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 mergecherry-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 で即座に使えます。

大量のリファクタリング・テスト追加・ドキュメント整備など、繰り返し性の高い作業を夜間バッチとして委任するユースケースに向いています。