Skip to content

kalinplus/auto-filler

Repository files navigation

秒填鸭

English | 中文

一款基于 LLM 语义匹配的 Chrome 表单自动填充扩展。支持文本字段填充和 PDF 证明材料按需合成,所有数据本地存储,无需注册账号。

Popup Filling Result

功能

智能表单填充

  • 扫描页面表单字段(label、placeholder、aria-label、name、id)
  • 通过 LLM 语义匹配,将用户存储的个人信息自动填入对应字段
  • 支持 React 等框架页面的表单(使用原生 setter 触发变更)
  • 匹配结果展示置信度,用户可逐项确认后再填充

证明材料管理

  • 支持上传图片(JPG/PNG/WebP)和 PDF 文件
  • 按分类管理材料(身份证明、学历证明、资格证书、个人照片等)
  • 支持预览、重命名、移动分类、删除

PDF 合成

  • 从证明材料中选取图片和 PDF,拖拽排序后合并为一个 PDF
  • 支持本地上传新文件(自动存入证明材料)
  • 图片自动缩放适配 A4 页面,居中留白
  • 合成结果保存到证明材料,随时下载
  • 纯浏览器端操作,无需服务端

API 配置

  • 支持任何 OpenAI 兼容的 API(国内厂商、聚合平台、第三方等)
  • 预置主流供应商配置,填入 API Key 即可使用
  • 也支持自定义 Base URL 和模型名称

安装

从 Release 安装(推荐)

前往 Releases 下载对应压缩包:

文件 适用浏览器
auto-filler-chrome.zip Chrome / Edge / Brave 等 Chromium 内核浏览器
auto-filler-firefox.zip Firefox

Chrome / Edge:

  1. 打开 chrome://extensions/(Edge 为 edge://extensions/
  2. 开启右上角「开发者模式」
  3. 将下载的 zip 文件直接拖入页面

Firefox:

  1. 打开 about:debugging#/runtime/this-firefox
  2. 点击「加载临时附加组件」
  3. 选择下载的 zip 文件(Firefox 会将扩展标记为临时,重启后需重新加载)

从源码构建

npm install
npm run build            # Chrome
npm run build:firefox    # Firefox

构建产物在 .output/ 目录,可在浏览器扩展管理页面以「加载已解压的扩展程序」方式加载。

打包

npm run zip            # Chrome
npm run zip:firefox    # Firefox

产物在 .output/ 目录,可直接上传到 Chrome Web Store 或 GitHub Releases。

使用方式

  1. 配置 API:点击扩展图标 → 设置 → 填写 API 地址和 Key
  2. 录入信息:在设置页填写个人常用信息(姓名、手机、邮箱、地址等),支持自定义字段
  3. 上传材料:在证书材料页上传证明文件,按分类整理
  4. 填充表单:浏览目标网页 → 点击扩展图标 → 扫描 → 确认匹配 → 填充
  5. 合成 PDF:在 PDF 汇总页选取材料 → 排序 → 合成 → 在证书材料中下载

技术栈

  • 框架: WXT (基于 Vite 的浏览器扩展框架)
  • 语言: TypeScript
  • UI: 原生 HTML/CSS,无框架
  • PDF: pdf-lib
  • 拼音: pinyin-pro
  • 数据存储: IndexedDB + chrome.storage.local

项目结构

├── entrypoints/
│   ├── background.ts        # Service Worker:消息路由、LLM 调用
│   ├── content.ts           # 内容脚本:扫描 DOM、填充表单
│   ├── popup/               # 弹出窗口:扫描→确认→填充
│   └── options/             # 选项页:信息管理、材料管理、PDF 合成、设置
├── utils/
│   ├── db.ts                # IndexedDB 封装
│   ├── storage.ts           # chrome.storage 封装
│   ├── matcher.ts           # LLM 语义匹配
│   ├── pdf-merge.ts         # PDF 合成逻辑
│   └── providers.ts         # API 供应商预设
└── public/icons/            # 静态图标资源

开发

npm run dev              # Chrome 开发模式(HMR)
npm run dev:firefox      # Firefox 开发模式
npm run compile          # 类型检查

TODO

  • 个人信息导入/导出:支持将个人信息导出为 JSON 文件,方便备份和多设备迁移
  • 云同步:通过 WebDAV 等协议同步个人信息和证明材料,实现多设备数据互通
  • 自动录入个人信息:扫描页面表单后,将未被匹配的字段直接添加到个人信息库,免去逐条手动录入
  • 材料可视化拖拽上传:提供悬浮窗或弹窗界面,支持手动拖拽材料到页面文件上传区域,解决需要上传证明材料的场景

License

Licensed under the Apache License 2.0.