DictX 是一个 Rust 编写的终端词典应用:本地优先、离线检索、彩色排版,并支持按需调用在线 AI API 做词义详解。
DictX 不直接把 CSV、SQLite、MDX 当作运行期查询文件。外部词库会先转换成 DictX 专有 .dxdict 二进制词库包,再构建本地 Tantivy 索引。查询时只读取本地索引和二进制词条包,普通查词不联网。
- 内置高质量词库:默认内置
新世纪汉英大词典和kd_data转换后的 DictX 词库分片。 - 离线优先:
lookup、search、zh都基于本地索引,普通查询不会请求网络。 - 专有词库格式:支持把 MDX、SQLite、ECDICT CSV、Anki JSONL、CC-CEDICT 转换为
.dxdict。 - 终端交互:Rich 模式默认显示前 3 条结果,支持加载更多、数字键触发 AI 详解、鼠标点击操作栏。
- 结果融合:跨词源查询会合并同一个词的重复结果,聚合释义、短语、标签和来源。
- 质量评测:内置固定 query benchmark,用于检查常用查询和排序回归。
- 可选 AI:兼容 OpenAI Chat Completions 风格接口,默认面向 DeepSeek 配置。
不想安装 Rust 工具链时,推荐从 GitHub Releases 下载对应平台的单个可执行文件:
| 平台 | 文件 |
|---|---|
| Windows x64 | dictx-windows-x64.exe |
| Windows x86 32-bit | dictx-windows-x86.exe |
| macOS Apple Silicon | dictx-macos-arm64 |
| macOS Intel | dictx-macos-x64 |
| Linux x86_64 | dictx-linux-x64 |
macOS Apple Silicon:
curl -L -o dictx https://github.com/surustand/dictx/releases/latest/download/dictx-macos-arm64
chmod +x dictx
sudo mv dictx /usr/local/bin/dictxmacOS Intel 把文件名换成 dictx-macos-x64。如果系统提示来自互联网下载,可执行:
xattr -d com.apple.quarantine /usr/local/bin/dictxLinux x86_64:
curl -L -o dictx https://github.com/surustand/dictx/releases/latest/download/dictx-linux-x64
chmod +x dictx
sudo mv dictx /usr/local/bin/dictxWindows PowerShell:
Invoke-WebRequest -Uri "https://github.com/surustand/dictx/releases/latest/download/dictx-windows-x64.exe" -OutFile ".\dictx.exe"
.\dictx.exe init
.\dictx.exe build32 位 Windows 把文件名换成 dictx-windows-x86.exe。
下载后首次使用:
dictx init
dictx build
dictx zh 老师已经安装 Rust 工具链时,也可以通过 crates.io 安装:
cargo install dictx --lockedCargo 通常会把可执行文件安装到 ~/.cargo/bin。如果终端提示找不到 dictx,请确认该目录已经加入 PATH。需要固定当前已发布版本时:
cargo install dictx --version 0.1.2 --lockeddictx init
dictx build
dictx lookup apple
dictx zh 老师
dictx search '~appple'dictx init 默认会写入配置并直接构建已启用词源的索引,首次安装后可以直接查询。只想写配置、不想立即构建时:
dictx init --no-build执行 dictx init --no-build、手动更换词源或更换索引目录后,需要运行 dictx build。
查看当前路径和词源:
dictx config paths
dictx source list运行固定查询质量评测:
dictx bench
dictx bench --strictbench 会检查 老师、伙计、收到、bus、diff、take off 等固定 query。--strict 适合 CI,期望结果未命中时会返回失败码。
Rich 输出进入交互状态后:
- 按
n加载更多结果 - 按
1、2、3查询当前可见卡片的 AI 详解 - 支持鼠标的终端可以点击底部操作栏
- 按
q退出
dictx init 默认写入两个内置词源:
| 词源名 | 虚拟路径 | 内容 |
|---|---|---|
builtin_new_century |
builtin:new-century-han-eng |
新世纪汉英大词典转换后的汉英词库 |
builtin_kd_data |
builtin:kd-data |
kd_data 转换后的英汉/汉英词库 |
内置词库随 Cargo 依赖安装,用户不需要保留原始 .mdx 或 .db 文件。第一次使用时运行 dictx build 即可生成本地索引。
| 类型 | --format |
用途 |
|---|---|---|
| DictX 内置包 | builtin-dxdict |
内置词库专用格式 |
| DictX 专有包 | dxdict |
推荐的运行期词库格式 |
| MDX / MDict | mdx |
解析 .mdx,清洗 HTML,并提取释义、例句、短语 |
| SQLite 词典库 | sqlite |
已适配 kd_data.db 的 en/ch 表结构 |
| ECDICT CSV | ecdict |
英汉词库,可包含音标、标签、词频等字段 |
| Anki JSONL | anki-jsonl |
自制词卡、导出词卡、JSONL 词库 |
| CC-CEDICT | cedict |
汉英补充词库 |
导入外部词库并登记配置:
dictx source import new_century /path/to/新世纪汉英大词典.mdx --format mdx
dictx source import kd_data /path/to/kd_data.db --format sqlite
dictx source import ecdict /path/to/ecdict.csv --format ecdict
dictx build只生成 .dxdict 文件,不修改配置:
dictx source pack /path/to/dict.mdx ./dict.dxdict --format mdx
dictx source add my_dict ./dict.dxdict --format dxdict
dictx build --source my_dict大词库可以按词条数拆分:
dictx source pack /path/to/kd_data.db ./kd-data.dxdict --format sqlite --shard-size 22000dictx lookup bus # 精确查词
dictx l bus # lookup 短别名
dictx zh 伙计 # 中文反查英文
dictx search fruit --pos n # 全文搜索并按词性过滤
dictx search '~buss' # 模糊搜索
dictx search 'trans*' # 通配符搜索
dictx lookup bus --format plain # 纯文本输出
dictx lookup bus --format json # JSON 输出
dictx bench # 固定查询质量评测默认 Rich 模式只展示前 3 条结果。需要一次性展示更多时:
dictx zh 伙计 --limit 10查看配置:
dictx config path
dictx config show常用配置项:
| Key | 说明 |
|---|---|
dict_dir |
DictX 管理的 .dxdict 词库目录 |
index_dir |
索引和 entries.dxp 缓存目录 |
search.default_limit |
默认查询数量 |
search.fuzzy_distance |
模糊搜索距离,最大为 2 |
output.color |
是否启用彩色输出 |
output.examples |
是否显示例句 |
ai.base_url |
OpenAI-compatible API 地址 |
ai.model |
AI 模型名称 |
ai.api_key_env |
API key 所在环境变量名 |
默认 AI 配置:
base_url = https://api.deepseek.com
model = deepseek-v4-flash
api_key_env = DEEPSEEK_API_KEY
使用 DeepSeek:
export DEEPSEEK_API_KEY=...
dictx ai "take off" --context "The plane will take off at noon."切换到其他 OpenAI-compatible 服务:
dictx config set ai.base_url https://api.openai.com/v1
dictx config set ai.model gpt-4o-mini
dictx config set ai.api_key_env OPENAI_API_KEYDictX 按系统标准目录保存运行期文件:
- 配置文件:
dictx config path - 词库目录:
dictx config get dict_dir - 索引目录:
dictx config get index_dir
索引属于可重建缓存。词库更新或索引格式升级后,运行:
dictx build --force早期版本使用过 ~/.dictx/config.toml。如果新的系统标准配置文件不存在,DictX 会继续读取旧路径;需要重建默认配置时运行:
dictx init --forceDictX 程序代码采用 MIT License。内置词库数据以其原始词库来源和发布许可为准。