Chrome 扩展(Manifest V3),根据自定义 URL 规则自动将标签页归入分组。
- 自动分组:标签页加载完成时自动匹配规则并归组,无需手动操作
- 一键整理:点击扩展图标,可对当前所有已打开的标签页批量整理
- 三种匹配方式:URL 前缀、URL 包含、正则表达式
- 规则优先级:规则列表顺序即优先级,首条匹配生效
- 分组复用:同名分组已存在时直接追加,不重复创建
- 拖拽排序:在设置页拖拽行可调整规则优先级
- 启用/禁用:可临时关闭某条规则而不删除
- 导入/导出:规则以 JSON 格式导出备份,随时还原或迁移
- 分组排序:标签组按规则优先级自动排列(数字越大越靠左),相同优先级按组名字母序排列,防抖 300ms
- 自动域名分组:未命中任何规则的标签页按主域名自动归组,颜色由域名哈希决定,可在设置页关闭
- 打开 Chrome,进入
chrome://extensions/ - 开启右上角「开发者模式」
- 点击「加载已解压的扩展程序」,选择本项目目录
- 扩展图标出现在工具栏,安装完成
💡 推荐开启垂直标签页:进入
chrome://flags/#sidebar-tabs(或 Chrome 设置 → 外观 → 标签栏),开启垂直标签栏后,分组名称和标签标题能完整展示,体验更佳。水平标签栏同样可用,但标签较多时组名容易被截断。
点击扩展图标打开弹出窗口,可以:
- 查看当前窗口的标签页统计(总数 / 已匹配 / 已分组)
- 点击「整理标签页」对所有已打开标签页立即应用规则
- 点击「管理规则」跳转到设置页
右键扩展图标 → 「选项」,或在弹出窗口点击「管理规则」进入。
| 操作 | 说明 |
|---|---|
| 添加规则 | 填写名称、匹配类型、模式、颜色 |
| 编辑规则 | 点击 ✏️ 按钮修改已有规则 |
| 删除规则 | 点击 🗑 按钮,确认后删除 |
| 调整规则优先级 | 拖拽左侧 ⠿ 手柄重新排序 |
| 设置 Group 优先级 | 添加/编辑规则时设置优先级数值(-100~100),控制标签组在标签栏中的排列位置 |
| 启用/禁用 | 拨动开关临时停用规则 |
| 导出 | 将当前规则保存为 JSON 文件 |
| 导入 | 从 JSON 文件还原规则(会覆盖当前规则) |
| 自动域名分组 | 页面顶部开关,控制未命中规则的标签页是否按域名自动分组 |
| 类型 | 说明 | 示例 |
|---|---|---|
| URL 前缀 | URL 以指定字符串开头 | https://github.com/ |
| URL 包含 | URL 中包含指定字符串 | jira |
| 正则表达式 | URL 匹配正则 | ^https?://\d+\.\d+\.\d+\.\d+:\d+ |
首次安装后自动加载以下规则(可在设置页修改):
| 名称 | 颜色 | 类型 | 匹配模式 | 优先级 |
|---|---|---|---|---|
| GitHub | 紫色 | 前缀 | https://github.com/ |
0 |
| Google Docs | 蓝色 | 前缀 | https://docs.google.com/ |
0 |
| Stack Overflow | 橙色 | 前缀 | https://stackoverflow.com/ |
0 |
| Localhost | 红色 | 正则 | ^https?://localhost(:\d+)?/ |
0 |
如果你想替换内置默认规则(比如添加公司内部站点),在项目根目录创建 rules.local.json:
[
{
"name": "内部 GitLab",
"color": "orange",
"type": "prefix",
"pattern": "https://git.example.com/",
"enabled": true,
"priority": 0
},
{
"name": "Jira",
"color": "blue",
"type": "prefix",
"pattern": "https://jira.example.com/",
"enabled": true,
"priority": 0
}
]该文件已被 .gitignore 忽略,不会提交到仓库。扩展首次加载时会优先读取此文件作为默认规则,找不到则使用内置示例。
auto-tabs/
├── manifest.json # MV3 扩展清单
├── background.js # Service Worker,监听标签页事件
├── content.js # 标签标题增强(注入页面)
├── utils/
│ └── rules.js # 规则加载/保存/匹配逻辑(共享模块)
├── popup.html/js/css # 弹出窗口
├── options.html/js/css # 规则管理设置页
├── icons/ # 16/48/128px 扩展图标
└── rules.local.json # 可选:自定义预置规则(不提交)
| 权限 | 用途 |
|---|---|
tabs |
读取标签页 URL,监听加载事件 |
tabGroups |
创建、查询、更新标签组 |
storage |
使用 chrome.storage.sync 持久化规则 |
scripting |
动态注入 content script 增强标签标题 |