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_goal、list_all_goals、create_goal、set_goal、update_goal、clear_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-pluginopencode.json和tui.json的plugin數組中。 - 對於 OpenCode 2(測試版):
將條目放入{ "plugins": [ { "package": "@prevalentware/opencode-goal-plugin", "options": { "auto_continue": true } } ] }opencode.json(伺服器)和~/.config/opencode/cli.json(UI)中。
典型工作流程
- 啟動目標:
/goal 審查前端並把可見的 UI 文字翻譯成西班牙語 - 代理執行任務,邊欄持續顯示進度。
- 當目標完成時,代理呼叫
update_goal並設定status: "complete",同時提供證據(例如測試結果、PR 連結)。 - 若無法達成目標,代理呼叫
update_goal並設定status: "unmet"及阻塞描述。 - 可隨時使用
/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 提供了一種輕量、可配置的解決方案。
相關
- 專案
- 專案
- 專案
- 專案
- 專案