Skip to content
firevenusPublic

About

标签收拢 · 收藏整理 · 待看 · 浏览统计 —— 四合一浏览器扩展 | All-in-one MV3 extension: tab session manager, bookmark organizer, read-later list & browsing time tracker. Local-first, no account, no ads.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Repository files navigation

TabPocket · 页袋

Release License Manifest Local-first

把网页收进口袋,需要时再掏出来。 标签收拢 · 收藏整理 · 待看 · 浏览统计 —— 一个浏览器扩展搞定。 Manifest V3 · 数据 100% 本地 · 无需账号 · 开源免费 · 中英双语


它能做什么

🗂️ 标签收拢(OneTab 式)

  • 一键把当前窗口所有标签收拢成会话,还你一个干净的浏览器
  • 会话自动命名(时间 + 标签数),随时单条/批量恢复
  • 展开会话看清单个标签,点一下就单独打开,不用整批恢复
  • 双击即可重命名,重启浏览器数据不丢

⭐ 收藏 + 一键整理(Raindrop 式)

  • 一键收藏当前页 / 右键菜单收藏
  • 标题、网址、标签实时搜索,标签筛选
  • 整理浏览器收藏:一键导入浏览器原生收藏 → 自动分类(开发 / 金融财经 / 视频 / 购物 / 新闻…)→ 访问频率最高的网站自动标记「常用」
  • 导出 / 导入 JSON 备份,防清理工具误删

📌 待看(稍后阅读)

  • 遇到想看的先「加入待看」丢进口袋,不打断当前节奏
  • 无聊 / 没方向时,点一下「待看」分类慢慢翻
  • 看完一键移出,收藏本身保留

🔍 收藏体检(新增)

  • 一键扫描浏览器全部原生书签,对照历史记录统计每个收藏页在近 30 天 / 90 天 / 1 年内被打开了多少次
  • 按访问频次排行,直接看出「收藏了但一年没碰过」的有哪些
  • 按页面 / 按网站两种视角,可按访问次数、最近访问、收藏时间排序,支持搜索和「有访问 / 没访问」筛选
  • 每条可单独打开或从浏览器书签里删除(会二次确认),支持导出 CSV 清单
  • 扫描结果本地缓存,重开页面秒出,不必每次重扫

📊 浏览统计(时间追踪式)

  • 后台每 60 秒结算一次停留时长,切换标签 / 窗口时即时结算,切到别的应用自动停表
  • 空闲超过 60 秒、锁屏、非 http(s) 页面不计入,不会把挂机时间刷进去
  • 弹窗概览:累计 / 日均 / 活跃站点 / 常去站点 Top 5
  • 完整报表页:日历热力图 + 域名排行 Top 12 + 24 小时分布
  • 排除域名名单:不想被统计的站点(支持子域匹配)一键排除
  • 数据存 IndexedDB,按「日期 + 小时 + 域名」聚合,不会随使用时间膨胀失控

更细的时间分析(站点分组、用途分类、页面级排行、专注度、每日限额)规划见 ROADMAP.md 的 M7。

数据 100% 存在本地(chrome.storage / IndexedDB),不上传任何服务器,没有账号,没有广告。

安装

直接下载(最快,无需 Node.js)

  1. 到 Releases 下载最新的 TabPocket-v*.zip 并解压
  2. Edge / Chrome 打开 edge://extensions(或 chrome://extensions)
  3. 开启左下角「开发人员模式」
  4. 点「加载解压缩的扩展」,选择解压出来的那个文件夹(里面直接就是 manifest.json,不要再往下点一层)
  5. 点工具栏 TabPocket 图标开始使用

从源码构建

npm install
npm run build     # 构建 → dist/chrome-mv3

然后在扩展管理页加载 dist/chrome-mv3 目录。

正式上架 Edge/Chrome 商店后可直接一键安装(见 Roadmap)。

开发

npm install        # 安装依赖
npm run build      # 构建 → dist/chrome-mv3
npm run compile    # TypeScript 类型检查

技术栈

React 19 · TypeScript · Vite 8 · WXT(浏览器 API 封装)· chrome.storage · IndexedDB · ECharts 6

项目结构

manifest.json                     # MV3 清单(手写维护)
vite.config.mjs                   # 手动 Vite 构建(四个入口:popup / stats / audit / background)
src/
  types.ts                        # 核心类型与消息协议
  utils/
    sessions.ts                   # 会话收拢 / 恢复 / 管理
    bookmarks.ts                  # 收藏 CRUD / 搜索 / 备份 / 一键整理 / 待看
    bookmarkAudit.ts              # 收藏体检:书签扁平化 + 历史访问计数 + 域名聚合 + CSV
    classify.ts                   # 域名自动分类规则
    stats.ts                      # 统计:写入聚合 / 区间汇总 / 设置 / 格式化
    idb.ts                        # IndexedDB 极简封装(零依赖)
  i18n/
    messages.ts                 # zh / en 文案词典(英文单复数用 `单数|复数`)
    core.ts                     # 无 React 的 i18n 内核:t / locale / 语言持久化
    index.ts                    # useI18n() 钩子(订阅语言变化)
    tags.ts                     # 存储标签(待看/常用/分类)→ 当前语言显示名
entrypoints/
  background.ts                   # Service Worker:心跳计时 + 右键菜单 + 消息路由
  popup/                          # 弹出面板(收拢 / 收藏 / 统计 / 关于 四页签)
    App.tsx                       # 页签外壳
    components/
      SessionsView.tsx            # 收拢页(含会话展开、单标签打开)
      BookmarksView.tsx           # 收藏页(含待看、整理浏览器收藏、收藏体检入口、备份)
      StatsView.tsx               # 统计概览页(KPI + Top 5 + 打开报表)
      AboutView.tsx               # 关于页(版本 / 开源地址 / 反馈入口)
  stats/                          # 独立报表页(新标签打开,ECharts 只在此加载)
    StatsApp.tsx                  # 日历热力图 / 域名排行 / 24 小时分布 / 排除域名
  audit/                          # 独立收藏体检页(新标签打开)
    AuditApp.tsx                  # 区间访问频次排行 / 按页面或按网站 / 筛选排序 / CSV
_locales/                         # 扩展名称/简介的多语言(manifest 用 __MSG_*__)
assets/icon.svg                   # 图标源文件(128×128 画布,改图标只改这一个文件)
public/icon/                      # 图标产物:16/32/48/96/128.png(由脚本生成,勿手改)
docs/privacy.html                 # 隐私政策页(商店提交需要 URL)
scripts/
  build-icons.py                  # 从 assets/icon.svg 生成各尺寸 PNG(Edge 无头渲染)
  make-screenshots.py             # 把随手截的图合成商店要求的 1280×800(去 alpha 通道)
  selftest-audit.mjs              # 收藏体检逻辑自测(mock 浏览器 API,node 直接跑)
  selftest-background.mjs         # 计时引擎自测(mock chrome + 假 IndexedDB + 可控时钟)

Roadmap

  • M0 项目骨架
  • M1 标签收拢(含会话展开、单标签打开)
  • M2 收藏 + 一键整理 + 备份 + 待看
  • 关于页(版本号 / GitHub 仓库 / 反馈入口)
  • M3 浏览统计(停留时长心跳 + 日历热力图 + 域名排行 + 24 小时分布 + 排除域名)
  • M3.5 收藏体检(书签访问频次排行 · 按页面/网站 · CSV 导出)
  • 中英双语(跟随浏览器语言,可在关于页切换)
  • M4 打磨:设置页(含每日自动收拢、统计开关)、会话数据纳入备份、深色主题(跟随系统 + 手动切换,ECharts 需单独配深色色板)、Edge/Chrome 商店上架
  • M5 整理增强:URL 层级分组、死链检测、按时间线分组
  • M6 可选:Google Drive 同步(本地优先 + 可选云同步,无自家服务器)
  • M7 时间统计(完整设计见 ROADMAP.md)
    • M7.1 域名合并规则(mail.google.com 自动归入 Google,支持自定义「工作」「娱乐」合并组)· 站点 favicon(走浏览器内置 _favicon/,不请求第三方,失败降级首字母色块)· 日/周/月区间与环比 · 数据保留期与导出
    • M7.2 按用途分类聚合 · 页面级耗时长尾 · 专注度指标(单次停留 / 切换频次 / 碎片化)
    • M7.3 单日时间线 · 每日限额与超时提醒(可选权限,默认关闭)

M5/M6 的功能思路借鉴自社区同类项目(jmu/tabnest、nayanswami/tabnest、OffBy1-tech/TabNest)。 M7 的域名合并规则、favicon,以及 M4 的深色主题,参考了 Time Tracker 等同类时间统计扩展的做法。 M7 的数据模型、迁移方案、统计口径、验收标准与排期见 ROADMAP.md。

License

MIT © 2026 Enki Yan (firevenus)

About

标签收拢 · 收藏整理 · 待看 · 浏览统计 —— 四合一浏览器扩展 | All-in-one MV3 extension: tab session manager, bookmark organizer, read-later list & browsing time tracker. Local-first, no account, no ads.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages