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 提供了一種輕量、可配置的解決方案。

相關

  • 專案
  • 專案
  • 專案
  • 專案
  • 專案