Offer the user several spin-off conversations as clickable buttons on a single persistent card. Each click spawns a fresh seeded conversation in the sidebar.
assistant skills install conversation-launcherUse this skill when you want to offer the user several spin-off conversations from the current one. You render one persistent card. Each button on the card spawns its own seeded conversation in the sidebar. The user can click multiple buttons without losing their place — the origin conversation (this one) keeps focus.
Emit exactly one ui_show call with a card shaped like this, then end your turn:
{
"surface_type": "card",
"display": "inline",
"persistent": true,
"await_action": false,
"data": {
"title": "<framing headline>",
"body": "<one short sentence framing the choice>"
},
"actions": [
{
"id": "opt-1",
"label": "<short button label>",
"style": "primary",
"data": {
"_action": "launch_conversation",
"title": "<short conversation title>",
"seedPrompt": "<full first-user-message seed>",
"anchorMessageId": "<optional anchor message id from this conversation>"
}
},
{
"id": "opt-2",
"label": "<short button label>",
"style": "secondary",
"data": {
"_action": "launch_conversation",
"title": "<short conversation title>",
"seedPrompt": "<full first-user-message seed>"
}
}
]
}
Field notes:
persistent: true keeps the card visible after a click so the user can fire more buttons.await_action: false lets the turn end without reserving the interactive-surface slot — the launcher dispatches its action directly, so blocking other surfaces is unnecessary.data must contain _action: "launch_conversation", title, and seedPrompt. anchorMessageId is optional — include it when the spawned conversation should thread off a specific message in this one.label is the button text (short, ≤ 4 words, ≤ 30 chars). title is the new conversation's sidebar name (3–5 words, specific not generic). seedPrompt is the first user message of the new conversation — written in first-person as if the user typed it, with enough context that the new conversation can pick up without re-asking.style: "primary" for the recommended option (at most one), style: "secondary" for the rest.After rendering the card, end your turn. The click pipeline handles everything:
persistent flag — out of scope for this skill).action.id fires at most once per card lifetime; sibling actions remain clickable.