Chrome 扩展 · v1.0.0 · 一家三口的小屏障

守住孩子的注意力,
不打扰你们的关系

1060 个内置网站精选黑名单 · 时段锁 · 关键词拦截 · 父母 PIN 守门 · 零数据外传

  • 0 npm 依赖
  • 0 LLM 推理
  • 0 outbound 请求
  • 72 KB zip 包

那一秒发生了什么

孩子点游戏的瞬间, KidGuard 出现

漫画分镜: 盾牌 mascot 挡住孩子点游戏图标的画面

不是冷冰冰的 403 页面 - 是一个温柔的盾牌站在那里, 配一句励志语 "今天的努力, 是明天的礼物"。 孩子被拦下时不会被羞辱, 父母也不用解释。

开箱即拦的清单

1060 个域名 · 7 类自动屏蔽

来自一份手工筛选的中文互联网清单 - 大陆游戏 / 抽卡 / 短视频 / 赌博 / VPN, 都收齐了。

200

games / 游戏类

主流端游 / 页游 / 手游官网及登录入口

220

gambling / 赌博类

境外博彩 / 体彩外围 / 链上赌站

信息图: 1060 大数字 + 7 类图标围绕, 绘本风格

210

adult / 成人内容

成人站 / 暗示性广告引流 / 软色情

150

douyin_like / 短视频流

抖音 / 快手 / 视频号 H5 等沉浸流

130

social_short_video

小红书 / B 站短视频 / 推荐流

100+50

gacha / vpn_proxy

抽卡充值小游戏 + 翻墙代理域名

能力清单

v1 已交付的 6 件事

每一项都来自一份 18 条 REQ 的需求规格书, 不是营销话术。

1060 个域名 · 7 类自动拦截

开箱即拦 games / adult / social_short_video / douyin_like / gambling / gacha_recharge / vpn_proxy 七大类。父母不用自己拼名单。

搜索关键词拦截

覆盖 Google · Baidu · Bing 三大搜索引擎, 在 URL 层就拦掉敏感词查询, 孩子看不到搜索结果页。

时段锁 · 支持作息

按星期 + 起止时间设规则, 跨午夜 (如 22:00 - 06:00) 正确处理, 60 秒内启用 / 解除, 不依赖前台进程。

PIN 守门 · 只有家长能改

4-6 位 PIN + SHA256 + salt, 不存原文; 5 次错锁 5 分钟, 10 次错锁 1 小时; 退出问题找回。孩子打不开管理后台。

7 天本地报表 · 零外传

popup 显示 7 天 TOP10 拦截 / 访问榜单, 数据全部 chrome.storage.local, 无任何上传, 7 天滚动自动清理。

7 步 onboarding · 强制 PIN

首次安装自动跳引导页: 介绍 → PIN → 确认 → 退出问题 → 选分类 → 高级 → 完成。普通家长 3 分钟全程走完。

首次安装就是首次理解

7 步引导, 一页一页, 不慌不乱

没有 PIN 就没有保护; 我们把 PIN 设置做成不可跳过的第一步。每一步都有手绘小图配画外音, 像翻一本说明绘本。

7 步漫画分镜横向排, 日式 storyboard panels: 介绍 设PIN 确认 退出问题 选分类 高级 完成
数据流被守护的漫画: 小屋 + 屏障 + 拦回的爪子, 暖色调

宪法级承诺

零数据外传, 是承诺也是底线

不监控. 不上报. 不画像. 这不是营销话术 - 是写进 SOUL.md 的硬约束, 任何违反都是 Bug。

  • chrome.storage.local 全本地 - 规则 / 报表 / PIN 哈希全部本机, 浏览器卸载即清。
  • PIN 用 SHA256 + salt - 不存原文, 不可猜, 5 次错冷却 30 秒。
  • 无 telemetry · 无 cloud sync - 任何 fetch / XHR / WebSocket 到外部域名都被禁止。
  • Network panel 永远是空的 - 唯一的 fetch 是 chrome.runtime.getURL 读本地 quotes.json。
"我承诺三件事: 零外传, 零残留, PIN 不可猜。违反任何一件都属于 Bug。" - KidGuard SOUL.md

3 分钟装好

安装 4 步

v1 走 unpacked 安装 - 不上 Chrome Web Store, 没有审核延迟, 也没有隐私政策合规成本。

  1. 下载源码

    从 GitHub clone 或下载 zip:

    git clone https://github.com/lukeliu95/kid-guard.git
    cd kid-guard
  2. 构建 dist

    跑 build 脚本, 输出 extension/dist/:

    bash extension/build.sh
  3. 加载到 Chrome

    打开 chrome://extensions, 右上角开"开发者模式", 点"加载已解压的扩展程序", 选 extension/dist/ 目录。

  4. 完成 onboarding

    扩展自动跳到引导页 - 设 PIN + 退出问题 + 选拦截分类。3 分钟走完, 立刻生效。

常见问题

FAQ

为什么不上 Chrome Web Store?

v1 是家庭自用形态, 上 store 需要写隐私政策 / 走商店审核 / 开发者账号 5 美元一次。我们想优先把功能做扎实再考虑分发渠道。源码完全开放, 任何家长可以自己 load unpacked。

孩子能绕过吗?

能 - chrome://extensions 页面 MV3 不允许扩展阻止自己被禁用, 这是浏览器机制限制。但孩子要绕过得在父母不在时禁用扩展, 一旦再打开就恢复; 而且 PIN 守住了"改名单 / 关分类", 比 BlockSite 这类只锁卸载的多走一层。这是技术能做的边界, 我们不假装能做更多。

支持 Edge / Firefox 吗?

v1 仅支持 Chrome (≥ 113)。Edge 用 Chromium 内核理论可装但未验证。Firefox 的 declarativeNetRequest 实现差异较大, v2 评估再说。

数据真的没有上传?

真的。打开 Chrome DevTools → Network 面板, 任意场景下都不会看到 outbound 请求。源码里 grep fetch / XMLHttpRequest / WebSocket 唯一一处是 chrome.runtime.getURL('data/quotes.json') 读本地励志语文件。

我忘了 PIN 怎么办?

PIN 锁屏页有"忘了 PIN"链接, 输入 onboarding 时填的退出问题答案 (例: "妈妈第一辆车的牌子") 就能重设。答错 3 次锁 1 小时。如果连退出问题答案也忘了, 只能在 chrome://extensions 移除扩展再重装 - 历史记录会清空, 这是设计上的代价。

怎么加新的屏蔽网站?

打开扩展 popup → "进入 options" → 输 PIN → "黑名单"标签 → 添加域名。子域名通配自动包含 (如填 example.com 同时拦 m.example.com / www.example.com)。改完立即生效, 不用重启浏览器。

为什么落地页是漫画风但产品本身不是?

因为这是营销面 vs 产品面的两套语言。落地页要让父母三秒钟感到温暖, 知道这不是冷冰冰的监控工具; 产品本身 (popup / options) 是冷静的工具调, 让父母 30 秒能改完一项设置。两套节奏服务两类瞬间, 不冲突。

未来会加哪些功能?

Phase D 候选清单: 时间预算 (每天某分类 N 分钟) / 重定向到学习资源 / 卸载报警 / 跨设备同步 / Edge 支持 / Web Store 上架。具体看 docs/requirements-spec.md § 9 Future Considerations。家长说"GEI 产品更新"就会重进 Phase D。