Claude Stop hook Codex daemon LikeCode /loop

三种 Loop 机制
Hook、外部 daemon、应用内 cron

同样叫 loop,底层其实是三种不同工程:Claude/Ralph 用 runtime 的 Stop hook 卡住结束点; Codex 用外部脚本定时恢复同一 thread;LikeCode /loop 把自然语言间隔解析成 cron task,再由应用内 scheduler 定时塞回 prompt。

一句话拆开

Claude / Ralph Loop

在“停止点”反向续命

runtime 触发 Stop hook。Ralph 检查任务未完成时返回 decision:"block"reason,Claude Code 不结束,并把 reason 重新喂给模型。

Codex loop

在“外部时间”重新唤醒

不是靠 native hook,而是一个 shell/Python daemon 周期性执行 codex exec resume ...,复用 thread id,把同一份 prompt 再交给 Codex 推进。

LikeCode /loop

在“应用内部”排定任务

/loop 是 bundled skill。它提示 Claude 调 CronCreate,生成 cron task;scheduler 每秒检查到期任务,并把 prompt 作为 meta notification 入队。

三条执行流

Claude Hook / Ralph Loop

  1. 用户启动 Ralph Loop,写入本地 state。
  2. Claude 正常执行任务。
  3. Claude 准备停止,runtime 触发 Stop hook。
  4. hook 读 transcript 与 state,判断 completion promise 是否满足。
  5. 未完成则返回 decision:blockreason
  6. runtime 阻止结束,reason 进入下一轮模型上下文。

Codex 外部 Daemon Loop

  1. 脚本启动 daemon,保存 workspace、prompt、state dir、thread id。
  2. daemon 进入 while / sleep 循环。
  3. 每个 tick 调用 codex execcodex exec resume
  4. prompt 通过 stdin 送入 Codex。
  5. Codex 推进一个 bounded slice,输出 JSON/log。
  6. daemon 写 heartbeat、last message、thread id,等待下一次 tick。

LikeCode /loop Cron

  1. 用户输入 /loop 5m check tests 之类命令。
  2. bundled skill loop.ts 生成指令,让 Claude 解析 interval 和 prompt。
  3. Claude 调用 CronCreate 创建 cron task。
  4. cronSchedulersetInterval 每秒检查到期任务。
  5. 到期后 useScheduledTasks 把 prompt 入队。
  6. 任务执行后重新计算下一次 fire time,继续循环。

LikeCode /loop:像 cron,但不是 Linux crontab

/loop bundled skill入口:src/skills/bundled/loop.ts
CronCreate tool把自然语言间隔转成 cron task
useScheduledTasks把到期 prompt 送进应用队列
cronSchedulersetInterval(1000ms) 检查并 reschedule

它和 Linux cron 的关系

LikeCode /loop 借用了 cron 表达式和定时任务模型,但没有写入系统级 crontab。真正循环发生在应用进程里:scheduler 持有 task,周期性检查当前时间,命中后把 prompt 重新排进 Claude Code/LikeCode 的任务队列。

所以它是 application-level cron scheduler,不是 OS-level cron daemon。

可视化:三个 loop 的触发边界

Claude/Ralph 模型执行 Stop hook block + reason
Codex 外部 daemon codex exec resume thread 继续推进
LikeCode /loop CronCreate scheduler tick prompt 入队

对照表

维度 Claude Hook / Ralph Codex 外部 Daemon LikeCode /loop Cron
触发来源runtime 生命周期事件外部进程的时间循环应用内 scheduler 时间循环
关键入口Stop hookstart_codex_loop.sh / Python daemon/loop bundled skill
续跑方式阻止停止,回灌 reason恢复同一 Codex thread到期 prompt 入队
状态存储plugin/local state + transcript.codex-loop state/log/thread idcron task registry / app state
像 Linux cron 吗不像,是 lifecycle hook像 shell while + sleep像 cron 表达式,但跑在应用内
最大特点能拦住“结束”这个瞬间不依赖 native hook,工程可移植用户体验像内置命令,定时任务可管理

怎么选

想在 Claude Code 内部拦截生命周期用 hook,尤其是 Stop / PreToolUse / PostToolUse。
想让 Codex 周期性推进同一个任务用外部 daemon,保存 thread id、prompt、log 和 heartbeat。
想让用户输入一个 /loop 就定时执行用应用内 cron scheduler,提供 create/list/delete 任务能力。

动手模拟:Reflective Loop Simulator

下方是交互式仿真器,可切换四种场景逐步推演一次完整的 agent loop。点击消息块查看 payload、源码定位与教学注释。