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

    Learn English

    v0.1.2其他
    @dluck/opencode-learn-english

    Non-intrusive opencode plugin that helps Chinese-speaking developers improve English while coding

    GitHub 星标

    0

    月装机量

    20

    近 7 天 1

    综合评分SCORE

    22.4

    生态多维模型

    最近提交

    3 个月前

    2026-05-02

    快速安装与配置

    opencode.json

    写入当前项目的 opencode.json,只对这个仓库生效。

    opencode.json

    {
      "$schema": "https://opencode.ai/config.json",
      "plugin": ["@dluck/opencode-learn-english@0.1.2"]
    }

    opencode 启动时会通过内嵌运行时自动加载 npm 依赖并缓存至本地目录,无需手动在全局环境执行安装。

    A non-intrusive opencode plugin that helps Chinese-speaking developers improve their English while coding. The plugin injects an English tutor instruction into the system prompt, so the main LLM appends a short tips block at the end of its own replies — no background analysis, no separate API calls, no toast queue.

    How It Works

    The plugin hooks into experimental.chat.system.transform and appends a structured "English Learning Tips" instruction to the system prompt. During real user turns (not title generation or compaction), the LLM is asked to:

    1. Input Correction — If the user wrote in English with grammar errors or unidiomatic phrasing, show a Prompt: section with the verbatim awkward phrase → a natural rewrite.
    2. Vocabulary / Phrase Tips — Surface 2–3 notable English expressions from the AI's own reply with plain-English definitions.

    Both features are veto-powered: if there's nothing worth teaching, the LLM omits the block entirely. The tips block is always in English, regardless of the conversation language.

    Install

    Add the plugin to your opencode.json:

    {
      "plugin": ["@dluck/opencode-learn-english"]
    }
    

    Or install locally for development:

    {
      "plugin": ["file:///abs/path/to/opencode-learn-english-plugin"]
    }
    

    Note: The publishConfig.access is set to "public" so the scoped package can be installed without a paid npm account.

    Configuration

    Optional plugin-specific config under experimental.english_learn:

    {
      "experimental": {
        "english_learn": {
          "enabled": true
        }
      }
    }
    
    Key Default Description
    enabled true Master switch for the entire plugin

    Design Principles

    • Non-intrusive: Never modifies conversation history, prompt parts, or LLM behavior beyond the system-prompt injection
    • Veto-powered: The LLM explicitly returns nothing when there's nothing worth teaching
    • Zero infrastructure: No background model calls, no separate credentials, no toast queue — the main LLM does all the work
    • Error-safe: All plugin errors route to OS notifications, never to opencode toasts; hook handlers catch all exceptions

    Requirements

    • opencode with plugin support
    • Bun runtime

    Development

    bun install        # install dependencies
    bun run build      # compile to dist/
    bun test           # run tests