跳到主要内容
    ↑↓ 选择↵ 打开esc 关闭
    中文English
    summer88123

    Always Questions

    v1.0.0其他
    opencode-plugin-always-questions

    An 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.

    GitHub 星标

    0

    月装机量

    5

    近 7 天 2

    综合评分SCORE

    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"]
    }

    opencode 启动时会通过内嵌运行时自动加载 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 session
    • MESSAGE_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.transform and experimental.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