Skip to content

Interface: AssistantTabGroupAPI

Defined in: packages/sdk/src/context/index.ts:133

Runtime control over the native Chrome tab group holding the skill's tab(s), available as ctx.assistant.tabGroup (Assistant >= v11.140.0).

Grouping happens at skill start only if the skill's manifest.json declares the opt-in field, e.g. "tabGroup": {"title": "...", "color": "blue", "collapsed": false} (all fields optional). Tabs the skill opens later automatically join the group, and the group is always dissolved when the skill stops.

Both methods are fire-and-forget, best-effort setters — there are no getters. When the skill's tab was never grouped (no manifest opt-in, non-tab render target, or already ungrouped) they silently no-op.

Example

ts
// Reflect progress in the group title (emoji stands in for an icon)
await ctx.assistant.tabGroup.update({title: '📄 Invoices (3/10)'});

// Collapse the group while background work runs
await ctx.assistant.tabGroup.update({collapsed: true});

// Dissolve the group entirely (terminal — cannot be re-grouped)
await ctx.assistant.tabGroup.ungroup();

Methods

ungroup()

ts
ungroup(): Promise<void>;

Defined in: packages/sdk/src/context/index.ts:139

Dissolve the whole group, releasing all tabs in it (including tabs that auto-joined). Terminal for the run: there is no runtime re-group, and subsequent AssistantTabGroupAPI.update calls no-op.

Returns

Promise<void>


update()

ts
update(tabGroup: SkillTabGroup): Promise<void>;

Defined in: packages/sdk/src/context/index.ts:144

Partially update the group. Only the provided, correctly-typed fields are applied; invalid values are dropped (never normalised).

Parameters

ParameterType
tabGroupSkillTabGroup

Returns

Promise<void>

Matterway Assistant SDK Documentation