概述
Deadzone 是一个面向库文档的离线语义搜索引擎。用户可以用自然语言查询(例如“how do I register a tool?”),它会通过向量嵌入找到文档中相关的段落(例如提及 AddTool 的地方),而传统基于 grep 或 FTS5 的索引无法做到。
官方将其描述为“Context7 但关闭了互联网”:一个 Go 二进制文件,通过 stdio 使用 MCP 协议与 AI 客户端通信,所有数据保留在用户笔记本上。
主要能力
- 自然语言优先:使用 nomic-embed-text-v1.5 嵌入模型和余弦距离进行检索,不使用 FTS5。
- 本地索引:索引存储在本地 Turso 文件中,无需账户、API 密钥,热路径无出口网络请求。
- 单一二进制:所有功能通过
deadzone子命令提供,无需 pip、npm 或 docker compose。 - 版本锁定:数据库与二进制版本绑定。升级二进制后,数据库会在下次启动时重新获取;不升级则继续使用缓存。
- 首次启动获取索引:首次启动时获取匹配当前二进制版本的
deadzone.db,进行 SHA256 校验,并缓存到平台数据目录。之后启动无网络。 - MCP over stdio:可作为 MCP 服务器与支持 MCP 的客户端集成。
- 零遥测:无遥测数据。
- 容器支持:提供多架构容器镜像,镜像内烘焙了数据库,无需卷挂载,启动即离线可用。
- 气隙环境支持:提供环境变量和默认缓存路径,方便离线部署。
使用方式
安装
可从发布页面获取二进制、tarball 或 AppImage,也可通过 Homebrew 安装。容器镜像在 ghcr.io 提供。所有方式最终得到同一个 deadzone 可执行文件。
MCP 客户端配置
原生二进制方式:
./deadzone server
容器方式:镜像已包含 deadzone.db,无需卷挂载。
贡献者路径
可通过编辑 libraries_sources.yaml 添加库源,然后运行抓取。也可通过 GitHub 新建 issue 并选择 “Add a library” 或 “Refresh a library” 模板。
实验性抓取代理
支持通过兼容 POST /v1/chat/completions 的 LLM 运行时(如 Ollama、llama.cpp、vLLM、LocalAI、LM Studio、Groq、OpenAI)进行抓取,但官方注明该流程对输入截断、HTML→markdown 转换和逐字代码匹配较为敏感,实际命中率约 50%/URL。建议优先使用 github-md。
本地流水线
两步引导:先装工具链,再处理 CGO 原生依赖。使用 just 命令管理。每次抓取重写 artifacts/<slug>/artifact.db 和 state.yaml,consolidate 将所有数据库原子合并到 deadzone.db。
适用场景与限制
适用场景:
- 本地、离线环境下的库文档语义搜索。
- 需要将文档检索集成到 AI 客户端(通过 MCP)。
- 对数据隐私要求高、不希望发送查询到云端的场景。
限制:
- 不覆盖第三方文档的版权,预构建包受原始内容许可约束。
- 抓取代理为实验性功能,命中率有限。
- Windows 被上游阻止(缺少
libtokenizers.a),需使用 WSL。 - AppImage 需要 FUSE v2,部分最小化服务器需额外安装或使用解包参数。
- 分类标识为 ai-office-tools,但实际用途更偏向文档检索工具。