bibcite 用于端到端管理 .bib 文件与引用:把论文解析为经过在线来源验证的规范 BibTeX,与目标文件去重,写入、整理,并以 JSON 输出最终引用键。其核心规则是:所有 .bib 变更都通过 bibcite,绝不手工编辑 .bib 文件。
若 bibcite 不在 PATH,可用 uvx --from bibcite-cli bibcite <子命令> … 运行,或一次性安装 uv tool install bibcite-cli。
主要命令:bibcite add refs.bib <arXiv id | arXiv URL | DOI | 标题> 完成解析→去重→写入→整理;--bibtex '-' 从标准输入接收用户粘贴的 BibTeX;--from ids.txt 一次处理多篇(每行一个查询,优于循环调用);--replace 覆盖匹配条目并保留其键,无匹配则报错;--key k1 精确替换指定条目。bibcite remove refs.bib <key> 删除条目;bibcite get <query> [--json] 仅查询并打印 BibTeX,不写文件;bibcite fix refs.bib 执行预印本升级→整理→检查;bibcite upgrade refs.bib [--dry-run] 仅做预印本转正式版;bibcite tidy refs.bib 仅格式化;bibcite check refs.bib 只读检查重复、预印本与缺失字段。
每次 add/get 只处理一篇论文,多余参数会合并为单个标题查询。除 get/tidy 外,命令在 stdout 输出单个 JSON 对象,诊断信息走 stderr,因此只解析 stdout。action 可能为 added、exists、upgraded 或 replaced;key 应始终从 JSON 读取,不要猜测或复用。upgrade 会以 no_published_version 或 sources_unavailable 说明未匹配原因。预印本结果带 published_check:complete 表示确无正式版,incomplete 表示受速率限制影响,应稍后重试。正式版标题常与 arXiv 不同,bibcite 会模糊匹配并更新为正式标题。
解析失败时:退出码 2 表示找不到论文,应请用户提供更强的标识符(arXiv id 或 DOI),不要编造条目;退出码 3 表示 bibcite 或其来源失败(限流、故障),论文可能确实存在,应等待重试,绝不手工写入。成功匹配会缓存在 ~/.cache/bibcite/,重试成本低。