Community编程与开发github.com

bpawnzZ/lemonwrench

用于查询汽车维修步骤、扭矩规格、示意图或维修手册。通过车辆信息抓取免费的原厂维修手册,精确匹配具体配置和发动机型号,并交叉核对零件目录与现场资料。

lemonwrench 是什么?

LemonWrench 是一款专为汽车维修研发的 AI 辅助工具,能将诸如“如何更换 <车型> 上的 X 零件”这类问题,转化为包含详细步骤、扭矩表格和标注图示的完整维修流程。它通过整合三大数据源(原厂手册、零件目录、维修论坛等现场共识)来提供高置信度的答案,避免遗漏手册中未提及的关键步骤。该工具基于 lemon-manuals.la 网站,覆盖 1960 至 2025 年间约 10,000 种北美/加拿大车型,包括主流品牌、小众品牌甚至电动车。用户可通过 Python 脚本在终端中完成车型解析、手册索引、关键词搜索、图文获取等操作,最终输出结构化的维修笔记,并明确标注每条信息的来源(手册、零件目录或现场经验)。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add bpawnzZ/lemonwrench

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

LemonWrench — 汽车维修研究

将“如何在我的 <车型> 上更换 X”转化为一个完整的步骤流程、扭矩表格和带标注的图示,然后将其与零件目录和真实世界的现场笔记进行交叉验证,这样你便不会因为手册遗漏的某个步骤而浪费时间。

主要数据源:https://lemon-manuals.la — 涵盖约 10,000 种美国/加拿大车型,涉及 69 个品牌,1960–2025 年,免费使用,无需登录。包括国产车、进口车、孤儿品牌(如 Pontiac、Oldsmobile、Saturn、Saab、AMC、Geo、Mercury、Suzuki)、欧洲豪华车、卡车/商用车以及现代电动车(特斯拉 2012→,Rivian 2022→)。车型年份跨度很大,不仅仅是近年的:丰田和福特拥有连续 66 个车型年份的数据。提供真实的 HTML 文本(扭矩表、容量、分步说明),图示位于 /images25/ 目录下。内容并非扫描的 PDF。

每个车型年份包含两个数据库:

数据库数据源用途
LEMON2025 年抓取2010 年及以后车型、最新 TSB(技术服务公报)、完整目录树、图注
CHARM2013 年的 DVD1990 年代至 2000 年代车型、更精细的细节、目录树深度有限

三源规则

单纯的维修手册不足以构成一个确定的答案。这里每一个有信心的答案都来自三个来源:

  1. 维修手册 — 操作步骤和扭矩数据。
  2. 零件目录(例如 gmpartscenter.net、gmpartsdirect.com、rockauto 等) — 提供零件编号,以及结构上的证明:如果两个铸件是分开的零件,那么它们就是分开的零件。这就是你如何在不通过照片猜测的情况下回答“这个支架是盖子的一部分吗?”这个问题的方法。
  3. 现场共识(车型论坛、JustAnswer/identifix 讨论帖、YouTube 转录文本) — 工程师从未亲手操作过而遗漏在手册外的步骤。如果某一步是现场共识而非手册原文,请如实说明。

如果三个来源存在分歧,就如实报告这种分歧。切勿掩盖。

工具用法

S=scripts/lemon.py
python3 $S <命令>
命令用途
makes获取标准化的品牌名称
years MAKE获取存在的车型年份
cars MAKE YEAR [regex]列出该年份下的车辆,并标注 [LEMON] / [CHARM]
index VEHICLE [--refresh]获取并缓存整个链接树(每辆车只需执行一次)
find VEHICLE TERM... [-n N] [--strict|--any]在缓存的目录树中搜索关键词
read VEHICLE TERM... [-k N]渲染第 N 个搜索结果,并自动跟进子页面
get URL通过绝对 URL 渲染单个页面
sub URL获取某个集散页面下的子页面列表
imgs URL / pic URL / note URL TEXT / notes [URL]图示处理流程 + 持久化缓存
selftest解析器自检,不涉及网络请求

VEHICLE 参数是网站路径去掉斜杠后的形式:Toyota/2015/Camry LE、Pontiac/2007/G6 V6-3.9L。

工作流程

  1. 正确解析车辆信息。 使用 cars MAKE YEAR 列出所有具体配置。发动机和配置的不同会导致手册不同 —— G6 GT, 4D Sedan, 3.9 1, Automatic 和 G6 GT, 4D Sedan, 3.5 N 是两本完全不同的手册。请说明你使用的是哪个具体配置。请注意,车辆徽章可能具有欺骗性:同一个车型名称可能搭载多款发动机,因此务必确认排量。
  2. 创建一次索引。 LEMON 单页目录树大约 5.5 MB / 13,000 个链接,CHARM 分隔树大约 1.3 MB。缓存在 ~/.cache/lemon/<hash>.idx;后续查询都是本地 grep 操作。仅当网站新增了手册时才使用 --refresh。
  3. 使用网站常用术语搜索 — 如 removal、installation、disassembly、torque specifications、fluid capacities、valve clearance、component locations、wiring diagram、DTC、labor times。默认允许一个不匹配的术语;--strict 要求完全精确匹配,--any 用于单个关键词的模糊搜索。
  4. 读取,并逐级深入。 read 命令会打印搜索结果,然后显示最佳页面的文本,并跟进子页面。CHARM 目录树深度有限:集散页面通常只列出标题,需要你先执行 sub <url> 再执行 get <url>。通常需要进行两级深入,这并非异常。
  5. 给出回答:编号步骤、按手册原文列出的扭矩、页面 URL,以及每条声称信息的置信度说明(manual / catalog / field)。

图示处理

read/get 命令会输出 [FIGURE https://lemon-manuals.la/images25/XXXX/] 这样的行,如果存在缓存的描述,则会附加在行尾。

python3 $S pic https://lemon-manuals.la/images25/GM1557668/   # -> ~/.cache/lemon/img/GM1557668.png
# 查看图片,然后:
python3 $S note https://lemon-manuals.la/images25/GM1557668/ "右侧摇臂盖,螺栓环,线圈支架上方"

页面文本中的图注(如 Fig 1: View Of Right Valve Rocker Arm Cover)是图示的真实标题——请直接使用它们,即使在扫描件不清晰的情况下,这些图注也是准确的。1-bit 线条图在原始大小下清晰可读。值得查看的图示包括:分解图(它们包含文本中遗漏的扭矩标注)、接线图、连接器端视图。

描述信息持久化存储在 ~/.cache/lemon/imgnotes.json 中——只需描述一次图示,它就会永久作为文本存在。

超越手册本身

  • 结构性问题(如“这个零件是正时盖的一部分吗?”) → 使用零件目录。独立的零件编号 + 独立的垫片 = 独立的铸件。零件目录图还能告诉你某个紧固件属于哪个子总成。
  • 可达性问题(如“是什么挡住了这个螺栓?”) → 使用现场资料。搜索 <年份> <车型> <发动机> "<零件>" bracket bolt,然后阅读论坛/JustAnswer 讨论帖;经销商技术人员会发布那些缺失的步骤。
  • 是否需要特殊工具(如 压入式皮带轮、Torx 内六角、螺柱) → 请查看拆卸步骤中的预备步骤,它们会列出所需的特殊工具(例如 J 25034-C)。
  • 无法识别的零件螺栓扭矩 → 通过部件名称查看扭矩表,然后通过零件编号确认铸件。同一发动机上看起来相似的支架通常具有不同的扭矩规格(例如相邻部件上分别为 25 N·m vs 50 N·m)。

回答规则

  • 精确引用扭矩值,包括所有三个单位:34 N*m (350 kgf*cm, 25 ft*lbf)。
  • 明确指出低扭矩紧固件(如气门室盖、塑料/复合盖):在铝合金部件上过度拧紧是导致重复泄漏和螺纹拉脱的首要原因。
  • 路径中的 [09/2014 - ] 是修订日期——表示该页面从该日期起适用。
  • LEMON 页面常会注明该手册“与以下车型配置完全相同,除非工时、油液和轮胎型号有所不同”——应复用已有搜索结果,避免重复搜索。
  • <vehicle>/Labor Times/ 目录列出了拆卸与更换操作;如果显示“仅适用于其他车型配置”,请使用它指定的那个配置。
  • 没有覆盖到?请如实说明,并列出最接近的有覆盖的年份。切勿臆造任何规格。
  • 顺序很重要:给出操作的前置依赖链(例如皮带 → 附件 → 支架 → 盖板),而不仅仅是盖板螺栓的步骤。

交付物

将结果编写为独立的 Markdown 笔记,而非对话式散文:

  • 前置元数据(如 tags、vehicle、job、status、updated)
  • 状态说明——指出工作当前的实际进展
  • 首先直接回答关键问题
  • 按操作面/组件编号的步骤
  • 一个包含所有接触到的紧固件的扭矩表格
  • 带图注的图示嵌入
  • 来源/置信度表格 —— 包含声称、来源、已验证 / 现场共识

请参见 examples/ 目录获取一个完整的工作示例笔记。

注意事项

  • URL 区分大小写,品牌名称拼写需与网站一致(如 Dodge and Ram、Mercedes Benz);canon_make 可以自动处理,但手动使用 curl 时则不行。
  • 所有目录 URL 必须包含尾部斜杠。
  • /bundle/ 的 zip 下载包已被禁用(返回 303 状态码,重定向到 /static/sad.html)。robots.txt 也禁止访问 /bundle/。
  • /hyperlink/... 这类 URL 是交叉引用解析器,并非实际内容。
  • 路径中包含版本标签和 %2F 编码的斜杠:请始终使用工具打印出的绝对 URL;直接使用解码后的路径会导致 404 错误。
  • 横幅提示“临时服务器运行 / 可能会变慢”会被解析器自动跳过;请设置 120 秒的超时时间。
  • 如果主站点宕机,备用镜像站点:lemon-manuals.org.ua、lemon-manuals.gy、lemon.dogeware.me —— 可通过设置环境变量 LEMON_BASE=https://… 来覆盖。
  • Miniforge/pyenv 等 Python 发行版通常不包含系统 CA 证书包;lemon.py 会回退到 /etc/ssl/certs/ca-certificates.crt。

验证

python3 scripts/lemon.py selftest      # 期望输出:selftest OK

相关技能