用途
nab 是一个面向 LLM 智能体的“令牌精简型”网页微抓取工具,同时集成本地多语言 ASR 与 URL 监控。它被设计为单个 Rust 二进制文件,而非浏览器,目标是把网页、音视频和网页变更转化为适合 LLM 上下文窗口的干净内容。
主要能力
网页抓取为 Markdown:抓取任意 URL 并输出干净 Markdown,支持 BM25-lite 的查询聚焦提取和结构感知的令牌预算,减少网页研究的令牌成本,而不是把原始 HTML 直接塞进上下文。
认证访问:支持真实浏览器 Cookie、1Password 自动登录(含 TOTP/MFA)、WebAuthn 通行密钥、指纹伪装与 WAF 规避,可访问内部仪表盘、SaaS 应用和付费墙研究内容。
本地多模态分析:在设备本地转写并分离任意音视频的说话人。macOS arm64 默认使用 FluidAudio,在 Apple Neural Engine 上运行 Parakeet TDT v3,官方称 2 小时片段可达 131 倍实时,支持 25 种欧盟语言、词级时间戳,可选 Qwen3-ASR 处理中文/日文/韩文/越南文;图片 OCR 通过 Apple Vision 完成,支持 15 种语言,约 10–50 毫秒。无需云端、无需 API 密钥。
URL 监控:通过 MCP 资源订阅任意 URL,使用条件 GET、语义差异和自适应退避,内容变化时推送通知。
提示注入防御(默认开启):将抓取页面视为敌意输入,在内容到达智能体前运行两个本地、非联网的防护。Secure Ingestion 防护检测并剥离面向机器、人类不可见的标记(AI 定向注释、display:none / aria-hidden 隐藏文本、仅智能体的 data-* 载荷、WebMCP 广告),并按 Info / Warn / Block 级别报告。YARA-X 签名防护扫描返回正文中的提示注入、数据外泄、密钥泄露和混淆特征,默认对匹配段落进行脱敏;可设置 NAB_YARA_ACTION=refuse 直接阻止抓取,或 NAB_YARA_BYPASS=1 作为经审计的紧急退出。
站点专用提供方:可识别 12 个平台,优先使用 API 或稳定的结构化页面数据,而非宽泛的 HTML 抓取;无匹配时回退到标准 HTML 抓取加 Markdown 转换。
使用方式
安装:推荐 macOS 使用 Homebrew;也可下载预编译二进制(无需 Rust 工具链),或通过 cargo-binstall 自动获取对应平台的预编译二进制;从 crates.io 安装会本地编译,需要 Rust 1.95 或更新版本。若通过多个渠道安装,PATH 顺序决定哪个版本生效,可用内置诊断命令查看 PATH 上所有 nab 及其版本。
MCP 配置:可加入 MCP 客户端配置(Claude Desktop、Cursor、Windsurf 等),或使用自动安装器;也支持 gemini、amazon-q、lm-studio。MCP 服务器 nab-mcp 是原生 Rust 实现,默认走 stdio,也支持 Streamable HTTP,默认绑定 localhost,并执行来源检查与 MCP-Protocol-Version 头校验。
Claude Code 插件:仓库内含本地插件,捆绑 nab MCP 自动注册与 Claude Elite 的 research、url-insight、wayback、ia、oreilly 技能,暴露 /nab 工作流,覆盖抓取、带认证的 Brave Cookie 抓取、归档检索和多源研究。
常用命令:nab fetch 支持 --cookies brave 使用现有浏览器会话,--1password 处理 1Password/TOTP 流程;MCP fetch 额外支持 focus、readability、max_tokens 和 session 参数。nab analyze 本地转写音视频;nab watch 将 URL 变为可订阅资源。
适用场景
- 让 LLM 智能体以低令牌成本读取网页内容
- 访问需要登录或存在反爬的站点、内部仪表盘与 SaaS 应用
- 本地转写、分离说话人的音视频处理
- 监控网页变化并推送通知
- 在抓取流程中防御提示注入与数据外泄
限制
- 默认 nab fetch 保持本地优先、仅 HTTP;需要 DOM 执行的页面需配置外部 CDP 端点(NAB_BROWSER_CDP_WS 或 --browser-cdp-url),再运行 nab browser 或 nab fetch --render。远程浏览器提供方可能收到 URL 和渲染后的页面内容,本地浏览器 Cookie 不会自动对远程浏览器可用。
- MCP 服务器并非完全符合 2026-07-28 规范:不等待的调用在该修订版上提供,包括 fetch、fetch_batch、submit、auth_lookup、fingerprint、validate、benchmark、watch_create、watch_list、watch_remove;login、analyze、task 仅在该调用不会引发 elicitation 或 sampling 时提供;会引发 elicitation 或 sampling 的 2026-07-28 调用返回 JSON-RPC 错误且不等待。会话、elicitation、sampling 和任务仍停留在 2025-11-25。crates.io 构建没有 SDK 补丁,因此该 nab-mcp 不提供 2026-07-28。
- 两个安全防护(Secure Ingestion 与 YARA-X)属于企业版模块:个人和非商业用途在 PolyForm Noncommercial 1.0.0 下免费;商业/业务用途需要商业许可。v0.9.0 之前的所有版本保持完全 MIT。
- 从源码构建需要 Rust 1.95+;analyze 和 stream 命令需要 ffmpeg;1Password 集成需要可选的 1Password CLI。
- macOS 上 Cookie 提取可能需要为终端授予完全磁盘访问权限;ASR 模型需单独下载(约 542 MB)。
- 工具包含浏览器 Cookie 提取和指纹伪装能力,官方声明仅用于合法场景,如访问自己的认证内容、自动化测试和已获授权的站点。
配套工具
nab 是“主权多模态栈”的一半,另一半是受神经科学启发的记忆 MCP 服务器 hebb。组合示例包括:nab analyze --diarize --include-embeddings 配合 hebb voice_match 为说话人标注姓名;nab fetch URL 配合 hebb kv_set 形成个人网页记忆;nab watch add URL 配合 hebb kv_set(更新时)形成任意网页变更的时间序列。
配置与状态
nab 无需配置文件,使用智能默认值:自动检测浏览器 Cookie、随机化指纹、Markdown 输出。持久状态位于 ~/.nab/,可选插件配置位于 ~/.config/nab/plugins.toml。