Skip to content

About

Local-first AI bookmark manager and customizable Chrome new tab extension

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

 
 

Repository files navigation

SmartAINewTab 图标

SmartAINewTab

一个本地优先、AI 可选、不会擅自重排原生书签的 Chrome 新标签页。

CI Apache License 2.0 Chrome Manifest V3

官方网站 · 源代码仓库 · Chrome Web Store 审核中

SmartAINewTab 使用 Chrome 原生书签作为数据源,在新标签页中提供分类、分组、图标网格、 统一搜索、AI 整理和书签体检。没有 AI Key、没有云账户时,书签展示、管理和本地搜索仍然 可以正常使用。

SmartAINewTab 首页

功能亮点

  • 不破坏原生书签:分类、分组和个性排序保存在独立的 sidecar 布局中,拖拽操作不会 擅自移动 Chrome 原生书签文件夹。
  • 统一搜索入口:支持 Google、百度、Bing、DuckDuckGo 网页搜索,以及跨全部书签的 本地搜索和自然语言检索。
  • 可选 AI 整理:通过用户自备的 API Key(BYOK)生成标签、摘要和分类建议;任务支持 查看进度、取消、重试,并可在 Manifest V3 service worker 重启后继续。
  • 完整书签管理:创建和编辑分类、分组、书签与标签,支持拖拽排序、右键菜单、当前页或 新标签页打开。
  • 书签体检:检测重复链接、失效链接、访问受限和跳转异常;支持打开验证、复检、忽略、 删除以及地址修复前预览。
  • 备份与恢复:支持本地 JSON 导入导出;可选云备份在浏览器端加密后再上传,服务端无法 解密书签内容。
  • 个性化新标签页:提供摄影背景、背景轮播、小组件、时间样式和右侧分类导航。
  • 多语言界面:支持简体中文、繁體中文、English、日本語、한국어以及跟随浏览器。
全部书签搜索 AI 标签与编辑
全部书签搜索 AI 标签与编辑
自然语言命令 书签体检
自然语言命令 书签体检

隐私原则

SmartAINewTab 默认在本地处理和保存书签数据。联网功能由用户主动使用或明确开启,并按需 申请对应网站的可选访问权限。

  • 不内置任何 AI Provider API Key;API Key 只保存在本机,不进入本地导出或云备份。
  • 使用 AI 功能时,只向用户选择的 Provider 发送完成当前任务所需的书签元数据;不发送网页正文。
  • 不使用 content script,不注入用户访问的网页,也不申请 cookies 权限。
  • 页面元数据、favicon 和常规书签体检请求不携带登录 Cookie。
  • 云备份是可选功能,备份内容在浏览器中完成端到端加密;恢复密码不会上传,服务端无法代为找回。
  • 不出售用户数据,不接入广告或用户画像 SDK。

完整的数据范围、第三方处理者和删除方式请阅读隐私政策。

从源码安装

环境要求

  • Chrome 或其他兼容 Manifest V3 的 Chromium 浏览器
  • Node.js 22 或更高版本
  • npm

构建扩展

git clone https://github.com/zuogl/SmartAINewTab.git
cd SmartAINewTab
npm ci
npm run build

构建完成后:

  1. 打开 chrome://extensions;
  2. 开启右上角的“开发者模式”;
  3. 点击“加载已解压的扩展程序”;
  4. 选择项目中的 .output/chrome-mv3 目录;
  5. 打开一个新标签页。

从源码构建的扩展与已经提交审核的 Chrome Web Store 版本是独立安装实例,本地数据不会自动共享。商店审核通过并公开上架前,请勿把源码安装视为商店安装。

本地开发

安装依赖后,可以选择普通浏览器预览或真实扩展环境:

# 快速预览界面,默认访问 http://localhost:5173
npm run dev

# 在 WXT 扩展开发环境中运行
npm run dev:extension

# 完整检查并生成固定开发 ID 的本地可加载版本
npm run release:local

版本分为两条相互独立的线:package.json 保存 Chrome Web Store 三段正式版本,例如 0.0.6;development-build.json 保存自动递增的开发构建号。本地发布 manifest 会显示 0.0.6.1 / 0.0.6-dev.1,但不会消耗或改写正式版本号。

日常开发包固定使用 ID akbemgeeppcdocpjimlkbhfoambjigej。如需验证生产 ID hdajgpnnncgdddpjbdggaochnbgpfngl 的 OAuth、来源白名单或回调地址,请从 Chrome Web Store Developer Dashboard 的 Package → View public key 复制公钥,保存到被 Git 忽略的 config/production-extension-public-key.txt,再运行:

npm run release:production-id

该命令会先由公钥计算并强制核对生产 ID,再把产物写入独立的 release/SmartAINewTab-production-id-qa-extension。请仅在不安装商店版的独立 Chrome Profile 中加载,避免测试代码接触正式扩展的本地数据。公钥可以用于 ID 校验;任何私钥、 签名密钥或 OAuth Secret 都不得放入项目。

提交改动前运行完整检查:

npm run check

该命令会检查公开仓库边界、背景素材、第三方许可证、版本配置、TypeScript、测试和 Chrome MV3 构建。 更多开发约定见贡献指南。

可选 AI Provider

AI 功能采用 BYOK 模式。用户可以在设置中选择预置 Provider,或填写兼容接口的 endpoint、 模型和自己的 API Key。项目不会在源码中提供共享密钥,也不会代理或转售模型额度。

没有配置 Provider 时,以下功能仍然可用:

  • 新标签页和原生书签管理;
  • 分类、分组、排序与手动标签;
  • 基于标题、URL、标签和分类的本地搜索;
  • 本地备份与恢复;
  • 不依赖 AI 的书签体检和个性化功能。

可选云同步

仓库中的 worker/ 提供基于 Cloudflare Workers、D1 和私有 R2 的自托管同步后端, 用于 Google OAuth、会话管理和加密备份的版本化存储。Worker 不接收 AI Provider API Key, 也无法解密用户备份。

部署前请阅读 Worker 说明。Google OAuth、Cloudflare 资源和生产环境允许列表 需要由部署者自行配置;克隆并构建扩展本身不会自动创建或启用云服务。

技术栈

  • WXT + React + TypeScript
  • Chrome Manifest V3、Bookmarks API、Storage API、Alarms API 和 Identity API
  • IndexedDB / Dexie
  • Vitest
  • 可选 Cloudflare Workers + D1 + R2

主要目录:

src/          扩展界面、领域模型和浏览器服务
worker/       可选的 Cloudflare 同步后端
docs/         架构、隐私、安全边界和资源归属文档
store-assets/ 商店展示素材及其可编辑源文件
scripts/      构建、检查和公开发布辅助脚本

文档

参与贡献

Issue 和 Pull Request 都欢迎。提交前请先阅读贡献指南,并确保示例、日志和 截图中不包含 API Key、Token、Cookie、恢复密码、邮箱或私人书签内容。

安全漏洞请遵循安全政策进行私密报告,不要在公开 Issue 中披露可利用细节。

许可证

项目源码采用 Apache License 2.0。第三方依赖、字体、图标和素材仍分别遵循其 原始许可证,详见 NOTICE、第三方许可证汇总和 归属说明。Apache-2.0 不授予项目名称、图标或其他商标权利。

About

Local-first AI bookmark manager and customizable Chrome new tab extension

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages