打开代码循环
原生 OpenCode 2 (0. 6. 9)
Npm 和 V2 进入点使用官方 @opencode/plugin Plugin.define() 合同。 安装者现在登记准确 @bybrawe/opencode-loop openCode 复数中的软件包 plugins 配置,而不是复制一个松散的全球插件目录。 OpenCode 因此解决 @opencode/plugin 从Loop自己的生产依赖图; 明确 --legacy-v1 仍然是单独的兼容路径.
安装器默认为本地的 V2 包插件 。 它不需要松散的本地V2拷贝,V1 SDK,或遗留的命令文件. 有效遗产 plugin 现在,登记在册的土著人仍然在登记 plugins 列表使用 OpenCode 2. 0.21 自己的常态语义,所以本地安装不再平行 plugin 财务报告和审定财务报表 plugins 块。 对象选项和录入顺序得到保存,不规范的后遗症值未被改变,不相关的提供者/模型设置没有被重写. 现有0.6.1/0.6.2松开 plugins/opencode-loop 安装在更新时仍然被删除。 使用 --legacy-v1 明确用于兼容性安装.
V2 快速录入和耐用收件箱/执行/协作事件自行排程. 核心生成的用户作用消息从不授权会话中止 。 一项未完成的专门目标保留其届会,包括暂停和移交状态; 循环不能唤醒或取而代之。 软迭代超时不会中止本地的模型/工具/对比转折.
自动收缩仍然为主机所有。 在 OpenCode 2 上曝光的版本 session.compact,Loop的显式本土收缩是能力化的,等待自己的手册 session.compaction.started 输入 ID、 压缩补全和会话终端事件。 旧主机在排程前拒绝不支持的压缩 .
即时/指挥计时器、观察和停止状况、核查、飞行前/后跑、通知、检查站和诊断命令使用V2运行时间。 不确定的重启录用会暂停审查,而不是重新播放可能录用的作品. OpenCode 2.2.x 包括本地语言 /goal 特性。 循环不安装或维护单独的 @bybrawe/opencode-goal 插件;更古老的"循环目标"记录留在磁盘上,不被重新解释为"本土目标"合同.
Idle-safe自动接续,预定的OpenCode工作,以及背景循环.
添加 OpenCode 循环 /loop、排入的即时/命令/shell 任务、紧凑的日程安排、核查/检查点,以及 opencode-loopd 背景守护进程 .
当前本地 OpenCode 2 发布 :
0.6.9。 。 。 . 发布工作流程只有在所有经核实的发布门通过后才会发布此软件包. 对于尚未出版的软件包,请使用先前发布的软件包0.6.8直到npm 注册确认0.6.9。 。 。 .
安装或更新
推荐的 OpenCode 2 设置
安装 单独打开代码循环数字 :
npx -y @bybrawe/opencode-loop@latest
循环安装、更新和去除 仅循环它从不引用、安装、升级或卸载 @bybrawe/opencode-goal. OpenCode 2.2.x 已经具有本地特性 /goal;循环不需要单独的 ByBrawe 目标插件.
旧的 --with-goals 财务报告和审定财务报表 --with-loop-goals 已安装模式 删除; 两者在改变配置之前都失败了. --loop-only 财务报告和审定财务报表 --without-loop-goals 继续作为独立默认的相容性别名被接受。 循环保存任何先前安装的目标包,用户拥有的命令,以及项目历史.
再次运行相关的安装命令以更新该软件包. 礛 完全重新启动 OpenCode 并核实:
/loop-help
/loop-doctor
如果两个本地命令都在终端 TUI 中工作,但在 Windows 桌面上缺失,请跟随 Windows 桌面命令注册诊断指南。不要用遗留的 Markdown 桥取代本地命令.
在包含诊断的版本上运行 npx -y @bybrawe/opencode-loop@latest --desktop-diagnostics --workspace "C:\\path\\to\\your\\project" 来对照当前注册的命令检查这两个命令 当地 V2服务不打印其全权证书. 这不会安装或修改目标或循环.
全局 npm 选项 :
npm install -g @bybrawe/opencode-loop@latest
opencode-loop
要卸载 :
npx -y @bybrawe/opencode-loop@latest --uninstall
或,对于全局安装:
opencode-loop --uninstall
npm uninstall -g @bybrawe/opencode-loop
循环卸载永不删除指定的目标插件 。 工程循环状态 .opencode/opencode-loop/ 由未安装者有意保存.
心理模式
循环分离出两个想法:
- 什么时候上班? 闲置,计时器,手表触发器,或
/loop-now。 。 。 . - 什么时候可以安全发送? 只有当会话实际闲置,没有活的工具/儿活会重叠.
过期的时长 没有 故意在活动模式的上方注入第二个模式开关。 正当活等闲.
快开始
继续说"继续" 每当助理停下来
/loop continue
土耳其的简写也自然而然:
/loop devam et
明确等同物:
/loop idle continue
这个 无限制空闲循环 默认。 当助手完成并且会话安全地被闲置时,Loop再次发送提示. 当那个转弯结束时,它再次做同样的事情,直到你暂停/停止它或者达到一个配置的极限.
对于极短的延续提示,例如 continue, (中文(简体) ), keep going,或 devam et,"循环"增加项目续作指导:将转弯作为当前寄存器/对话的续作,根据需要检查相关文件/TODO/进步/git状态,找到下个未完成的步骤,避免重做已完成的工作,并在实际可行时验证有意义的变化.
就项目工作而言,带有明确进度文件的连续循环是:
/loop --safe --ask-never --progress-file progress.md devam et
重要内容: --progress-file 仅供应项目背景 没有 a 完成或停止状态。 正在检查每个 - [ ] 任务为 - [x] 内 progress.md 或者说 TASK.md 将 不自动停止 普通的闲置循环。 这一区别在以下表格中得到跟踪: 174号 之后 用户报告。对于必须停止的未处理任务,将进度文件与 主机观察 停止标准,例如 --max-runs, (中文(简体) ), --max-runtime, (中文(简体) ), --stop-file 或明示 --until 标记。 核对表填写站 0.6.9或更新,添加 --until-checklist-complete 明确与 --progress-file;0.6.8没有这一选项。 不假设进度文件本身执行停止条件 .
这个 用户,而不是AI生成的聊天响应,必须引用 /loop-stop 或者说 /loop-clear 作为本土控制指挥. 请求模式键入 /loop-clear 在谈话中不能可靠地执行这个命令。 使用 /loop-status 检查当前工作 /loop-stop 或者说 /loop-clear 阻止他们。 见 175号 用于改进主机拥有的UX站.
如果需要, 先创建启动进度文件 :
/loop-init
当一个 Markdown 核对表完成时停止 (0. 6. 9)
OpenCode 循环 0.6.9 添加一个 选择进入, 主机检查 完成警卫。 没错 不属于0.6.8. 仅在npm放出后安装0.6.9 :
/loop --progress-file TASK.md --until-checklist-complete --verify "npm test" finish the tasks in TASK.md
在安全闲置/排程边界上,循环读取 TASK.md 作为常规项目文件。 如果它至少有一个 Markdown 复选框并检查所有可操作的框, Loop 停止进一步排入转弯 。 若为 --verify 已配置,循环还需要前所观察到的成功主机验证。 空出/出错/大小过大/不安全/连锁/控制-平面文件暂停审查,而不是叫完成;密码封并被引用的复选框示例不计数.
无 --until-checklist-complete, (中文(简体) ), --progress-file 仅提供上下文 正常的无限循环是无限的 主机/用户控制 /loop-stop 财务报告和审定财务报表 /loop-clear 直接;拥有模型打印这些名字并不是实际命令引用. 跟随 174号 财务报告和审定财务报表 175号。 。 。 .
每5分钟重复一次
/loop every 5m continue the project
这在第一次比赛前5分钟,然后每5分钟到期一次。 如果定时器在 OpenCode 繁忙时过期, 它会等待下一个安全闲置的边界, 而不是堆放提示 .
五分钟后再做一次
/loop after 5m continue once
别名:
/loop in 5m continue once
这是一发一发的延迟工作。 5分钟的路程是到期的;它仍然等待闲置才发出来.
遗留紧凑语法仍然得到支持
/loop 5m continue the project
对于后向相容性,此表从下一个安全闲置的边界开始,再跟随5分钟间隔.
明确延迟其第一次运行:
/loop 5m --no-now continue the project
遗产闲置形式仍然有效 :
/loop 0s continue
关于准确的时间表,真相表和边缘案件,见 文件/文件。 。 。 .
附表总表
| 命令 | 含义 | 第一次发送 | 重复 |
|---|---|---|---|
/loop continue | 自动继续闲置 | 下一个安全闲置 | 每个闲地 |
/loop idle continue | 明确空闲循环 | 下一个安全闲置 | 每个闲地 |
/loop every 5m continue | 经常性计时器 | 5米后再闲去 | 对 |
/loop after 5m continue | 延迟一发 | 5米后再闲去 | 没有 |
/loop in 5m continue | 延迟一发别名 | 5米后再闲去 | 没有 |
/loop 5m continue | 遗留的经常性形式 | 下一个安全闲置 | 对 |
/loop 5m --no-now continue | 遗留问题 | 5米后再闲去 | 对 |
/loop 0s continue | 遗留闲置窗体 | 下一个安全闲置 | 每个闲地 |
了解一个陌生的项目,继续前进
对不熟悉的存储器有用的第一个循环是:
/loop-init
/loop --safe --ask-never --progress-file progress.md Understand the existing project architecture and current state first. Inspect relevant source, tests, docs, TODOs, git status, and recent work. Record useful state in progress.md, choose the next unfinished safe improvement, implement it, verify it, update progress.md, and continue from there on later idle turns.
一旦项目状态确定,这就足够了:
/loop --safe --ask-never --progress-file progress.md devam et
简短的延续形式被刻意解释为“恢复这一项目”,而不是“从头开始发明新的任务”.
其他职务类型
计划 OpenCode 斜线命令 :
/loop-command 200m /compact
运行真实的 shell 命令 :
/loop-shell 10m npm test
询问反复出现的质量控制提示 :
/loop-ask 1h did you run tests, typecheck, and build? If not, run them and fix errors.
注意路径 :
/loop --watch progress.md inspect the updated progress and continue
即时,命令,外壳,紧凑,和监视任务使用相同的闲置安全调度路径,但执行运输方式不同.
核心命令
| 命令 | 目的 |
|---|---|
/loop <prompt> | 添加/更新无限闲置的快环 |
/loop idle <prompt> | 明确的闲置形式 |
/loop every <duration> <prompt> | 经常计时器, 第一次运行延迟 |
/loop after <duration> <prompt> | 一发延迟提示 |
/loop in <duration> <prompt> | 别名 after |
/loop <duration> <prompt> | 向后兼容的紧凑间隔表 |
/loop-command <interval> <slash-command> | 计划一个 OpenCode 命令 |
/loop-cmd <interval> <slash-command> | 别名 /loop-command |
/loop-ask <interval> <question> | 安排经常性的检查/问题 |
/loop-shell <interval> <command> | 调度 shell 命令 |
/loop-status | 显示任务加时间表/状态 |
/loop-now [id/name/all] | 标记所选工作到期; 仍然等待闲置 |
/loop-pause [id/name/all] | 暂停工作 |
/loop-resume [id/name/all] | 继续工作 |
/loop-remove [id/name/all] | 删除任务 |
/loop-clear | 删除当前会话的所有任务 |
/loop-logs | 显示最近的调度/运行时间事件 |
/loop-doctor | 诊断会话/状态/时间安排问题 |
/loop-init | 创建启动器 progress.md |
/loop-export | 导出当前会话循环状态 |
有用旗帜
寿命周期和限制:
--name <name>
--max-runs <n>
--max-runtime <duration>
--max-failures <n>
--timeout <duration>
--no-now
--now
安全和核查:
--safe
--ask-never
--no-overlap
--verify "npm test"
--preflight "npm install"
--postrun "git status --short"
--pause-on-verify-fail
项目背景:
--progress-file progress.md
--prompt-file loop-prompt.md
--include-file ARCHITECTURE.md
--batch 5
--compact-every 20
--watch progress.md
检查站:
--checkpoint-only
--git-checkpoint
--git-checkpoint (b) 只有在有意的情况下才使用.
本地循环状态侧边栏( 下次发布, PR # 165)
本地开源代码 2 图瓦卢 可以在OpenCode Goal的单独状态面板旁显示只读的循环状态面板。 这一特点由下列机构提出和执行: @zhek (英语) 内 公关号165谢谢你的贡献!
新的 @bybrawe/opencode-loop/tui 条目只使状态; 服务器的循环插件曝光 @bybrawe/opencode-loop/rpc 位置扫描读取。 排定的工作、停止/暂停命令、收缩和目标所有权继续运作 仅在服务器中,而失去可选面板永远不会禁用循环调度器。 小组报告持续了工作,与 等待闲置,运行/失败和暂停原因;它故意这样做 没有 猜测任务完成率、 符号、 ETA 或成功百分比 .
发布状态 : 此特性正在整合一个版本 在0.6.9之后这是 未包括 在公布的0.6.8或0.6.9发布候选人。 这个 sidebar.content API属于本地人 (简体中文)CLI TUI它确实如此 没有 建立 Windows 桌面/网络插件 UI 支持。 OpenCode 2.0 和 2.1 代码 OpenTUI兼容性和并发目标面板行为都受到真人测试.
TUI 发现提醒(开放代码2.1): 实际渲染和插件自动加载是不同的检查. 上游开放代码#55084 当一个 TUI 连接到一个插件启用的服务器时, 文档一个无声跳过, 但客户端有一个 不同的 npm 包缓存,特别是远程/分包-缓存设置。 普通的共享缓存安装一般不受影响. 若为 /loop 工作但 TUI 面板不在此列, 检查活动中的 CLI/ TUI 插件目录和缓存路径; 在受影响的 2. 1. x 上构建, 将软件包添加到该版本的分离中 cli.json 插件列表是一个上游报告的工作。 不假设桌面支持 ui.slot。跟踪真实的CLI/TUI复制 191号。 。 。 .
状况和诊断
/loop-status 报告 时间表定义 编辑 当前调度器状态实例:
schedule=every idle | state=waiting for idle
schedule=every 5m, first after 5m | state=due in 3m
schedule=once after 5m | state=due; waiting for idle
这是有意的:“理应”是时钟事实,而“等待闲置”是承认/安全事实.
如果任务说已启用但从未运行
问题在于:
enabled=true
paused=false
runCount=0
lastRunAt=0
一些 OpenCode TUI 版本可以离开 session.status 时间 busy编号 :retry 在插件命令识别后。 循环交叉检查在第一个循环运行之前, 与时间顺序信息尾端相对应。 只有当最新的助理消息实际完成,并且没有活跃的工具/儿工被知道时,它才会恢复. 一个真正未完成的助手回合、最新的用户回合、活动工具、忙碌的孩子或未知的完成仍然繁忙.
回收记录为:
status-message-idle-recovery
忙碌的重试也被写成节奏 deferred 事情是这样 loop.log 不误导地只包含原件 add 线条.
使用 :
/loop-status
/loop-logs
/loop-doctor
会话锁定状态
普通插件循环任务是会话捆绑并存储在 :
.opencode/opencode-loop/<session-id>.json
一个新的 OpenCode 会话不会默默地继承另一个会话的工作 . /loop-doctor 报告其它仍然包含已启用任务的持续会话文件,包括从未运行过的任务,因此旧的循环是可见的而不是显示丢失的.
对于在TUI/会后必须继续进行的工作,使用 opencode-loopd。 。 。 .
循环和可选目标特征
循环本身就起作用了. 它不安装或管理其他目标插件. 对本地用户使用单独的会话 /goal 和迅速生产 /loop 只要实用. 在 OpenCode 2.2.x 上,循环检查内置目标 公开, 只读 opencode.goal 难民保护委员会 - 积极/暂停的土著目标保留会议。 一个被单独安装的"ByBrawe Goal"(ByBrawe Goal)保留了自己的后卫,但孤儿"ByBrawe Goal"(ByBrawe Goal)文件在确认该套件未安装时不再屏蔽"Loop". 无法获取/未确认的所有权国未能关闭。 这是一名安全警卫,而不是声称两个独立安排的特工可以在没有种族的情况下进行解剖操作;宿主级的整合仍然追踪在其中 195号。建议拆分:
- 使用 OpenCode 的原生代码
/goal用于内在的客观工作流程,或如果需要更强有力的证据合同,则单独安装ByBrawe Goal; - 使用情况
/loop, (中文(简体) ),/loop-command, (中文(简体) ),/loop-shell,以及opencode-loopd用于安排/重复/背景基础设施.
一个快速生成的循环和一个活跃的专注 /goal 不应同时自动延续 同一届会议因此,运行时间会阻断新提示循环,当它检测到该会话的积极专用目标时.
建议的选择是完成/暂停目标,或单独开会。 高级用户可以故意用:
/loop --allow-goal-overlap continue
这个逃生舱可以产生相互竞争的自转;只有在故意的情况下才使用.
古老的实验 /loop-goal* 命令默认省略。 前者 --with-loop-goals 模式不再被支持。 保留现有目标状态;不自动迁移或删除。 \ n\ n\ n 建议的开发循环
/loop --name dev --ask-never --safe --no-overlap --batch 5 --compact-every 200m --checkpoint-only --progress-file progress.md Treat progress.md as the project state. Continue with the next unfinished TODO, implement it, mark completed items, add useful follow-up TODOs, run tests/lint/build when available, and keep going while work remains.
测试/ 固定循环 :
/loop --name testfix --ask-never --safe --verify "npm test" --max-failures 3 Continue from progress.md. If tests fail, analyze the failure, fix it, and run the tests again.
背景守护进程
寻常 /loop 插件受会话约束 . opencode-loopd 为守护进程迭代指定一个精确的 OpenCode 会话, 并可以在正常的交互式循环计时器寿命周期外继续排程 .
opencode-loopd --project . --every 5m --prompt-file loop-prompt.md
立即守护进程 :
opencode-loopd --project . --every 0s --prompt "continue from progress.md and implement the next unfinished TODO"
键入会话并限制运行 :
opencode-loopd --project . --session ses_xxx --every 5m --max-runs 20 --timeout 30m --prompt-file loop-prompt.md
目标脉冲检查
使用守护进程作为专用的只读拖放检测器 /goal 状态 :
# one-shot (good for systemd timers / cron-style runners)
opencode-loopd pulse-check --project . --stale-after 30m
# repeating opt-in watcher
opencode-loopd pulse-check --project . --stale-after 30m --every 1m
# watch one Goal by Goal ID or session ID
opencode-loopd pulse-check --project . --goal <goal-or-session-id> --stale-after 30m --every 1m
脉搏检查显示 .opencode/goals/*.json 并只在目标为 active。 。 。 . paused, (中文(简体) ), waiting_user, (中文(简体) ), blocked,预算/使用有限,完成的目标并不警觉。 以持久目标活动为主的片段(updatedAt,进度/修改; OpenCode 会话 updated 时间仅作为确证遥测而列入,因为对于每个主机版本来说,它不够可靠,不能成为被搁置的权威.
Episode 状态单独保存于 .opencode/opencode-loop/pulse-check.json。检查者从不写目标状态,从不发出提示,从不运行 /goal resume,因此不参加迅速制作的"目标重叠"后卫. 它在观察到的目标活动或状态变化后,每集最多发出一次警报并重新武装。 警报明确命名了人类复原行动:运行 /goal resume 在目标会议.
Windows 任务调度器 :
opencode-loopd install-task --project "C:\path\to\project" --every 10m --prompt-file loop-prompt.md --name OpenCodeLoop
opencode-loopd uninstall-task --name OpenCodeLoop
国家和检查站
运行时状态和日志 :
.opencode/opencode-loop/
.opencode/opencode-loop/loop.log
补丁检查站:
.opencode/opencode-loop/checkpoints/
添加 .opencode/opencode-loop/ 改为 .gitignore 如果运行时间状态不应该被执行.
权限
对于未处理的工作,避免永久允许每个 shell 命令. 允许常规的读取/编辑/测试操作,同时在询问/拒绝时保留破坏性命令. --safe 降低风险,但不取代 OpenCode 权限配置.
软件包和兼容性
@bybrawe/opencode-loop
原生 OpenCode 2 是默认支持的软件包路径 0.6.9. 依赖生产 @opencode/[email protected]; 保留明确的遗留 V1 兼容路径 @opencode-ai/plugin >=1.4.0 <2执行 没有 错误 V2 运行时 API 版本的遗留 V1 同伴范围 .
自动放出门覆盖了独立的原生V2包装,Windows/Linux回归,以及真实的OpenCode 2主机命令注册. 单独的遗产 ByBrawe 目标共存仍然是一个可选的兼容性测试:它是 没有 a 循环运行时间、安装、更新或npm出版依赖。 原生开放代码 2.2+ /goal 在自主循环录取前立即通过公共目标RPC进行只读检查. Windows 桌面 GUI slash-command 发现尚未被证明等同于 CLI TUI; 见 169号 编辑 诊断指南平台差距在 #177 (中文(简体) )。 。 。 .
许可证
麻省理工学院