Skip to content

OuterCloud/auto-tabs

Repository files navigation

Auto Tab Groups

Chrome 扩展(Manifest V3),根据自定义 URL 规则自动将标签页归入分组。

功能特性

  • 自动分组:标签页加载完成时自动匹配规则并归组,无需手动操作
  • 一键整理:点击扩展图标,可对当前所有已打开的标签页批量整理
  • 三种匹配方式:URL 前缀、URL 包含、正则表达式
  • 规则优先级:规则列表顺序即优先级,首条匹配生效
  • 分组复用:同名分组已存在时直接追加,不重复创建
  • 拖拽排序:在设置页拖拽行可调整规则优先级
  • 启用/禁用:可临时关闭某条规则而不删除
  • 导入/导出:规则以 JSON 格式导出备份,随时还原或迁移
  • 分组排序:标签组按规则优先级自动排列(数字越大越靠左),相同优先级按组名字母序排列,防抖 300ms
  • 自动域名分组:未命中任何规则的标签页按主域名自动归组,颜色由域名哈希决定,可在设置页关闭

安装

  1. 打开 Chrome,进入 chrome://extensions/
  2. 开启右上角「开发者模式」
  3. 点击「加载已解压的扩展程序」,选择本项目目录
  4. 扩展图标出现在工具栏,安装完成

💡 推荐开启垂直标签页:进入 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 增强标签标题

About

Chrome extension that auto-groups tabs by custom URL rules. Supports prefix, contains & regex matching. Zero dependencies, pure Vanilla JS.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors