一个 Chrome 扩展(MV3),按域名分组展示所有标签页,支持批量关闭和挂起以释放内存。
- 📑 按域名自动分组 — 同一站点的标签页聚在一起,组内按 tab 顺序排列
- 🏷️ 按类型分组 — 顶部「按域名 | 按类型」一键切换;固定 10 类(技术/新闻/社交/视频/搜索/办公/AI 工具/购物/金融/其他),按标题/URL 关键词自动分类(中英双语强词,纯本地),关键词未命中再用域名表兜底,冷门站点可手动自定义归类
- 🔍 实时搜索 — 匹配标题、URL 或域名,搜索时批量操作只作用于可见 tab;80ms debounce + 本地缓存,大 tab 数下不卡
- 💤 批量挂起 — 一键
chrome.tabs.discard释放内存,挂起的 tab 仍保留在分组中并支持一键恢复 - ❌ 批量关闭 — 勾选后一次性关闭多个标签页
- 🗂️ 分组级批量 — 每个分组头有"挂起整组"/"关闭整组"按钮,一键清掉某个域名下的所有 tab
- 🖱️ 行内快捷操作 — hover 单条 tab 直接出现"挂起/关闭"按钮,单条操作无需先勾选再到底部栏点
- 🕘 最近关闭 — 面板顶部展示最近 10 条关闭的 tab / 窗口,一键恢复
- 🔄 实时同步 — 打开/关闭/切换/挂起等事件触发自动刷新(300ms 节流)
- 💾 状态持久化 — 折叠状态通过
chrome.storage.local跨会话保留 - 🎨 favicon 兜底 — 自带 favicon → Google s2 → 字母占位,无网络也好看
- 🔢 勾选反馈 — 分组头实时显示
已选 / 总数,如3 / 12 - 🪺 智能折叠 — 单 tab 分组默认折叠,减少视觉噪音;用户手动展开过的会跨会话记住
- 克隆仓库:
git clone https://github.com/fangxiao/tabsmanager.git - 打开 Chrome,访问
chrome://extensions - 打开右上角"开发者模式"
- 点击"加载已解压的扩展程序",选择项目根目录(包含
manifest.json的目录) - 点击工具栏的扩展图标即可打开侧边栏
| 权限 | 用途 |
|---|---|
tabs |
读取/查询/更新/关闭/挂起标签页 |
sidePanel |
打开 Chrome 侧边栏显示面板 |
storage |
持久化折叠状态(跨会话保留用户选择) |
sessions |
读取最近关闭的 tab/窗口,支持一键恢复 |
扩展不收集任何用户数据,所有处理都在本地完成。
.
├── manifest.json # MV3 配置
├── background.js # Service Worker:事件监听 + 长连接广播
├── shared/
│ ├── domain.js # 域名解析/分组/可管理性判断(双端共用)
│ └── categories.js # 按类型分类:内置规则表 + 分类器(面板使用)
├── panel/
│ ├── panel.html # 侧边栏 UI
│ ├── panel.css # 样式
│ └── panel.js # 交互逻辑
├── icons/ # 16/48/128 三套尺寸
├── LICENSE
└── README.md
直接修改源码后,在 chrome://extensions 点击扩展卡片上的 🔄 刷新按钮即可重新加载。无构建步骤,纯静态资源。