V
visionos-widgetkit-developer
About visionos-widgetkit-developer
visionos-widgetkit-developer is a skill for developers building WidgetKit widgets for visionOS. It provides guidance on spatial layouts, data paths, rendering, interaction, and validation.
Key features
- 01Platform and widget-family selection
- 02Near and far layout planning
- 03Mounting, texture, and rendering guidance
- 04Timeline and shared-data choices
- 05Interaction and update troubleshooting
Use cases
- 01Planning widget layouts for different viewing distances
- 02Choosing data sources and refresh strategies
- 03Adding App Intent-based widget interactions
- 04Diagnosing widgets that fail to appear or refresh
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ tomkrikorian/ visionosagents --skill visionos-widgetkit-developerAfter installing, type/visionos-widgetkit-developerin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
agents/openai.yamlreferences/debugging-and-updates.mdfamilies-and-platforms.mdinteractive-widgets.mdmounting-styles.mdproximity-levelofdetail.mdtextures-and-rendering.mdvisionos-rendering-styles.mdwidget-animation.mdwidget-overview.mdDetails
From the project READMEvisionOS WidgetKit Developer
Quick Start
Treat visionOS widgets as spatial objects first, not as small 2D surfaces.
- Decide the platform and family scope first.
- Define both close and far layouts before polishing visuals.
- Treat timeline entries, shared storage, and App Intents as the integration boundary; do not depend on live host-app state.
- Load only the reference files that match the current problem.
Load References When
| Reference | When to Use |
|---|---|
widget-overview.md | Overview, decision points, and a quick checklist for Vision Pro widgets. |
families-and-platforms.md | When choosing native visionOS families, compatible iOS families, or extra-large widget support. |
mounting-styles.md | When deciding elevated vs recessed support and avoiding layout breakage. |
visionos-rendering-styles.md | When checking official visionOS widget rendering modes, backgrounds, families, textures, and routing to shared button-shape policy. |
textures-and-rendering.md | When choosing glass vs paper, and ensuring legibility in different render modes. |
proximity-levelofdetail.md | When implementing near/far layouts using LevelOfDetail. |
interactive-widgets.md | When adding Button, Toggle, or AppIntent-driven interactions to a widget. |
debugging-and-updates.md | When widgets don’t refresh, don’t appear, or appear stale or broken. |
widget-animation.md | When animating widget content using timeline entries and Canvas crossfade, tuning frame rate, or hitting bundle or computation budget limits. |
Workflow
- Confirm the widget platform and family set.
- Choose mounting style, texture, and near/far layout strategy.
- Decide the data path: timeline-only, App Group/shared storage, background URL session, or WidgetKit push notification.
- Add interaction only if the widget still stays glanceable.
- Verify timelines, reloads, rendering modes, and extension logs after the structure is set.
Guardrails
- Always consider
.simplifiedfor distance readability. - Use native visionOS families intentionally; extra-large native visionOS
widgets use
.systemExtraLargePortrait, while compatible iOS/iPadOS widgets keep.systemExtraLarge. - Do not assume recessed mode works without explicit layout checks.
- Avoid dense, low-contrast layouts.
- Use
LinkorwidgetURL(_:)for open-app navigation; reserveButtonandTogglefor realAppIntentactions. - Keep widget configurations per
WidgetBundlewithin the practical limit.
Output Expectations
Provide:
- the widget platform and family scope
- which references were used
- the chosen presentation strategy
- the main rendering, interaction, or timeline constraint
- the next validation step
Comments
Markdown supported