@dluck/opencode-learn-englishNon-intrusive opencode plugin that helps Chinese-speaking developers improve English while coding
0
20
近 7 天 1
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"]
}写入 ~/.config/opencode/opencode.json,对所有项目生效。
~/.config/opencode/opencode.json
{
"$schema": "https://opencode.ai/config.json",
"plugin": ["@dluck/opencode-learn-english@0.1.2"]
}若你要在本地改造这个插件,先装到项目里再从本地路径引用。
shell
pnpm add -D @dluck/opencode-learn-englishopencode 启动时会通过内嵌运行时自动加载 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:
- 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. - 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.accessis 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