opencode-plugin-always-questionsAn OpenCode plugin that appends a fixed suffix to system prompts and user messages, requiring the AI to ask what to do next after completing each task.
0
5
近 7 天 2
18.7
生态多维模型
3 个月前
2026-04-27
快速安装与配置
opencode.json写入当前项目的 opencode.json,只对这个仓库生效。
opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-plugin-always-questions@1.0.0"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-plugin-always-questions@1.0.0"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D opencode-plugin-always-questionsopencode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。
An OpenCode plugin that ensures the AI always asks for your next steps after completing any task by appending a fixed directive suffix to the system prompt and every user message.
What it does
After the AI finishes any task, it is required to call the built-in questions tool to present context-aware options for what to do next, rather than simply ending the response with a passive "let me know if you need anything."
Mechanism
The plugin hooks into two experimental transform events:
| Hook | Effect |
|---|---|
experimental.chat.system.transform |
Appends a mandatory behavior directive to the system prompt |
experimental.chat.messages.transform |
Appends a per-message reminder to the last user message before it reaches the LLM |
Both hooks are invisible in the TUI — the user does not see the injected text, but the model always receives it.
Installation
Option 1: npm (global or project)
Add to your opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["opencode-plugin-always-questions"]
}
OpenCode will install the package automatically via Bun at startup.
Option 2: Local plugin file
Copy index.js (or index.ts) to your plugin directory:
- Project-level:
.opencode/plugins/always-questions.js - Global:
~/.config/opencode/plugins/always-questions.js
Files in these directories are loaded automatically — no config entry needed.
Configuration
The plugin currently has no configuration options. The injected suffix text is defined as constants in index.ts:
SYSTEM_SUFFIX— directive added to the system prompt once per sessionMESSAGE_SUFFIX— reminder added to each user message
To customize, clone the repo and edit these constants before building.
Building from source
bun install
bun build index.ts --outfile index.js --target bun --format esm
Requirements
- OpenCode with plugin support
- Bun runtime (used internally by OpenCode)
Notes
- This plugin uses experimental OpenCode APIs (
experimental.chat.system.transformandexperimental.chat.messages.transform) which may change in future versions. - The injected text counts toward the model's context window. The total overhead is approximately 200 tokens per session (system suffix, added once) plus ~30 tokens per user message.
License
MIT