Retrieves the skill icon as a base64 data URI string.
For managed skills: reads from {assistantPath}/skills/managed/index.json and returns the iconPictureUrl for the matching skill identifier.
{assistantPath}/skills/managed/index.json
iconPictureUrl
For local skills: extracts icon.png from the skill zip file at {assistantPath}/skills/local/{skillName}.zip.
icon.png
{assistantPath}/skills/local/{skillName}.zip
The skill context
Promise resolving to data URI string (e.g., data:image/png;base64,...) or undefined if not found
data:image/png;base64,...
undefined
Basic usage with headerBar (icon string is automatically rendered as image)
const icon = await getSkillIcon(ctx);await showUI(ctx, bubble([ headerBar({ title: 'My Skill', icon: icon }), group([...])])); Copy
const icon = await getSkillIcon(ctx);await showUI(ctx, bubble([ headerBar({ title: 'My Skill', icon: icon }), group([...])]));
With fallback icon
const icon = await getSkillIcon(ctx);await showUI(ctx, bubble([ headerBar({ title: 'My Skill', icon: icon || '🔧' }), group([...])])); Copy
const icon = await getSkillIcon(ctx);await showUI(ctx, bubble([ headerBar({ title: 'My Skill', icon: icon || '🔧' }), group([...])]));
Retrieves the skill icon as a base64 data URI string.
For managed skills: reads from
{assistantPath}/skills/managed/index.jsonand returns theiconPictureUrlfor the matching skill identifier.For local skills: extracts
icon.pngfrom the skill zip file at{assistantPath}/skills/local/{skillName}.zip.