gnhf是什麼
gnhf(全稱 good night, have fun)是開源的 AI Agent 自主編排器,核心理念是讓開發者在睡前給 AI 設定一個目標,讓它在你休息時持續迭代工作。每次只做一個小改動,成功便自動 git commit,失敗則 git reset --hard 回滾,醒來時你的倉庫分支上已滿是乾淨的提交記錄與完整日誌。原生支持 Claude Code、Codex、GitHub Copilot CLI 等主流 AI 編程助手,具備跨迭代記憶共享、斷點續跑、多任務 worktree 並行和實時 token 監控等能力,可通過 npm 一鍵安裝,跨平台運行,採用 MIT 協議開源在 GitHub 上。

gnhf的主要功能
-
夜間自主迭代:只需睡前給 AI 設定一個開發目標,Agent 便在你休息時自動循環執行,每次僅做一個小改動,醒來即可查看完整成果。
-
Git 紀律驅動:每次成功迭代自動生成獨立的
git commit,失敗迭代立即git reset --hard回滾,確保分支歷史乾淨、可追溯。 -
智能容錯與重試:Agent 報告的失敗進入下一輪迭代,硬錯誤採用指數退避,永久錯誤(如 API 餘額不足)立即中止並輸出日誌路徑,連續 3 次失敗後自動停止。
-
跨迭代記憶共享:Agent 通過
notes.md文件在多輪迭代間傳遞上下文與經驗,實現持續積累而非從零開始。 -
Worktree 並行:同一倉庫可同時啓動多個 gnhf 任務,每個擁有獨立工作目錄和分支,互不干擾,適合並行推進多項技術債務。
-
斷點續跑:在已有的
gnhf/分支上重新運行命令,可自動恢復之前的任務進度,無需從頭開始。 -
實時狀態監控:交互式運行時在終端標題欄實時顯示當前狀態、累計 token 消耗和 commit 數量,方便隨時掌握進展。
-
防休眠機制:運行期間自動阻止系統休眠,macOS 用
caffeinate,Linux 用systemd-inhibit,Windows 用 PowerShell 原生方案。 -
多 Agent 原生支持:開箱即用支持 Claude Code、Codex、GitHub Copilot CLI、Rovo Dev、OpenCode、Pi 六大主流 AI 編程助手,可通過配置自定義路徑和參數。
-
靈活的運行時控制:支持
--max-iterations限制迭代次數、--max-tokens限制 token 總量、--stop-when設定自然語言停止條件。 -
零侵入式集成:所有操作僅在自動創建的
gnhf/分支上進行,主分支完全不受影響;worktree 模式甚至不會污染原倉庫工作區。
如何使用gnhf
-
安裝部署:通過
npm install -g gnhf全局安裝,或從 GitHub 倉庫克隆源碼後執行npm install && npm run build && npm link本地構建。 -
基礎啓動:在目標倉庫根目錄運行
gnhf "你的開發目標",例如gnhf "reduce complexity of the codebase without changing functionality",工具會自動創建gnhf/分支並開始迭代。 -
限制迭代規模:使用
--max-iterations 10設定最大迭代次數,--max-tokens 5000000設定 token 消耗上限,避免資源失控。 -
設定自然語言停止條件:通過
--stop-when "所有測試通過"讓 Agent 在滿足特定條件時自動結束任務。 -
斷點續跑:在已有的
gnhf/分支上重新運行gnhf命令,選擇繼續歷史任務即可恢復之前的進度,無需從頭開始 -
多任務並行:使用
gnhf --worktree "任務A" &和gnhf --worktree "任務B" &在同一倉庫同時啓動多個 Agent,每個擁有獨立工作目錄和分支。 -
自定義 Agent 配置:編輯
~/.gnhf/config.yml設置默認 Agent(如claude、codex、copilot等)、防休眠開關、自定義二進制路徑及額外 CLI 參數。 -
查看運行日誌:所有運行元數據保存在
.gnhf/runs/目錄下,包含每次迭代的完整輸入輸出,便於審計和排查問題。 -
安全中止:運行期間按
Ctrl+C即可停止,或等待達到配置的上限後自動結束;連續 3 次失敗後也會自動中止並提示日誌路徑。
gnhf的官網地址
- Github倉庫:https://github.com/kunchenguid/gnhf
gnhf的關鍵信息和使用要求
-
項目全稱:gnhf,即 good night, have fun,由開發者 kunchenguid 創建並開源
-
技術棧:TypeScript / Node.js,依賴 Git 作爲版本控制底座
-
平台支持:macOS、Linux、Windows 三大主流操作系統
-
社區數據:上線約兩週即收穫 550+ GitHub Star,社區貢獻 73 個活躍 PR
-
核心理念:睡前給 AI 設定一個開發目標,讓它在你休息時持續迭代;每次只做一個小改動,成功則自動
git commit,失敗則git reset --hard回滾 -
原生支持的 Agent:Claude Code、Codex、GitHub Copilot CLI、Rovo Dev、OpenCode、Pi 共六種主流 AI 編程助手
-
分支隔離機制:所有操作在自動創建的
gnhf/<slug>分支上執行,主分支完全不受影響,支持 worktree 獨立工作目錄 -
配置目錄:運行時配置位於
~/.gnhf/config.yml,運行日誌與元數據保存在倉庫的.gnhf/runs/目錄下
-
環境要求:系統需預先安裝 Node.js 和 npm,且目標項目必須是一個 Git 倉庫(gnhf 依賴 Git 進行 commit 和回滾操作)
-
Agent 前置條件:需先在本地安裝並配置至少一種支持的 AI 編程助手(如 Claude Code、Codex 等),並確保其 CLI 命令在系統 PATH 中可用
-
API 資源準備:使用雲端 Agent(如 Claude Code、Codex)需確保 API 賬戶有足夠餘額,否則會被識別爲永久錯誤並立即中止
-
權限要求:運行目錄需對當前用戶可寫,以便創建
gnhf/分支、.gnhf/日誌目錄及notes.md記憶文件 -
防休眠依賴:macOS 需系統支持
caffeinate命令,Linux 需systemd-inhibit,Windows 依賴 PowerShell,無對應工具時防休眠功能將靜默失效 -
配置初始化:首次使用前建議編輯
~/.gnhf/config.yml指定默認 Agent 和偏好參數,避免每次命令行手動指定 -
運行監控:建議通過終端標題欄或
--max-tokens/--max-iterations參數設定資源上限,防止夜間 token 消耗失控 -
安全退出:運行期間可隨時按
Ctrl+C中斷,或依賴連續 3 次失敗自動中止機制;異常退出後可通過日誌路徑.gnhf/runs/排查原因
gnhf的核心優勢
-
夜間自動迭代,釋放開發者時間:睡前佈置任務,AI 在你休息時持續工作,醒來即可驗收成果,將”碎片時間”和”睡眠時段”轉化爲有效開發產能。
-
Git 紀律原生內建:每次成功改動自動
git commit,失敗立即git reset --hard回滾,無需人工審查即可保證分支歷史乾淨、可審計、隨時可回退。 -
零侵入式隔離:所有操作限定在自動創建的
gnhf/分支,主分支完全不受影響;--worktree模式甚至爲每個任務開闢獨立工作目錄,實現物理級隔離。 -
多 Agent 自由切換:原生支持 Claude Code、Codex、GitHub Copilot CLI、Rovo Dev、OpenCode、Pi 六大主流工具,不綁定單一廠商,可通過配置無縫切換或自定義擴展。
-
生產級容錯與成本控制:連續 3 次失敗自動中止,永久錯誤(如 API 餘額不足)立即退出,配合
--max-tokens和--max-iterations硬上限,防止夜間資源失控。 -
斷點續跑,進度不丟:在已有
gnhf/分支上重新運行即可恢復歷史任務,無需從頭開始,適合長週期複雜目標的持續攻堅。 -
跨迭代記憶積累:通過
notes.md在多輪迭代間傳遞上下文與失敗教訓,Agent 越跑越”聰明”,而非每次從零摸索。 -
同倉庫多任務並行:
--worktree支持同一項目同時推進多項技術債務(如一個補測試、一個做重構),互不干擾,成倍提升吞吐。 -
自然語言級運行控制:
--stop-when允許用白話設定停止條件(如”所有測試通過”),無需編寫複雜腳本即可精確控制任務邊界。 -
跨平台開箱即用:支持 macOS、Linux、Windows,自動適配各平台防休眠機制,一條
npm install -g gnhf命令即可完成部署。
gnhf的應用場景
-
測試覆蓋率補齊:針對遺留模塊或新功能自動補充單元測試、集成測試,利用夜間時間將覆蓋率從 60% 提升到 90% 而無需佔用白天編碼時間。
-
新功能漸進式實現:將大需求拆分爲小目標(如”實現用戶認證中間件”),讓 Agent 夜間逐步迭代,每步成功即 commit,失敗自動回滾,第二天驗收合併。
-
多模塊並行攻堅:同一項目同時啓動多個 worktree 任務,例如一個 Agent 補測試、一個 Agent 做重構、一個 Agent 升級依賴,互不干擾地並行推進。
-
開源項目日常維護:自動處理標記爲 “good first issue” 的簡單重構、文檔補全、依賴版本升級,維護者次日直接 review PR 即可。
-
API 層重構與遷移:夜間自動完成接口參數調整、廢棄方法替換、響應格式統一等低風險但耗時的機械改動,降低對白天業務開發的干擾。
-
代碼風格與 Lint 治理:批量修復 ESLint/Prettier 警告、統一命名規範、移除未使用變量,保持代碼庫長期整潔而不佔用核心開發精力。
© 版權聲明
文章版权归作者所有,未经允许请勿转载。
相關文章
暫無評論...