helloloop 0.9.1 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/.claude-plugin/plugin.json +1 -1
  2. package/README.md +230 -506
  3. package/hosts/claude/marketplace/plugins/helloloop/.claude-plugin/plugin.json +1 -1
  4. package/hosts/gemini/extension/gemini-extension.json +1 -1
  5. package/native/windows-hidden-shell-proxy/HelloLoopHiddenShellProxy.csproj +11 -0
  6. package/native/windows-hidden-shell-proxy/Program.cs +498 -0
  7. package/package.json +4 -2
  8. package/src/activity_projection.mjs +294 -0
  9. package/src/analyze_confirmation.mjs +3 -1
  10. package/src/analyzer.mjs +2 -1
  11. package/src/auto_execution_options.mjs +13 -0
  12. package/src/background_launch.mjs +73 -0
  13. package/src/cli.mjs +49 -1
  14. package/src/cli_analyze_command.mjs +9 -5
  15. package/src/cli_args.mjs +102 -37
  16. package/src/cli_command_handlers.mjs +44 -4
  17. package/src/cli_support.mjs +2 -0
  18. package/src/dashboard_command.mjs +371 -0
  19. package/src/dashboard_tui.mjs +289 -0
  20. package/src/dashboard_web.mjs +351 -0
  21. package/src/dashboard_web_client.mjs +167 -0
  22. package/src/dashboard_web_page.mjs +49 -0
  23. package/src/engine_event_parser_codex.mjs +167 -0
  24. package/src/engine_process_support.mjs +1 -0
  25. package/src/engine_selection.mjs +24 -0
  26. package/src/engine_selection_probe.mjs +10 -6
  27. package/src/engine_selection_settings.mjs +12 -19
  28. package/src/execution_interactivity.mjs +12 -0
  29. package/src/host_continuation.mjs +305 -0
  30. package/src/install_codex.mjs +20 -8
  31. package/src/install_shared.mjs +9 -0
  32. package/src/node_process_launch.mjs +28 -0
  33. package/src/process.mjs +2 -0
  34. package/src/runner_execute_task.mjs +4 -0
  35. package/src/runner_execution_support.mjs +69 -3
  36. package/src/runner_once.mjs +4 -0
  37. package/src/runner_status.mjs +63 -7
  38. package/src/runtime_engine_support.mjs +41 -4
  39. package/src/runtime_engine_task.mjs +7 -0
  40. package/src/runtime_settings.mjs +105 -0
  41. package/src/runtime_settings_loader.mjs +19 -0
  42. package/src/shell_invocation.mjs +227 -9
  43. package/src/supervisor_cli_support.mjs +3 -2
  44. package/src/supervisor_guardian.mjs +307 -0
  45. package/src/supervisor_runtime.mjs +138 -82
  46. package/src/supervisor_state.mjs +64 -0
  47. package/src/supervisor_watch.mjs +92 -48
  48. package/src/terminal_session_limits.mjs +1 -21
  49. package/src/windows_hidden_shell_proxy.mjs +405 -0
  50. package/src/workspace_registry.mjs +155 -0
package/README.md CHANGED
@@ -1,657 +1,381 @@
1
1
  # HelloLoop
2
2
 
3
3
  > [!WARNING]
4
- > **风险提示**
5
- > 使用 `HelloLoop` 执行持续 / 持久型任务仍存在不可完全控制的风险。虽然项目已经加入高危行为管控与防护策略,但仍不能排除误删数据、误改文件、异常覆盖或其他不可预期后果。请在使用前务必先备份重要数据,并自行通过人工或借助 AI 对 `HelloLoop` 的安全风险做评估与审计;因使用本插件造成的数据丢失或其他损失,项目方不承担责任。
4
+ > `HelloLoop` 适合“持续推进型”的自动开发任务,不适合在未备份的重要仓库上直接盲跑。请先备份关键数据,并对自动修改结果进行人工复核。
6
5
 
7
- `HelloLoop` 是一个面向 `Codex CLI`、`Claude Code`、`Gemini CLI` 的多宿主开发工作流插件,用来把“根据开发文档持续接续开发、测试、验收,直到最终目标完成”收敛成一条统一、可确认、可追踪的标准流程。
6
+ `HelloLoop` 是一个面向 `Codex CLI`、`Claude Code`、`Gemini CLI` 的持续开发工作流插件。
8
7
 
9
- 它的核心原则很简单:
8
+ 它解决的不是“问一次、答一次”的问题,而是这类场景:
10
9
 
11
- - 三家都能安装、都能用、都按各自原生 agent 逻辑执行
12
- - `Codex CLI` 仍然是首发平台、参考实现和最佳体验路径
13
- - 运行状态统一写入目标仓库根目录的 `.helloloop/`
14
- - 真正执行前先分析、先确认,执行中不静默失败、不静默切换
10
+ - 根据开发文档持续推进一个仓库,直到 backlog 清空
11
+ - 先分析当前代码进度,再补齐缺口,而不是从头乱做
12
+ - 中途遇到宿主中断、限流、网络抖动后还能继续接上
13
+ - 同时查看多个仓库的任务状态与执行进度
15
14
 
16
- ## 宿主与执行引擎
15
+ ---
17
16
 
18
- `HelloLoop` 区分两个概念:
17
+ ## 1. HelloLoop 能做什么
19
18
 
20
- - **宿主**:你从哪里进入,例如终端、`Codex`、`Claude`、`Gemini`
21
- - **执行引擎**:真正负责本轮分析 / 开发 / 测试推进的 CLI
19
+ 把“开发文档 + 现有代码 + 持续执行 + 可视化跟踪”收口成一条标准流程:
22
20
 
23
- 这意味着:
21
+ 1. 自动识别项目仓库与开发文档
22
+ 2. 分析当前进度、偏差和剩余任务
23
+ 3. 生成 / 刷新 `.helloloop/backlog.json`
24
+ 4. 输出中文确认单
25
+ 5. 确认后持续执行、验证、复核
26
+ 6. 中断后支持继续接续,而不是重新来一遍
24
27
 
25
- - 三宿主都只在用户显式调用 `helloloop` 时介入;普通会话不会被 HelloLoop 自动接管
26
- - 在 `Codex` 中,只有显式输入 `$helloloop` / `#helloloop` / `helloloop:helloloop` 才算调用;仅仅提到 `helloloop` 仓库、README、代码、测试、release、npm 包名,都不算调用
27
- - 无论在终端还是在 `Codex` / `Claude` / `Gemini` 宿主内,只要用户未明确指定引擎,`HelloLoop` 都会先询问本轮执行引擎
28
- - 当前宿主、项目历史、用户历史只作为推荐依据,不会自动替你选中引擎
29
- - 如果你已经显式指定,或已经在首轮确认中明确选定了引擎,本轮就固定按该引擎执行
30
- - 如果后续因为登录、配额、限流等问题需要改用别的引擎,`HelloLoop` 也会先询问,不会静默切换
28
+ ---
31
29
 
32
- ## 支持矩阵
30
+ ## 2. 最适合的使用场景
33
31
 
34
- | 宿主 | 安装方式 | 原生入口 | 说明 |
35
- | --- | --- | --- | --- |
36
- | `Codex CLI` | `helloloop install` / `helloloop install --host codex` | `Codex` 内:`$helloloop`;终端:`npx helloloop` | 仅在显式调用时进入 HelloLoop |
37
- | `Claude Code` | `helloloop install --host claude` | `/helloloop` | 仅在显式调用时进入 HelloLoop |
38
- | `Gemini CLI` | `helloloop install --host gemini` | `/helloloop` | 仅在显式调用时进入 HelloLoop |
32
+ - 按架构文档、PRD、任务拆解持续完成仓库开发
33
+ - 多仓并行推进,需要统一看板跟踪
34
+ - 任务需要跑很久,不希望因为一次中断就全部停掉
35
+ - 需要让主终端、TUI 看板、Web 看板都能看到当前状态
36
+ - 需要在 `Codex CLI` / `Claude Code` / `Gemini CLI` 之间保持一致体验
39
37
 
40
- 补充说明:
38
+ 不适合的场景:
41
39
 
42
- - `install --host codex` 只会把 `HelloLoop` 注册成 `Codex` 插件,不会把 `helloloop` 写进系统 `PATH`
43
- - 终端里的 `npx helloloop` 始终是 npm CLI 入口;如果本机未全局安装,首次执行出现 `Need to install the following packages` 属正常行为
44
- - `Codex` 安装完成后,建议重启 `Codex` 或新开一个会话,再检查 `$helloloop`
40
+ - 只改一个很小的文件
41
+ - 单轮对话就能完成的简单问答
42
+ - 不允许自动修改文件、只想人工讨论方案
45
43
 
46
- ## 最短使用方式
44
+ ---
47
45
 
48
- 推荐先记住下面四种:
46
+ ## 3. 核心能力
49
47
 
50
- ```bash
51
- npx helloloop
52
- npx helloloop <PATH>
53
- npx helloloop claude
54
- npx helloloop gemini <PATH> 接续完成剩余开发
55
- ```
56
-
57
- 其中:
58
-
59
- - `<PATH>` 可以是项目仓库路径、开发文档目录、开发文档文件
60
- - 命令后可以继续追加自然语言要求
61
- - 不确定时,优先只输入 `npx helloloop`
62
-
63
- ## 执行引擎选择规则
64
-
65
- 执行规则如下:
66
-
67
- 1. 命令首参数显式引擎:`codex` / `claude` / `gemini`
68
- 2. 自然语言中明确且不歧义地指定了引擎
69
- 3. 如果前两步仍未明确,先停下来询问本轮执行引擎;当前宿主、项目上次 / 默认、用户上次 / 默认只作为推荐依据
70
- 4. `-y` / `--yes` 等非交互模式下,如果你没有显式指定引擎,`HelloLoop` 会直接停止并要求补充引擎
71
-
72
- 补充说明:
73
-
74
- - 首参只有第一个裸词会被解释为引擎;如果你真要把 `claude` 当目录名,请写成 `./claude`、`.\claude` 或绝对路径
75
- - 命令后的自然语言如果明确提到 `codex`、`claude`、`gemini`,也会纳入意图判断
76
- - 当前宿主、项目历史、用户历史不会触发自动选中,只会影响“推荐项”
77
- - `已安装` 不等于 `可继续执行`;如果当前引擎在运行中遇到 400、鉴权、欠费、429、5xx、网络抖动、流中断、长时间卡死等问题,`HelloLoop` 会先按无人值守策略做同引擎“健康探测 + 条件恢复”,不会中途停下来询问
78
-
79
- ## 默认工作流
80
-
81
- 无论从哪个宿主进入,都遵循同一条主线:
82
-
83
- 1. 自动识别目标项目仓库与开发文档
84
- 2. 分析当前代码进度、偏差和项目匹配性
85
- 3. 在目标仓库根目录创建或刷新 `.helloloop/`
86
- 4. 输出中文执行确认单
87
- 5. 用户确认后,按选中的执行引擎持续推进开发、测试、验收
88
- 6. 每个任务完成后,自动做一次“任务完成复核”
89
- 7. backlog 暂时清空后,自动做一次“主线终态复核”
90
-
91
- 如果分析发现当前实现已经偏离开发文档,`HelloLoop` 会优先先收口偏差,再继续后面的 backlog。
92
-
93
- 这意味着:
94
-
95
- - 不会因为执行引擎自己一句“已完成”就直接结束
96
- - 如果只是部分完成,`HelloLoop` 会继续当前主线任务,而不是跳去做模型随口建议的别的事
97
- - 如果 backlog 清空了,但主线终态复核仍发现文档目标还有缺口,`HelloLoop` 会自动重新分析并继续推进
98
- - 如果模型只做了一半就想停下来给“下一步建议”,`HelloLoop` 会优先按主线目标继续推进,而不是把半成品当完成
99
-
100
- ## 后台监督执行
101
-
102
- 从当前版本开始,`HelloLoop` 的自动执行主线统一走 **detached supervisor + host lease** 模式:
103
-
104
- - `analyze` 确认后的自动执行、`run-once`、`run-loop` 都默认切到后台 supervisor
105
- - 交互终端里默认会**自动附着观察**这个后台 supervisor:你仍然能在当前 CLI 里看到实时进度与流式输出
106
- - 当前对话 turn 就算被误按 `Esc`、被宿主暂停、或当前工具调用被中断,后台 supervisor 仍会继续
107
- - 原有的 15 分钟级恢复、健康探测、同引擎自动恢复,也会继续由这个后台 supervisor 接管
108
- - 这不是“当前进程死掉后每 15 分钟重新拉起一遍主进程”,而是 supervisor 本身持续存活,所以恢复链不会因为当前 turn 消失而断掉
109
- - 真正的停止边界改成 **宿主租约**:只要宿主 CLI 窗口 / 进程还活着,任务就继续;如果宿主窗口真的关闭,HelloLoop 才会停止当前子进程并把任务回退为 `pending`
110
-
111
- 常见场景:
112
-
113
- - 在 `Codex` / `Claude` / `Gemini` 宿主里运行 `helloloop`:确认后默认后台执行,并尽量保持当前 CLI 可观察
114
- - 在普通终端里运行 `npx helloloop`、`npx helloloop run-once`、`npx helloloop run-loop`:默认也是“后台执行 + 当前终端附着观察”
115
- - 如果你就是想让命令立刻返回、不占当前终端:显式加 `--detach`
116
- - 如果你稍后想重新接上实时观察:运行 `helloloop watch` 或 `helloloop status --watch`
117
- - 因此当前版本**不需要先上 Web 看板** 才能解决“后台执行看不到过程”的问题;CLI 观察链已经是第一优先级
118
-
119
- ## 无人值守恢复
120
-
121
- `HelloLoop` 的设计目标不是“跑一轮停一轮”,而是启动前确认一次,启动后持续无人值守推进。
122
-
123
- - 因此运行中的默认策略是:
124
-
125
- - 普通运行故障不再中途提问:不会因为 429、5xx、网络抖动、结果流中断、短时空输出就停下来问用户
126
- - 同引擎优先恢复:默认不会自动切换引擎,也不会偷偷改用别的 CLI
127
- - 先探测、后续跑:重试前会先做最小健康探测;只有探测通过后,才会恢复主线任务,而不是盲目把完整任务再跑一遍
128
- - 保留主线上下文恢复:同引擎恢复时会生成恢复记录与恢复 prompt,要求新一轮执行直接基于当前仓库状态继续,而不是从头另起一套
129
- - 定时心跳检查:运行中会持续写入心跳与恢复状态,用于判断当前阶段是否还在正常推进
130
- - 最终停止会告警:如果自动恢复额度真正用尽,且已配置全局邮箱,`HelloLoop` 会把错误类型与具体内容发到指定邮箱
131
-
132
- 默认恢复节奏:
133
-
134
- - 心跳间隔:60 秒
135
- - 疑似卡住预警:15 分钟无可见进展
136
- - 自动终止阈值:45 分钟无可见进展
137
- - 硬阻塞:每 15 分钟探测 1 次,共 5 次;仍失败则暂停等待人工介入
138
- - 软阻塞:先每 15 分钟探测 5 次,再 30 分钟 2 次,再按 60 / 90 / 120 / 150 / 180 分钟各探测 1 次;仍失败则暂停等待人工介入
139
-
140
- 如果你明确指定或确认了本轮引擎,`HelloLoop` 在自动恢复阶段也会继续锁定该引擎,不会擅自切换。
141
-
142
- 但要特别注意:
143
-
144
- - 在 `Codex` / `Claude` / `Gemini` 宿主里,当前 turn 被误按 `Esc`、当前工具调用被取消,或当前会话暂时暂停时,只要宿主窗口本身还活着,后台 supervisor 仍会继续,原有自动恢复节奏也会继续生效
145
- - 如果真正关闭了宿主 CLI 窗口、终端进程结束,或宿主租约已经失效,HelloLoop 会停止当前子进程,并把未完成任务回退为 `pending`
146
- - 也就是说:**当前 turn 取消 ≠ 停止 HelloLoop;关闭宿主窗口 = 停止 HelloLoop**
147
- - 宿主窗口已经关闭后,HelloLoop 不会再脱离宿主自行无限后台驻留;这时需要你重新打开宿主并再次显式调用 `helloloop` 来接续
48
+ - 显式调用才接管,不会默默劫持普通对话
49
+ - 自动对齐“开发文档目标”与“当前代码事实”
50
+ - 分析、执行、验证、任务复核、主线终态复核一体化
51
+ - 默认后台执行,但当前终端可以继续实时观察
52
+ - 宿主中断后可输出自然语言续跑提示
53
+ - 提供终端 TUI 总控台
54
+ - 提供本地 Web 看板
55
+ - 提供结构化 JSON 状态流,方便上层程序消费
56
+ - Windows 下尽量隐藏后台控制台,避免频繁弹窗 / 闪烁
148
57
 
149
- ## 全局告警配置
58
+ ---
150
59
 
151
- 如果希望在“自动恢复彻底停止”后收到邮件告警,可在:
60
+ ## 4. 支持的宿主
152
61
 
153
- ```text
154
- ~/.helloloop/settings.json
155
- ```
156
-
157
- 中配置邮件通知,例如:
158
-
159
- ```json
160
- {
161
- "notifications": {
162
- "email": {
163
- "enabled": true,
164
- "to": ["you@example.com"],
165
- "from": "helloloop@example.com",
166
- "smtp": {
167
- "host": "smtp.example.com",
168
- "port": 465,
169
- "secure": true,
170
- "username": "helloloop@example.com",
171
- "passwordEnv": "HELLOLOOP_SMTP_PASSWORD"
172
- }
173
- }
174
- }
175
- }
176
- ```
62
+ | 宿主 | 调用方式 |
63
+ | --- | --- |
64
+ | `Codex CLI` | `Codex` 内输入 `$helloloop` / `#helloloop` / `helloloop:helloloop` |
65
+ | `Claude Code` | `/helloloop` |
66
+ | `Gemini CLI` | `/helloloop` |
67
+ | 普通终端 | `npx helloloop` |
177
68
 
178
69
  说明:
179
70
 
180
- - 建议把 SMTP 密码放在环境变量里,不要明文写进配置文件
181
- - 邮件只在“本轮不再继续自动重试”时发送,不会每次失败都刷屏
71
+ - 只有用户显式调用时才进入 HelloLoop
72
+ - 只是在对话里提到 `helloloop` 仓库、README、命令示例,不算调用
182
73
 
183
- ## 终端并发上限
74
+ ---
184
75
 
185
- `HelloLoop` 不会主动再额外弹出一堆可见终端窗口;这里的:
76
+ ## 5. 安装
186
77
 
187
- - **显示终端** 指当前前台运行中的 `helloloop` 会话
188
- - **背景终端** 指 detached supervisor 后台会话
78
+ ### 安装到 Codex
189
79
 
190
- 默认限制为:
191
-
192
- - 显示终端最多 `8`
193
- - 背景终端最多 `8`
194
- - 显示 + 背景合计最多 `8`
80
+ ```bash
81
+ npx helloloop install --host codex
82
+ ```
195
83
 
196
- 可在:
84
+ ### 安装到 Claude Code
197
85
 
198
- ```text
199
- ~/.helloloop/settings.json
86
+ ```bash
87
+ npx helloloop install --host claude
200
88
  ```
201
89
 
202
- 中自行调整,例如:
203
-
204
- ```json
205
- {
206
- "runtime": {
207
- "terminalConcurrency": {
208
- "enabled": true,
209
- "visibleMax": 8,
210
- "backgroundMax": 8,
211
- "totalMax": 8
212
- }
213
- }
214
- }
90
+ ### 安装到 Gemini CLI
91
+
92
+ ```bash
93
+ npx helloloop install --host gemini
215
94
  ```
216
95
 
217
- 说明:
96
+ ### 一次装到全部宿主
218
97
 
219
- - 只要合计并发达到 `totalMax`,新前台会话或新的后台 supervisor 都不会再继续启动
220
- - 如果只是想临时完全关闭这个保护,可把 `enabled` 设为 `false`
221
- - 这个限制主要用于避免同时占用过多本机终端资源,或因为并发过高触发模型 / API 限速
98
+ ```bash
99
+ npx helloloop install --host all
100
+ ```
222
101
 
223
- ## 自动发现与交互逻辑
102
+ ---
224
103
 
225
- ### 1. 只输入 `npx helloloop`
104
+ ## 6. 最快上手
226
105
 
227
- 如果你只输入:
106
+ ### 只让 HelloLoop 自己判断
228
107
 
229
108
  ```bash
230
109
  npx helloloop
231
110
  ```
232
111
 
233
- `HelloLoop` 会先明确执行引擎,再快速扫描当前目录:
234
-
235
- - 当前目录本身就是开发文档目录时,会先尝试从文档反推项目目录
236
- - 当前目录看起来像普通项目目录时,默认直接把当前目录作为项目目录
237
- - 当前目录更像工作区或用户主目录时,才会额外询问项目目录
238
- - 如果当前项目目录下没有明确开发文档,会只提示补充“开发文档”这一项,并说明已检查的常见位置
239
-
240
- ### 2. 项目路径只问一次
241
-
242
- 对外只有“项目路径”这一个概念:
243
-
244
- - 输入已有目录 → 按现有项目继续分析
245
- - 输入不存在的目录 → 视为准备创建的新项目目录
246
-
247
- 不会再额外追问一个“新项目路径”。
248
-
249
- ### 3. 缺什么就只问什么
250
-
251
- 正常情况下只需要两项信息:
252
-
253
- - 项目目录
254
- - 开发文档
255
-
256
- 其中:
257
-
258
- - 项目目录默认优先使用当前打开的目录
259
- - 当前目录明显不是项目目录时,才会额外询问项目目录
260
- - 开发文档缺失时,只会询问开发文档
261
-
262
- 以下情况不会硬猜:
112
+ ### 指定开发文档或项目路径
263
113
 
264
- - 给了开发文档,但仍无法定位项目目录
265
- - 给了项目路径,但无法定位开发文档
266
- - 同时出现多个冲突的文档路径或项目路径
267
-
268
- ### 4. 命令 + 自然语言会一起分析
269
-
270
- `HelloLoop` 不依赖固定中文关键词做硬编码分流。
271
-
272
- 命令里的:
273
-
274
- - 显式路径
275
- - 中文自然语言
276
- - 英文自然语言
277
- - 其他语言的补充要求
278
-
279
- 都会一起进入分析和确认单,不会因为语言不同被静默忽略。
280
-
281
- ### 5. 现有项目与文档目标冲突时
114
+ ```bash
115
+ npx helloloop <PATH>
116
+ ```
282
117
 
283
- 如果当前项目目录已存在,但分析认为它与开发文档目标明显冲突,`HelloLoop` 不会直接清空目录,而是先提示你选择:
118
+ `<PATH>` 可以是:
284
119
 
285
- 1. 继续在当前项目上尝试接续
286
- 2. 清理当前项目内容后按文档目标重建
287
- 3. 取消本次执行
120
+ - 项目仓库目录
121
+ - 开发文档目录
122
+ - 开发文档文件
288
123
 
289
- 如果你明确希望非交互模式下直接重建,可以使用:
124
+ ### 明确指定执行引擎
290
125
 
291
126
  ```bash
292
- npx helloloop --rebuild-existing
127
+ npx helloloop codex
128
+ npx helloloop claude
129
+ npx helloloop gemini
293
130
  ```
294
131
 
295
- ## 执行确认单
296
-
297
- 真正开始开发前,`HelloLoop` 会先输出中文执行确认单,至少包含:
298
-
299
- - 路径判断与判断依据
300
- - 本次命令补充输入
301
- - 执行引擎
302
- - 需求语义理解
303
- - 项目匹配判断
304
- - 项目目录
305
- - 开发文档
306
- - 当前进度
307
- - 已实现事项
308
- - 待完成事项
309
- - 任务统计
310
- - 首个待执行任务
311
- - 验证命令预览
312
- - 自动执行停止条件
132
+ ### 跳过确认直接开始
313
133
 
314
- 未确认前,不会正式修改代码。
134
+ ```bash
135
+ npx helloloop -y
136
+ ```
315
137
 
316
- 确认后,默认行为不是“跑一轮就停”,而是:
138
+ ### 只分析,不执行
317
139
 
318
- - 先按 backlog 执行当前颗粒度任务
319
- - 每个任务完成后复核其验收是否真的闭合
320
- - backlog 清空后再复核一次整个主线目标
321
- - 只有“任务验收闭合 + 主线目标闭合 + 验证通过”才算真正结束
322
- - 运行中若出现可恢复的 CLI 故障,则按无人值守策略自动恢复,不打断主线
140
+ ```bash
141
+ npx helloloop --dry-run
142
+ ```
323
143
 
324
- ## 安装
144
+ ---
325
145
 
326
- ### 通过 npm / npx
146
+ ## 7. 常见使用方式
327
147
 
328
- 默认安装到 `Codex`:
148
+ ### 场景 A:根据文档持续完成一个仓库
329
149
 
330
150
  ```bash
331
- npx helloloop install
332
- npx helloloop install --codex-home <CODEX_HOME>
151
+ npx helloloop "D:\GitHub\dev\hellomind-codex\docs"
333
152
  ```
334
153
 
335
- 安装到指定宿主:
154
+ ### 场景 B:指定仓库并补充自然语言要求
336
155
 
337
156
  ```bash
338
- npx helloloop install --host codex
339
- npx helloloop install --host claude
340
- npx helloloop install --host gemini
341
- npx helloloop install --host all
157
+ npx helloloop "D:\GitHub\dev\repo" 先对齐开发文档,再继续完成剩余任务
342
158
  ```
343
159
 
344
- 可选 home 参数:
160
+ ### 场景 C:强制某个引擎继续推进
345
161
 
346
162
  ```bash
347
- --codex-home <CODEX_HOME>
348
- --claude-home <CLAUDE_HOME>
349
- --gemini-home <GEMINI_HOME>
163
+ npx helloloop codex "D:\GitHub\dev\repo" 接着做,不要重新分析无关内容
350
164
  ```
351
165
 
352
- ### 从源码仓库安装
166
+ ### 场景 D:宿主中断后继续接上
353
167
 
354
168
  ```bash
355
- node ./scripts/helloloop.mjs install --host codex
169
+ helloloop resume-host
356
170
  ```
357
171
 
358
- Windows PowerShell 也可以直接运行:
172
+ 如果要让上层程序读取结构化结果:
359
173
 
360
- ```powershell
361
- pwsh -NoLogo -NoProfile -File .\scripts\install-home-plugin.ps1 -CodexHome <CODEX_HOME>
174
+ ```bash
175
+ helloloop resume-host --json
362
176
  ```
363
177
 
364
- ### 升级、重装、切换分支
178
+ ---
365
179
 
366
- ```bash
367
- npx helloloop install --force
368
- npx helloloop install --host claude --force
369
- npx helloloop install --host gemini --force
370
- npx helloloop install --host codex --force
371
- npx helloloop install --host all --force
372
- ```
180
+ ## 8. 后台执行与继续观察
373
181
 
374
- 说明:
182
+ `HelloLoop` 的默认体验是:
375
183
 
376
- - `--force` 会清理当前宿主里已有安装残留的 `helloloop` 目录后再重装
377
- - `Codex` 会刷新 home 根下的插件源码目录、已安装缓存、`config.toml` 启用项和 marketplace 条目
378
- - `Claude` 会刷新 marketplace、缓存插件目录,以及 `settings.json` / `known_marketplaces.json` / `installed_plugins.json` 中的 `helloloop` 条目
379
- - `Gemini` 会刷新 `extensions/helloloop/`,不会动同目录下其他扩展
380
- - 安装 / 升级 / 重装时,会把 `~/.helloloop/settings.json` 严格收敛到当前版本 schema:补齐缺失项、清理未知项、把非法值重置为当前版本默认值
381
- - 如果 `~/.helloloop/settings.json` 被确认不是合法 JSON,会先备份原文件,再按当前版本结构重建
382
- - 如果只是首次读取时出现瞬时异常,但重读后内容合法,则不会误生成备份文件
383
- - 如果宿主自己的配置 JSON(如 `Codex marketplace.json`、`Claude settings.json`、`known_marketplaces.json`、`installed_plugins.json`)本身已损坏,`HelloLoop` 会先明确报错并停止,不会先清理现有安装再失败
184
+ - 自动执行时切到后台继续跑
185
+ - 当前终端仍可继续观察实时输出
186
+ - 当前 turn 被打断,不等于后台任务立即停止
384
187
 
385
- ### 卸载
188
+ 如果你稍后想重新看进度:
386
189
 
387
190
  ```bash
388
- npx helloloop uninstall --host codex
389
- npx helloloop uninstall --host claude
390
- npx helloloop uninstall --host gemini
391
- npx helloloop uninstall --host all
191
+ helloloop watch
192
+ helloloop status --watch
392
193
  ```
393
194
 
394
- 卸载是定向清理:
395
-
396
- - 只删除 `helloloop` 自己的安装目录和注册条目
397
- - 不会顺带删除别的插件、marketplace、扩展或自定义配置
398
- - 即使某个宿主当前未安装 `helloloop`,也会安全退出,不做破坏性清理
399
-
400
- ## 使用入口
401
-
402
- ### 终端
195
+ 如果你只想后台继续跑,前台命令立即返回:
403
196
 
404
197
  ```bash
405
- npx helloloop
406
- npx helloloop <PATH>
407
- npx helloloop codex <PATH>
408
- npx helloloop claude <PATH>
409
- npx helloloop gemini <PATH> <补充说明>
198
+ helloloop run-loop --detach
199
+ helloloop run-once --detach
410
200
  ```
411
201
 
412
- 如果已经做了全局安装,也可以把 `npx helloloop` 简写为 `helloloop`。是否立刻可用取决于当前 shell 是否已经刷新 `PATH`。
413
-
414
- ### Codex CLI
202
+ ---
415
203
 
416
- ```text
417
- $helloloop
418
- helloloop:helloloop
419
- ```
204
+ ## 9. 看板与可视化
420
205
 
421
- 在终端里(包括 `Codex` 打开的内置终端)也可以直接执行:
206
+ ### 终端 TUI 总控台
422
207
 
423
208
  ```bash
424
- npx helloloop
209
+ helloloop dashboard
210
+ helloloop tui
211
+ helloloop dash
425
212
  ```
426
213
 
427
- 如果你在 `Codex` 中直接使用 `$helloloop` 或 `npx helloloop`,但没有明确指定引擎,`HelloLoop` 仍会先让你确认本轮引擎;`Codex` 只会作为推荐项,不会被自动选中。
428
- 未显式调用 `$helloloop`、`helloloop:helloloop` 或 `npx helloloop` 时,普通 `Codex` 会话不会被 HelloLoop 自动接管。
429
-
430
- ### Claude Code / Gemini CLI
214
+ 适合:
431
215
 
432
- ```text
433
- /helloloop
434
- ```
216
+ - 常驻一个终端看多仓任务
217
+ - 在仓库之间快速切换
218
+ - 查看 backlog 的待处理 / 进行中 / 已完成 / 阻塞 / 失败
435
219
 
436
- 它们会按各自 CLI 的原生 agent 逻辑执行,但共享同一套 `.helloloop/` 工作流规范。
437
- 只有在你显式调用 `/helloloop` 时,它们才会进入 HelloLoop 工作流;普通 Claude / Gemini 会话不会被自动接管。
220
+ 快捷键:
438
221
 
439
- ## 常用命令
222
+ - `← / →` 切换仓库
223
+ - `↑ / ↓` 滚动
224
+ - `1-9` 直达仓库
225
+ - `r` 刷新
226
+ - `q` 退出
440
227
 
441
- | 命令 | 作用 |
442
- | --- | --- |
443
- | `helloloop` / `analyze` | 自动分析、展示确认单,并在确认后持续接续开发,直到主线目标闭合或遇到硬阻塞 |
444
- | `install` | 安装运行时 bundle 到指定宿主 |
445
- | `uninstall` | 从指定宿主卸载运行时 bundle 与注册信息 |
446
- | `doctor` | 检查宿主环境、插件资产与目标仓库状态 |
447
- | `init` | 手动初始化 `.helloloop/` 模板 |
448
- | `status` | 查看 backlog 摘要和当前状态 |
449
- | `watch` | 重新附着后台 supervisor,持续查看实时进度 |
450
- | `next` | 生成下一任务的干跑预览 |
451
- | `run-once` | 执行一个任务 |
452
- | `run-loop` | 连续执行多个任务 |
453
-
454
- 常用选项:
455
-
456
- | 选项 | 作用 |
457
- | --- | --- |
458
- | `codex` / `claude` / `gemini` | 作为 `analyze` 模式的命令首参数,显式指定执行引擎 |
459
- | `--dry-run` | 只分析并输出确认单,不开始自动执行 |
460
- | `-y` / `--yes` | 跳过执行确认直接开始;但如果未显式指定引擎,会直接报错而不是自动选引擎 |
461
- | `--repo <dir>` | 高级覆盖:显式指定项目仓库 |
462
- | `--docs <dir|file>` | 高级覆盖:显式指定开发文档 |
463
- | `--watch` | 启动后台 supervisor 后,当前终端继续附着观察实时输出 |
464
- | `--detach` | 仅启动后台 supervisor,立即返回,不进入观察模式 |
465
- | `--rebuild-existing` | 项目与文档冲突时,自动清理现有项目后重建 |
466
- | `--host <name>` | 安装宿主:`codex` / `claude` / `gemini` / `all` |
467
- | `--config-dir <dir>` | 状态目录名,默认 `.helloloop` |
468
-
469
- 手动控制示例:
228
+ ### 本地 Web 看板
470
229
 
471
230
  ```bash
472
- npx helloloop status
473
- npx helloloop status --watch
474
- npx helloloop watch
475
- npx helloloop next
476
- npx helloloop run-once
477
- npx helloloop run-loop --detach
231
+ helloloop web
478
232
  ```
479
233
 
480
- ## Doctor
234
+ 默认会启动一个本地 Web 服务,并输出访问地址。
481
235
 
482
- 检查默认宿主:
236
+ 可选参数:
483
237
 
484
238
  ```bash
485
- npx helloloop doctor
239
+ helloloop web --port 3210
240
+ helloloop web --bind 127.0.0.1
241
+ helloloop web --stop
486
242
  ```
487
243
 
488
- 检查全部宿主:
244
+ 适合:
489
245
 
490
- ```bash
491
- npx helloloop doctor --host all
492
- ```
246
+ - 长时间像 Jira 一样挂着看板
247
+ - 多仓泳道 + 任务列跟踪
248
+ - 点击任务查看详情
493
249
 
494
- 检查指定安装目录:
250
+ ### 给主代理或外部程序消费结构化状态
495
251
 
496
252
  ```bash
497
- npx helloloop doctor --host all --codex-home <CODEX_HOME> --claude-home <CLAUDE_HOME> --gemini-home <GEMINI_HOME>
253
+ helloloop dashboard --json
254
+ helloloop dashboard --json --watch
255
+ helloloop dash -j --watch --poll-ms 2000
498
256
  ```
499
257
 
500
- ## 发布流程
258
+ ---
501
259
 
502
- `HelloLoop` 当前采用 **tag 驱动发布**:
260
+ ## 10. 常用命令速查
503
261
 
504
- 1. 先在源码仓库完成版本号更新(`package.json` 与各宿主 manifest 保持一致)
505
- 2. 本地先执行:
262
+ | 命令 | 作用 |
263
+ | --- | --- |
264
+ | `helloloop` | 分析并进入主流程 |
265
+ | `helloloop status` / `helloloop st` | 查看当前仓库状态 |
266
+ | `helloloop watch` / `helloloop w` | 重新附着后台会话 |
267
+ | `helloloop next` / `helloloop n` | 预览下一任务 |
268
+ | `helloloop run-once` / `helloloop once` | 执行一个任务 |
269
+ | `helloloop run-loop` / `helloloop loop` | 连续执行多个任务 |
270
+ | `helloloop dashboard` / `helloloop dash` | 打开终端总控台 |
271
+ | `helloloop tui` | 显式打开 TUI 看板 |
272
+ | `helloloop web` | 启动本地 Web 看板 |
273
+ | `helloloop resume-host` / `helloloop rh` | 输出宿主续跑提示 |
274
+ | `helloloop doctor` / `helloloop dr` | 诊断安装与运行环境 |
275
+ | `helloloop install` | 安装插件到宿主 |
276
+ | `helloloop uninstall` | 从宿主卸载插件 |
277
+
278
+ ---
279
+
280
+ ## 11. 短命令别名
281
+
282
+ 如果你不想每次打很长:
506
283
 
507
284
  ```bash
508
- npm test
509
- npm pack --dry-run
285
+ helloloop dash
286
+ helloloop tui
287
+ helloloop web
288
+ helloloop st
289
+ helloloop w
290
+ helloloop rh
291
+ helloloop once
292
+ helloloop loop
510
293
  ```
511
294
 
512
- 3. 推送 Git tag:
295
+ ---
513
296
 
514
- ```bash
515
- git tag vX.Y.Z
516
- git push origin vX.Y.Z
517
- ```
297
+ ## 12. 配置文件
518
298
 
519
- 或 beta 版本:
299
+ 全局设置位于:
520
300
 
521
- ```bash
522
- git tag vX.Y.Z-beta.N
523
- git push origin vX.Y.Z-beta.N
301
+ ```text
302
+ ~/.helloloop/settings.json
524
303
  ```
525
304
 
526
- 随后 GitHub Actions `Publish to npm` 会自动执行:
305
+ 常见配置包括:
527
306
 
528
- - tag / 版本一致性校验
529
- - `npm test`
530
- - `npm pack --dry-run`
531
- - `npm publish`
532
- - GitHub Release
307
+ - 观察层自动重试
308
+ - 后台守护保活
309
+ - 终端并发上限
310
+ - 告警邮箱
533
311
 
534
- 补充说明:
312
+ 项目级运行状态位于目标仓库:
535
313
 
536
- - 正式版本使用 npm `latest` 渠道,beta 版本使用 npm `beta` 渠道
537
- - 如果测试、版本校验或打包检查失败,npm 发布与 GitHub Release 都不会继续执行
538
- - `0.9.1` 起按破坏性升级思路继续收紧:后台 supervisor + CLI 附着观察成为默认工作流,同时 `settings.json` 与 Codex 安装布局只接受当前版本规范,不再为旧布局做兼容兜底
539
- - GitHub Release 阶段现已改为使用官方 `gh` CLI + `generate-notes` API 创建 / 更新 release,不再依赖会触发 Node runtime deprecation warning 的第三方 action
540
-
541
- ## 宿主写入范围
542
-
543
- 为了方便排查安装 / 更新 / 卸载问题,下面是默认写入位置:
544
-
545
- ### `Codex CLI`
546
-
547
- - 插件源码目录:`~/plugins/helloloop/`
548
- - 已安装缓存:`~/.codex/plugins/cache/local-plugins/helloloop/local/`
549
- - marketplace:`~/.agents/plugins/marketplace.json`
550
- - 启用配置:`~/.codex/config.toml`
551
-
552
- ### `Claude Code`
553
-
554
- - marketplace:`~/.claude/plugins/marketplaces/helloloop-local/`
555
- - 已安装插件缓存:`~/.claude/plugins/cache/helloloop-local/helloloop/<VERSION>/`
556
- - 用户配置:`~/.claude/settings.json`
557
- - marketplace 索引:`~/.claude/plugins/known_marketplaces.json`
558
- - 已安装插件索引:`~/.claude/plugins/installed_plugins.json`
559
-
560
- ### `Gemini CLI`
314
+ ```text
315
+ <repo>/.helloloop/
316
+ ```
561
317
 
562
- - 扩展目录:`~/.gemini/extensions/helloloop/`
318
+ 其中通常会包含:
563
319
 
564
- `HelloLoop` 只维护自己的目录和自己的注册项,不会重写别的插件条目。
320
+ - backlog
321
+ - 运行状态
322
+ - supervisor 状态
323
+ - 宿主续跑信息
324
+ - runs 执行记录
565
325
 
566
- ## 用户目录写入范围
326
+ ---
567
327
 
568
- 全局用户目录 `~/.helloloop/` 只保留一份全局设置:
328
+ ## 13. Windows 使用说明
569
329
 
570
- ```text
571
- ~/.helloloop/
572
- └── settings.json
573
- ```
330
+ `HelloLoop` 会尽量把后台启动、内部调度和观察链做成隐藏模式,目标是:
574
331
 
575
- 说明:
332
+ - 不弹出空白 PowerShell 窗口
333
+ - 不让后台守护层反复闪烁控制台
334
+ - 主任务在后台继续跑,主终端只负责观察
576
335
 
577
- - 这里不保存项目 backlog、状态、运行记录
578
- - 安装 / 升级 / 重装时,会对 `settings.json` 做严格 schema 校准;已知字段只要值不合法,也会按当前版本默认值重置
579
- - 只有在 `settings.json` 被确认非法时,才会先备份,再重建为当前版本结构
580
- - 如果只是读取瞬时异常、重读后合法,不会误生成 `.bak`
336
+ 但首次安装、系统权限、终端自身限制等因素仍可能影响最终表现。
581
337
 
582
- ## `.helloloop/` 状态目录
338
+ 如果你主要关心状态可视化,优先使用:
583
339
 
584
- `HelloLoop` 的 backlog、状态和运行记录始终写入目标仓库根目录下的:
340
+ - `helloloop dashboard`
341
+ - `helloloop tui`
342
+ - `helloloop web`
585
343
 
586
- ```text
587
- .helloloop/
588
- ├── backlog.json
589
- ├── policy.json
590
- ├── project.json
591
- ├── status.json
592
- ├── STATE.md
593
- └── runs/
594
- ```
344
+ ---
595
345
 
596
- 不会写回插件目录自身。
597
- 也不会写入 `~/.helloloop/`。
346
+ ## 14. 边界说明
598
347
 
599
- ## 跨平台与安全
348
+ `HelloLoop` 不会做这些事:
600
349
 
601
- ### Windows
350
+ - 不会在普通对话里静默接管当前宿主
351
+ - 不会在未确认时默认清空已有项目目录
352
+ - 不会因为一条“已完成”回复就直接宣称任务真正完成
353
+ - 不会在恢复阶段偷偷切换到别的引擎
602
354
 
603
- - 优先使用 `pwsh`
604
- - 也支持 `bash`(如 Git Bash)与 `powershell`
605
- - 不回退到 `cmd.exe`
606
- - 避免危险的嵌套命令、路径拼接删除和 `cmd` 风格破坏性流程
355
+ ---
607
356
 
608
- ### macOS / Linux
357
+ ## 15. 推荐工作方式
609
358
 
610
- - 优先使用 `bash`
611
- - 如果没有 `bash`,回退到 `sh`
359
+ ### 个人开发者
612
360
 
613
- ### 通用安全边界
361
+ - 用 `npx helloloop` 或宿主内显式调用开始
362
+ - 用 `watch` 看实时过程
363
+ - 用 `dashboard` / `tui` 看多仓状态
614
364
 
615
- - 不静默失败
616
- - 不静默回退
617
- - 不静默切换执行引擎
618
- - 不吞掉错误
619
- - 真正执行前先确认
620
- - 真正结束前先验证
621
- - 不轻信执行引擎口头“已完成”
622
- - 不接受“先做一半再停下来问要不要继续”
365
+ ### 多仓联动开发
623
366
 
624
- ## 仓库结构
367
+ - 每个仓库各自维护 `.helloloop/`
368
+ - 用 `web` 看整体进度
369
+ - 用 `resume-host` 在主代理中断后继续接上
625
370
 
626
- ```text
627
- helloloop/
628
- ├── .claude-plugin/
629
- ├── .codex-plugin/
630
- ├── .github/
631
- ├── .helloagents/
632
- ├── bin/
633
- ├── docs/
634
- ├── hosts/
635
- ├── scripts/
636
- ├── skills/
637
- ├── src/
638
- ├── templates/
639
- ├── tests/
640
- ├── LICENSE
641
- ├── package.json
642
- └── README.md
643
- ```
371
+ ### 长时间任务
644
372
 
645
- 其中:
373
+ - 先确认后启动
374
+ - 让后台继续执行
375
+ - 用 `status` / `watch` / `dashboard` / `web` 轮流观察
646
376
 
647
- - `.codex-plugin/`:Codex 插件 manifest
648
- - `.claude-plugin/`:Claude plugin manifest
649
- - `hosts/`:Claude marketplace / Gemini extension 资产
650
- - `skills/`:Codex 插件技能说明
651
- - `src/`:发现、分析、执行、安装、卸载、doctor 等核心实现
652
- - `templates/`:初始化目标仓库 `.helloloop/` 的模板
653
- - `docs/` 与 `tests/`:源码仓库维护资料,不进入运行时安装包
377
+ ---
654
378
 
655
- ## 许可证
379
+ ## 16. 一句话理解
656
380
 
657
- `HelloLoop` 使用 `Apache-2.0`,许可证文件位于仓库根目录的 `LICENSE`。
381
+ 如果普通 CLI 像“单次回答助手”,那 `HelloLoop` 更像“持续推进开发任务的执行层 + 观察层 + 续跑层”。