What it does
- Grants access to the
chrome.tabGroupsAPI. - Allows an extension to:
- Query for existing tab groups.
- Create new tab groups.
- Update the properties of a group (like its title and color).
- Move tab groups within a window.
- Works in conjunction with the
chrome.tabsAPI, which is used to move tabs into and out of groups.
When to use it
This permission is essential for any extension that acts as a "tab manager" or "session manager" with support for modern tab grouping features.
Examples:
- An extension that automatically groups tabs by domain.
- A "workspace" extension that saves and restores windows with their tab groups intact.
- A productivity tool that collapses tab groups when they are not in use.
Manifest Declaration
{
"name": "My Tab Group Manager",
"version": "1.0",
"manifest_version": 3,
"permissions": [
"tabGroups",
"tabs"
]
}Note: The tabs permission is almost always required alongside tabGroups to do anything useful.
Security & Privacy
Why is it not risky?
This permission lets an extension organize your tabs into groups, including naming and coloring them. It is used by tab manager extensions to help you stay organized.
This is a safe permission. It does not give the extension any ability to see the content of your tabs or your browsing history. While a poorly made extension could be annoying by messing up your tab organization, it cannot access your personal data.
API Usage Example
This example finds all tabs from developer.chrome.com and moves them into a new, blue-colored group named "Chrome Dev".
// background.js
chrome.action.onClicked.addListener(groupDevTabs);
async function groupDevTabs() {
try {
// Find all the relevant tabs
const tabs = await chrome.tabs.query({ url: "https://developer.chrome.com/*" });
if (tabs.length === 0) {
console.log("No dev tabs found to group.");
return;
}
const tabIds = tabs.map(tab => tab.id);
// Group the tabs
const groupId = await chrome.tabs.group({ tabIds: tabIds });
console.log(`Created group with ID: ${groupId}`);
// Update the group's appearance
await chrome.tabGroups.update(groupId, {
title: "Chrome Dev",
color: "blue"
});
console.log("Updated group properties.");
} catch (error) {
console.error("Failed to group tabs:", error);
}
}Extensions with the tabGroups permission
Here are some popular browser extensions that use the "tabGroups" permission. To explore more, try our Advanced search.