一款接管 Chrome 新标签页的专注守护扩展:实时追踪所有网站的浏览 / 创作时间,对知乎做深度话题感知,并内置番茄专注计时、意图锚、自动切换检测、实时信号灯、认知负荷分析、专注期硬拦截、标签页任务整理与 AI 行为洞察,守护你的大脑免受碎片化分心。
所有数据完全保存在本地 IndexedDB,绝不上传任何服务器(仅当你主动点击「开始 AI 分析」时,会按你自己配置的接口发出一次请求)。
新标签页分为三个 Tab:时间管理 / 任务管理 / 状态管理,可左右滑动或点击切换。
| 模块 | 说明 |
|---|---|
| 🆕 新标签页仪表盘 | 接管 newtab,打开即见今日浏览 / 创作 / 数码娱乐 / 专注分数 / 专注时长五大指标 |
| 🔁 接管开关 | 右上角可一键关闭新标签页接管(仍能从工具栏图标弹窗打开),首次安装时弹窗征询 |
| 🪟 弹窗模式 | 点击工具栏图标也会弹出同一面板,并提示「在新标签页打开体验更完整」 |
| ⏱️ 通用计时 | 域名级浏览时间,按 Tab 切换 / 页面导航 / 窗口失焦 / 空闲(5 分钟)自动启停 |
| ✍️ 创作检测 | 焦点落在可编辑元素 + 持续键盘输入 = 创作时间,与浏览时间分开记录 |
| 🔍 知乎深度感知 | 问题页 / 话题页读取官方标签;首页 Feed 用双 Observer 测停留并动态归类;Draft.js 答题编辑器创作检测 |
| 📝 在线文档创作检测 | 针对 Google Docs / 飞书 / Lark / 语雀 / Notion 等 canvas 编辑器,按 all_frames 注入并按键节奏判定;腾讯文档 / 企业微信文档采用「域名级」聚焦判定 |
| 🏷️ 分类规则引擎 | 关键词匹配(标签优先 → 标题兜底),可在设置页自定义分类、颜色、超时阈值 |
| 🍅 专注计时器 | 番茄 25m / 深度 90m / 自定义,可勾选「完成后提醒」:归零时弹窗提醒(含提示音;后台标签页则发系统通知),完成自动记入专注会话;以墙钟终点为锚点,跨刷新 / 新标签页继续走动 |
| 模块 | 说明 |
|---|---|
| 📑 全窗口标签清单 | 读取所有窗口所有 Tab,按域名或类别归类、可展开收起、单击关闭 |
| 🕓 陈旧标签提醒 | 自动标记 > 12 小时未访问的标签 |
| 🔁 重复标签检测 | 按规范化 URL 找出重复打开的页面 |
| 🔎 搜索过滤 | 实时搜索标题 / 域名,配合「全部 / 陈旧 / 重复」分段筛选 |
| ⭐ 一键应用为 Chrome 标签组 | 把当前归类直接同步为浏览器原生标签组(按类别上色) |
| 模块 | 说明 |
|---|---|
| 🎯 意图锚 | 每轮番茄开始前弹窗写下一句具体目标(implementation intention),结束时弹窗结算「完成/未完成」,按天留存历史 |
| 🚦 实时信号灯 | 4 张自动信号卡:疲劳(idle + 累计活跃)、多任务(跨域名标签数)、专注一致(番茄期间是否切出工作域)、干扰命中(社交/视频/内容站访问次数) |
| 🔁 自动切换检测 | 后台监听 tabs.onActivated / windows.onFocusChanged,按 90s 窗口去重写入日志,状态管理页实时订阅 |
| 🧩 认知负荷 | 任务切换损耗、工作记忆压力、注意力恢复成本、前额叶疲劳实时量化(基于客观信号,无需手动打勾) |
| 💡 实时建议 | 根据信号灯与认知负荷自动生成 3~5 条可执行建议 |
| 模块 | 说明 |
|---|---|
| 🧱 分心域名遮罩 | 开启番茄 / 深度 / 自定义专注后,访问设置里维护的「分心域名」时注入 Shadow DOM 全屏遮罩,并强制 5 秒倒计时 |
| 🆘 三个出口 | 「我必须现在用」(倒计时归零后启用,本次会话内放行该域名)/「回到上一页」/「关闭此页」 |
| 📦 推荐清单 | 设置页提供一键填入常见分心域名(社交 / 视频 / 内容站) |
| ♻️ 实时联动 | 监听 chrome.storage 变化:停止计时器或移出清单,遮罩立即消失;SPA 路由变化也会重新检查 |
| 模块 | 说明 |
|---|---|
| 📈 今日总览 | 浏览 vs 创作分布、网站排行 Top 10、分类时间占比、知乎话题排行 Top 15、创作详情 |
| 📅 近 7 天趋势 | 可切换指标(总时长 / 浏览 / 创作 / 专注 / 切换次数等)的柱图 |
| 🗓️ 本周周报 | KPI 卡片 + 易分心时段小时热力图 + 最分心域名 Top + 最长连续无中断段 Top 5 |
| 🤖 AI 行为洞察 | 选择窗口(今天 / 3 / 7 / 14 / 30 天),把本地行为指标压成紧凑 JSON 发给你配置的 OpenAI 兼容接口,生成 Markdown 报告(自动渲染 Mermaid 图表) |
- 前往 Releases 下载最新
brain-protector-vX.Y.Z.zip并解压 - 打开
chrome://extensions,开启右上角「开发者模式」 - 点击「加载已解压的扩展程序」,选择解压后的文件夹
- 打开任意新标签页,即见仪表盘
git clone https://github.com/orange90/brainprotectorplugin.git
cd brainprotectorplugin
python3 icons/gen_icons.py # 生成图标(首次)在 chrome://extensions 中「加载已解压的扩展程序」,直接选择项目根目录即可。
打开「设置 → AI 行为分析」,填写任意兼容 OpenAI Chat Completions 接口的服务:
- 接口地址:如
https://api.openai.com/v1/chat/completions、DeepSeek、Kimi、Qwen、Ollama、OneAPI 自部署… - API Key:仅保存在本地浏览器(带「显示 / 隐藏」按钮)
- 模型名称 / 温度 / 系统提示词:可选自定义
配置完成后在「完整报表 → AI 行为洞察」点击「开始 AI 分析」即可。不点击不联网,密钥只存在本地。
brain-protector-plugin/
├── manifest.json # MV3 配置
├── background.js # Service Worker:计时主逻辑 + 状态机 + 拦截调度
├── src/
│ ├── db.js # 共享 IndexedDB 数据层
│ ├── categorize.js # 分类规则引擎(共享)
│ └── ai-analyzer.js # AI 行为分析模块(指标聚合 + Prompt + API 调用)
├── content-scripts/
│ ├── content-general.js # 通用层:注入所有网站
│ ├── focus-block.js # 专注期硬拦截(Shadow DOM 全屏遮罩)
│ └── sites/
│ ├── zhihu.js # 知乎深度感知层
│ └── online-docs.js # 在线文档创作检测(Docs / 飞书 / Notion / 腾讯文档 …)
├── newtab/ # 新标签页仪表盘(时间 / 任务 / 状态 三 Tab)
│ ├── newtab.html / .css / .js
│ ├── tasks.js # 标签页整理(任务管理 Tab)
│ └── newtab-guard.js # 接管守卫:根据开关决定显示面板或跳空白页
├── dashboard/ # 完整报表页(含周报 + AI 洞察)
├── options/ # 分类规则、分心域名、AI 接口、数据管理
├── rules/ # 默认分类与域名分组
├── vendor/ # 本地依赖(marked / mermaid,离线渲染 AI 报告)
├── icons/ # 图标 + 生成脚本
└── scripts/build.sh # 打包为 zip
打包:
bash scripts/build.sh # 产出 dist/brain-protector-v<version>.zip四层互不干扰:
- 新标签页 Dashboard / 工具栏 Popup — 从 IndexedDB 读取并渲染今日数据 + 专注工具 + 标签整理 + 状态信号
- 通用层(所有网站)— 域名级计时、创作状态检测
- 深度感知层(特定网站,插件式)— 知乎话题标签、Feed 卡片、答题编辑器;在线文档(Docs / 飞书 / 语雀 / Notion / 腾讯文档)的创作检测
- 专注拦截层(focus-block.js)— 专注会话期间对分心域名注入 Shadow DOM 全屏遮罩
时间分为三种互斥状态:浏览(页面激活未创作)、创作(持续键盘输入)、空闲(离开 ≥5 分钟,不计入)。同一页面内浏览段与创作段作为独立条目分开存储。
{
id, url, title, domain, site_group, category,
tags: [], content_type: "question|topic|article|feed|page",
time_type: "browsing|creating",
start_at, duration_seconds, source: "deep|general", day
}- 仅申请
tabs、storage、idle、alarms、tabGroups、notifications权限与<all_urls>,用于读取页面标题/标签做计时、在专注结束时发出提醒、将标签整理应用为原生标签组 - 所有记录写入本地 IndexedDB,可在设置页一键导出或清空
- 默认无任何网络请求、无遥测、无服务器
- 唯一一处可选联网:当你手动点击「开始 AI 分析」时,扩展会向你在设置中自行配置的 OpenAI 兼容接口发送一次行为指标摘要;不配置则该功能完全不可用
更新 manifest.json 的 version,提交后打 tag:
git tag v1.0.0 && git push origin v1.0.0.github/workflows/release.yml 会自动打包并创建带 zip 附件的 GitHub Release。