Yefanfan
No description available
Ask AI about Yefanfan
Powered by Claude · Grounded in docs
I know everything about Yefanfan. Ask me about installation, configuration, usage, or troubleshooting.
0/500
Reviews
Documentation
Vibe English
边 Vibe Coding 边学英语。一个住在 Claude Code 里的英语教学蘑菇。
🍄(^_^) ●●●●●●●●○○ ⚡80 | "I need a coffee break."
💬 我需要休息一下喝杯咖啡。 | 📖 coffee(考菲)=咖啡 break(布瑞克)=休息 | 📚3句
为什么做这个
Claude Code 的 Companion 功能上线后,一个小角色可以一直待在终端旁边,时不时冒一句评论。但它本质上只是个挂件——说一句俏皮话就消失了,没有被进一步利用。
这让我觉得,这个"一直陪在身边"的位置,应该能做更多事情。
写代码的人每天盯屏幕十几个小时,如果这个陪伴的角色不只是吐槽,而是趁你等编译、等响应的间隙,顺手教你一句英语呢?不用刻意打开学习 App,不用中断工作流,就在你 Vibe Coding 的过程中,碎片化地把英语学了。
Vibe English 就是这个方向的一次尝试: 把 Claude Code 的 Companion、Status Line、MCP、Hooks 这些能力组合起来,让"陪伴"不只是装饰,而是有用的东西。
目前 Companion 的评论内容由 Claude Code 内部控制,无法与状态栏完全同步。Vibe English 通过统一宠物身份和英语教学性格做了软联动,但这不是真正的内容级联动——这也是 Companion 开放能力后值得继续探索的方向。
它能做什么
- 状态栏教学 — 底部状态栏常驻英语句子 + 中文翻译 + 谐音发音,每 3 分钟自动换一句
- 语音教学 — 等待 Claude 响应时自动播放:英文整句 → 中文翻译 → 逐词讲解 → 多速度跟读
- 深度教学 — 说「来句英语」触发完整教学卡片(逐词拆解、音标、谐音)
- 宠物养成 — 学英语给宠物喂食,不学习它会饿肚子、生病、死掉(可复活)
- 自动适配 — 宠物名称和形象自动跟随你的 Claude Code Companion 设置
宠物形象自动适配
Vibe English 会读取你的 Claude Code Companion 设置(~/.claude.json 中的 companion.name),自动匹配宠物名称和状态栏图标:
🦆(^_^) Duck 🪿(^_^) Goose 🫧(^_^) Blob
🐱(^_^) Cat 🐲(^_^) Dragon 🐙(^_^) Octopus
🦉(^_^) Owl 🐧(^_^) Penguin 🐢(^_^) Turtle
🐌(^_^) Snail 👻(^_^) Ghost 🦎(^_^) Axolotl
🐹(^_^) Capybara 🌵(^_^) Cactus 🤖(^_^) Robot
🐰(^_^) Rabbit 🍄(^_^) Mushroom 🐾(^_^) Chonk
覆盖了 Claude Code Companion 的所有官方形象,也支持自定义名称(dog、fox、panda 等)。不需要额外配置,装完即生效。如果名字没有命中任何关键词,默认显示 🍄。
安装
1. 克隆项目
git clone https://github.com/cck002/vibe-english.git
cd vibe-english/mcp-plugin
npm install
2. 注册 MCP 服务(全局)
claude mcp add vibe-english -s user -- node $(pwd)/server.js
3. 配置状态栏
编辑 ~/.claude/settings.json,添加:
{
"statusLine": {
"type": "command",
"command": "node /你的路径/vibe-english/mcp-plugin/statusline.js",
"padding": 0
}
}
4.(可选)配置 Hooks
自动触发教学和关键词识别:
{
"hooks": {
"UserPromptSubmit": [
{
"hooks": [{
"type": "command",
"command": "bash ~/.claude/hooks/vibe-english-prompt.sh",
"timeout": 3
}]
}
],
"Stop": [
{
"hooks": [{
"type": "command",
"command": "bash ~/.claude/hooks/vibe-english-trigger.sh",
"timeout": 10
}]
}
]
}
}
Hook 脚本示例在 hooks/ 目录下。
5.(可选)配置 Companion
把右边的伴侣改成英语教学蘑菇。在 ~/.claude.json 中修改 companion 字段:
{
"companion": {
"name": "VibeShroom",
"personality": "A cute mushroom English tutor. Every comment MUST be bilingual: first a short English sentence, then Chinese translation + key words with pronunciation hints in parentheses. Example: \"Time to debug! 该抓虫了! debug(迪巴格)=调试\""
}
}
使用
| 操作 | 效果 |
|---|---|
| 正常 coding | 底部状态栏自动显示英语句子,每 3 分钟换一句并朗读 |
| 说「来句英语」 | 触发深度教学(逐词拆解 + 语音) |
| 说「看看宠物」 | 查看蘑菇状态(能量、连续天数、学习统计) |
| 说「学完了」 | 喂养蘑菇,恢复能量 |
| 说「复活」 | 当蘑菇饿死时复活它 |
/vibe-english | 斜杠命令直接触发教学 |
宠物系统
蘑菇靠你学英语活着:
(^_^) 开心 能量 >= 80
(·_·) 普通 能量 >= 50
(o_o) 饿了 能量 >= 20
(u_u) 生病 能量 >= 1
(x_x) 死了 能量 = 0 (可复活)
- 学完一句英语 → 能量 +15
- 每分钟自然衰减 0.02(约 3 天从满血到死亡)
- 连续学习有 streak 记录
语音系统
默认:macOS 系统语音(开箱即用)
默认使用 macOS 内置的 say 命令,无需任何配置:
- 英文 — Samantha(美式女声)
- 中文 — Tingting 婷婷(普通话女声)
语音教学流程:英文整句 → 中文翻译 → 逐词(英文+中文意思) → 正常语速 → 流利语速
更换系统语音: 在终端运行 say -v '?' 查看所有可用语音。修改 speak-lesson.js 顶部的语音名称即可。常见选择:
| 语音 | 语言 | 风格 |
|---|---|---|
| Samantha | 英语(美式) | 女声,清晰自然 |
| Daniel | 英语(英式) | 男声,英伦口音 |
| Flo | 英语(美式) | 女声,活泼 |
| Reed | 英语(美式) | 男声 |
| Tingting | 中文(普通话) | 女声 |
| Shelley | 中文(普通话) | 女声 |
进阶:接入 TTS API(更好的音色)
如果系统语音不能满足你,可以接入第三方 TTS API:
- 复制模板文件:
cp mcp-plugin/tts-provider.example.js mcp-plugin/tts-provider.js - 在
tts-provider.js中配置你的 TTS 服务 - 设置环境变量:
# 在 ~/.zshrc 或 ~/.bashrc 中添加 export VIBE_TTS_API_KEY="your-key-here"
支持的 TTS 服务:MiniMax、Azure TTS、Google TTS、Edge TTS(免费)等。详见 tts-provider.example.js 中的注释。
项目结构
vibe-english/
├── mcp-plugin/
│ ├── server.js # MCP 服务(深度教学 + 宠物系统)
│ ├── statusline.js # 状态栏脚本(常驻英语展示)
│ ├── speak-lesson.js # 语音教学脚本(后台运行)
│ ├── tts-provider.example.js # TTS API 接入模板
│ ├── sentences.json # 句子库(51句,4个分类)
│ └── package.json
├── hooks/
│ ├── vibe-english-prompt.sh # 关键词识别 hook
│ └── vibe-english-trigger.sh # 随机教学 hook
├── DesktopPet.swift # macOS 桌面宠物版(独立运行)
├── vibe-english.sh # 终端版(独立运行)
└── README.md
技术栈
- MCP Server — 基于
@modelcontextprotocol/sdk,提供 4 个工具 - Status Line — Claude Code 状态栏 API,定期刷新
- Hooks —
UserPromptSubmit+Stop事件钩子 - TTS — macOS
say(默认) / 可选接入第三方 TTS API
系统兼容性
| 功能 | macOS | Windows | Linux |
|---|---|---|---|
| 状态栏英语展示 | ✅ | ✅ | ✅ |
| MCP 深度教学 | ✅ | ✅ | ✅ |
| 宠物养成系统 | ✅ | ✅ | ✅ |
| Companion 联动 | ✅ | ✅ | ✅ |
| 语音朗读(系统) | ✅ | ❌ | ❌ |
| 语音朗读(TTS API) | ✅ | ✅ | ✅ |
Windows / Linux 用户: 所有文字功能正常使用,语音部分会静默跳过不会报错。如果需要语音,可以接入第三方 TTS API(参考上方「进阶:接入 TTS API」)。
系统要求
- Node.js >= 18
- Claude Code CLI
Roadmap
这个项目是一次探索,还有很多可以做的方向:
- 状态栏常驻英语教学
- 语音教学(系统 TTS)
- 宠物养成系统
- 技术栈自动检测(根据项目文件类型匹配相关句子)
- 智能句子生成 — 根据当前对话上下文,用 Claude 动态生成贴合场景的英语教学(需要 token)
- 社区句子库 — 开放 PR 贡献,按技术栈/场景分类,大家一起丰富内容
- 学习记录可视化 — 统计每日/每周学习量,生成学习报告
- Companion 深度联动 — 等 Anthropic 开放 Companion 控制 API 后,实现状态栏和 Companion 评论的内容同步
- 多语言支持 — 不只是中→英,支持日语、韩语等其他语言方向
- 自定义句子库 — 用户可以添加自己想学的句子,工具自动生成音标和谐音
欢迎提 Issue 和 PR。
License
MIT
