mcpField
V
visionos-widgetkit-developer

visionos-widgetkit-developer

github.com/tomkrikorianDevelopment6640 installsUpdated 19w ago
Repository

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

  1. 01Platform and widget-family selection
  2. 02Near and far layout planning
  3. 03Mounting, texture, and rendering guidance
  4. 04Timeline and shared-data choices
  5. 05Interaction and update troubleshooting

Use cases

  1. 01Planning widget layouts for different viewing distances
  2. 02Choosing data sources and refresh strategies
  3. 03Adding App Intent-based widget interactions
  4. 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-developer

After installing, type/visionos-widgetkit-developerin Claude Code to confirm it loaded.

Bundled files

References and scripts installed along with SKILL.md.

agents/
openai.yaml
references/
debugging-and-updates.md
families-and-platforms.md
interactive-widgets.md
mounting-styles.md
proximity-levelofdetail.md
textures-and-rendering.md
visionos-rendering-styles.md
widget-animation.md
widget-overview.md

Details

From the project README

visionOS WidgetKit Developer

Quick Start

Treat visionOS widgets as spatial objects first, not as small 2D surfaces.

  1. Decide the platform and family scope first.
  2. Define both close and far layouts before polishing visuals.
  3. Treat timeline entries, shared storage, and App Intents as the integration boundary; do not depend on live host-app state.
  4. Load only the reference files that match the current problem.

Load References When

ReferenceWhen to Use
widget-overview.mdOverview, decision points, and a quick checklist for Vision Pro widgets.
families-and-platforms.mdWhen choosing native visionOS families, compatible iOS families, or extra-large widget support.
mounting-styles.mdWhen deciding elevated vs recessed support and avoiding layout breakage.
visionos-rendering-styles.mdWhen checking official visionOS widget rendering modes, backgrounds, families, textures, and routing to shared button-shape policy.
textures-and-rendering.mdWhen choosing glass vs paper, and ensuring legibility in different render modes.
proximity-levelofdetail.mdWhen implementing near/far layouts using LevelOfDetail.
interactive-widgets.mdWhen adding Button, Toggle, or AppIntent-driven interactions to a widget.
debugging-and-updates.mdWhen widgets don’t refresh, don’t appear, or appear stale or broken.
widget-animation.mdWhen animating widget content using timeline entries and Canvas crossfade, tuning frame rate, or hitting bundle or computation budget limits.

Workflow

  1. Confirm the widget platform and family set.
  2. Choose mounting style, texture, and near/far layout strategy.
  3. Decide the data path: timeline-only, App Group/shared storage, background URL session, or WidgetKit push notification.
  4. Add interaction only if the widget still stays glanceable.
  5. Verify timelines, reloads, rendering modes, and extension logs after the structure is set.

Guardrails

  • Always consider .simplified for 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 Link or widgetURL(_:) for open-app navigation; reserve Button and Toggle for real AppIntent actions.
  • Keep widget configurations per WidgetBundle within 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