Skip to content

lukyFun/waitword

Repository files navigation

waitword 📖

等 AI 的时候,背个单词。

CI Release Go License: MIT

English

程序员每天有近 8 小时泡在终端里——用 Claude Code、Codex、Qwen Code 等 AI CLI 时等模型响应,跑命令、跑测试、跑部署时等执行结束。这些等待的碎片时间每天累计相当可观,却几乎全部被浪费。

waitword 把这些时间变成词汇积累:状态栏常驻一张单词卡,每 15 秒自动切换,等待时的每一次抬眼都是一次复习。同一批单词全天几十次重复曝光,靠高频重复自然记牢——不再需要额外抽出时间面对枯燥的单词书。无需评分、无需交互、没有后台进程:上班的同时,无痛地把单词背了。

在 Claude Code 状态栏中的效果:

waitword 单词卡:单词、音标、释义与中英例句

一、核心功能

  • 自动轮换:每 15 秒切换一个词(单词 + 音标 + 释义 + 中英例句),无需任何操作

  • 内置七大词库:四级(默认)、六级、高考、考研、雅思、托福、程序员英语,共 28,000+ 词,开箱即用,一条命令切换

  • 每日批次:每天固定 30 个词循环滚动(约 7 分钟一轮),次日自动更换下一批

  • quiz 主动测试waitword quiz 对当日批次做拼写回忆测试,答错的词自动加入次日批次

  • cloze 挖空:每第 4 个词先隐藏拼写、数秒后自动揭晓,在被动曝光中加入主动回忆

    cloze 挖空:拼写隐藏,仅显示释义与例句

  • 多端接入:Claude Code / Qwen Code 状态栏、tmux、starship、zsh / bash、WezTerm

  • 零开销:单个二进制文件、无依赖、毫秒级启动、无后台进程

核心设计:时间即状态

显示哪张卡片是墙钟时间的纯函数:

index = (自纪元天数 × 每日批量 + (unix秒 / 间隔) % 每日批量) % 词库大小

因此无状态、无守护进程、无数据库——各界面定期调用 waitword now 即可,且多端天然同步:同一时刻所有界面显示同一个词。

二、快速开始

1. 安装

方式一、方式三依赖 Go 1.22 及以上(方式二直接下载二进制,无需 Go)。先检查是否已安装:

go version        # 输出 go1.22 或更高即可

未安装 Go 时:

  • macOS:brew install go
  • Debian / Ubuntu:sudo apt install golang-go
  • Windows 及其他平台:从 go.dev/dl 下载对应安装包
# 方式一:go install(推荐)
go install github.com/lukyFun/waitword@latest

go install 将二进制安装至 $(go env GOPATH)/bin(默认 ~/go/bin)。若提示 command not found: waitword,需将该目录加入 PATH:

echo 'export PATH="$HOME/go/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
# bash 用户将 ~/.zshrc 替换为 ~/.bashrc
# 方式二:从 Releases 页下载预编译二进制(macOS / Linux / Windows),放入 PATH,无需 Go

# 方式三:源码构建
git clone https://github.com/lukyFun/waitword && cd waitword
go build -o waitword . && mv waitword ~/bin/

2. 验证

waitword now

输出一张单词卡即安装成功。默认词库为大学英语四级,切换其他词库见"三、进阶使用"。

3. 接入你的终端

当前支持的终端与效果:

  • 常驻自动轮换(状态栏常驻,每 15 秒切换):Claude Code、Qwen Code、tmux、WezTerm
  • 随提示符刷新(每次命令结束、提示符重绘时显示一张单词卡):zsh、bash、starship、PowerShell / Windows Terminal
  • 暂不支持:Codex CLI、Gemini CLI——官方尚未开放自定义 statusline(openai/codex#20140);可在 tmux 中运行二者,效果相同

运行对应命令,回车确认即可——写入了哪个文件、如何生效,以命令输出的提示为准:

waitword adapter claude-code    # Claude Code
waitword adapter qwen-code      # Qwen Code
waitword adapter tmux           # tmux —— 普通终端(Terminal.app / iTerm2)要自动轮换用它
waitword adapter zsh            # zsh;bash 用户:waitword adapter bash
waitword adapter starship       # starship
waitword adapter powershell     # PowerShell —— 仅打印片段,按提示粘贴到 $PROFILE
waitword adapter wezterm        # WezTerm —— 仅打印片段,粘贴到 return config 之前

--remove 撤销写入;--print 仅打印、不修改文件。

zsh / bash / starship / PowerShell 为随提示符刷新:每次命令结束显示一张单词卡,不在空闲时自动换词;需要自动轮换请用 tmux 或 AI CLI statusline。

zsh:每条命令结束后显示一张两行单词卡

三、进阶使用

词库管理

内置七大词库(除 coder 外绝大多数词条带音标与中英例句):

  • cet4 四级英语词汇(默认,3739 词)
  • cet6 六级英语词汇(2078 词)
  • gaozhong 高考必备词汇(3665 词)
  • kaoyan 考研英语词汇(4533 词)
  • ielts 雅思词汇(3427 词)
  • toefl TOEFL 词汇(9212 词)
  • coder 程序员英语(1700 词,无例句)
waitword deck list                            # 查看全部词库(内置 + 已导入)
waitword deck use toefl                       # 切换激活词库
waitword deck import my.tsv --name my         # 导入自定义词库
waitword deck remove my                       # 删除已导入词库

自定义词库支持 TSV / CSV(列:word ⇥ 音标 ⇥ 释义 ⇥ 英文例句 ⇥ 例句翻译word 之后的列可省略)与 qwerty-learner / kajweb 扁平 JSON。kajweb/dict 的嵌套导出格式使用 scripts/convert_kajweb.py 转换。同名导入词库会覆盖内置词库。

quiz 主动测试

waitword quiz

对当日批次做拼写回忆测试:显示释义与首尾字母提示,输入完整单词作答;直接回车为放弃本题,q 提前退出。答错与放弃的词会自动加入次日批次继续曝光,测试结束显示正确率。

waitword quiz 拼写回忆测试

配置

waitword config                       # 查看当前配置
waitword config set interval 15      # 每词展示秒数
waitword config set daily 30         # 每日批量
waitword config set cloze_every 4    # 挖空频率(0 为关闭)
waitword config set prefix 📖         # 状态栏前缀
waitword today                        # 查看当日批次

数据目录为 ~/.config/waitword/,可用环境变量 $WAITWORD_DIR 覆盖。

更新

更新即替换二进制文件,与安装方式对应:

waitword version                                # 查看当前版本

go install github.com/lukyFun/waitword@latest   # go install 方式
# Releases 方式:下载新版覆盖旧文件
# 源码方式:git pull && go build -o waitword .

卸载

waitword uninstall        # 列出待删内容并确认;-y 跳过确认

关于被动展示的有效性

纯曝光的记忆效果弱于主动回忆,因此设计了 cloze 挖空(周期性回忆测试)与每日批次(同一批 30 词全天重复,而非全词库单次漂过)。waitword 不替代 Anki 等主动复习工具,定位是利用原本无产出的等待时间。

路线图

核心功能

  • FSRS-lite(可选):跳过已标记"认识"的词
  • 更多内置词库:专四专八、GRE、SAT 等

终端扩展

  • iTerm2 状态栏组件(需 iTerm2 Python API)
  • Codex CLI / Gemini CLI(待官方开放自定义 statusline)
  • Homebrew tap / Scoop 分发

四、致谢与作者

词库来源与版权

代码以 MIT 协议发布。内置六大词库的数据来源于 GitHub 开源词库项目(kajweb/dict 等),版权归原始来源所有,随本项目分发仅为集成便利;如有权利异议请提 issue。同时致谢 qwerty-learnerECDICT——本工具的导入格式即为与它们互操作而设计。

作者

本项目由 拉丁解牛说技术 开发维护,同时是 舌尖英语 的作者——一款发音优先的英语学习应用(网页版 word.askwhat.top,微信小程序搜索「舌尖英语」)。

MIT © lukyFun

About

coding、等 AI 的时候,背个单词 | Learn a word while your AI works — vocabulary flashcards in your terminal statusline (Claude Code / Qwen Code / tmux / zsh)

Topics

Resources

License

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Packages

 
 
 

Contributors