prevalentWare/opencode-goal-plugin

OpenCode goal plugin for Codex-style goal mode, /goal slash commands, persistent objectives, and AI coding agent focus.

OpenCode Goal Plugin – 保持 AI 编码代理专注于长期任务

是什么 – 为 OpenCode AI 编码环境添加 目标模式 的插件。用户可以启动一个持久的 /goal <目标>,该目标在 OpenCode UI(TUI、桌面、网页)中持续存在,并在会话压缩后依然保留。目标会显示在侧边栏中,可在会话空闲时自动继续,且只有当代理提供完成的明确证据或阻塞信息时才能关闭。

主要功能

  • /goal 斜杠命令(创建、查看、编辑、暂停、恢复、清除)—— 在所有 OpenCode 前端中均有效。
  • 侧边栏指示器,显示状态、已用时长、Token 使用量和目标内容。
  • 代理端工具:get_goallist_all_goalscreate_goalset_goalupdate_goalclear_goal 等。
  • 每会话的持久状态存储在 $XDG_DATA_HOME/opencode-goal-plugin/goals.json(仅所有者权限,原子写入)。
  • session.idle/session.status 时自动继续,带有安全限制(Token 预算、时间预算、无进展检测、最大自动轮次)。
  • 计划模式安全:从 plan 代理创建的目标将被暂停,除非用户明确允许,否则无法自动继续。
  • 通过 OpenCode 的插件配置文件,可配置选项(自动继续、预算、最大轮次、受限代理等)。

安装

  • 对于 OpenCode 1(稳定版):
    opencode plugin @prevalentware/opencode-goal-plugin   # 项目本地
    # 或全局安装
    opencode plugin -g @prevalentware/opencode-goal-plugin
    
    将包名添加到 opencode.jsontui.jsonplugin 数组中。
  • 对于 OpenCode 2(测试版):
    {
      "plugins": [
        {
          "package": "@prevalentware/opencode-goal-plugin",
          "options": { "auto_continue": true }
        }
      ]
    }
    
    将条目放入 opencode.json(服务器)和 ~/.config/opencode/cli.json(UI)中。

典型工作流

  1. 启动目标:
    /goal 审查前端并把可见的 UI 文本翻译成西班牙语
    
  2. 代理执行任务,侧边栏持续显示进度。
  3. 当目标完成时,代理调用 update_goal 并设置 status: "complete",同时提供证据(例如测试结果、PR 链接)。
  4. 若无法达成目标,代理调用 update_goal 并设置 status: "unmet" 及阻塞描述。
  5. 可随时使用 /goal pause/goal resume/goal clear 暂停、恢复或清除目标。

配置亮点

  • auto_continue(默认为 true)—— 允许插件在会话空闲时继续向代理发送提示。
  • max_auto_turns(默认为 25)—— 限制自动继续提示的最大执行次数。
  • default_token_budget—— 可选的 Token 限制,用于新目标。
  • restricted_agents(默认为 "plan")—— 被视为仅计划用途的代理;来自它们的目标将从暂停状态开始。
  • allow_goal_execution_from_plan—— 设为 true 可禁用计划模式限制(不推荐)。

安全机制

  • 预算限制—— 当 Token 或时间预算耗尽时停止目标。
  • 无进展检测—— 在可配置的低输出继续轮次后,目标将被暂停。
  • 计划模式防护—— 防止计划会话无声转变为执行会话。

状态持久化 目标数据存储在 XDG 数据目录下的 JSON 文件中(或 ~/.local/share/...),以所有者专用权限原子写入。崩溃后,将保留之前或新的完整状态,实现可靠恢复。

开发与发布 该仓库使用 bun 进行构建和测试,并通过 GitHub Actions 实现自动发布到 npm,采用可信发布机制。包导出独立模块:服务器钩子(./dist/server.js)和 TUI UI(./src/tui.ts)。


总结 – 如果你使用 OpenCode 进行数小时的重构、迁移或测试修复任务,并希望 AI 始终专注于单一、可审计的目标,OpenCode Goal Plugin 提供了一种轻量、可配置的解决方案。

相关

  • 项目
  • 项目
  • 项目
  • 项目
  • 项目