Xcode Preview Capture Skill
Build SwiftUI views and capture screenshots of their rendered output for visual analysis.
Installation Path
Scripts are located at ${PREVIEW_BUILD_PATH:-$HOME/XcodePreviews}/scripts/
Compatibility: If
~/XcodePreviewsdoesn't exist, fall back to~/Claude-XcodePreviews(legacy name). ThePREVIEW_BUILD_PATHenvironment variable overrides both.
Available Commands
Unified Preview (Recommended)
Auto-detects project type and uses the best approach:
"${PREVIEW_BUILD_PATH:-$HOME/XcodePreviews}"/scripts/preview \
<path-to-file.swift> \
--output /tmp/preview.png
Quick Capture (Current Simulator)
"${PREVIEW_BUILD_PATH:-$HOME/XcodePreviews}"/scripts/capture-simulator.sh \
--output /tmp/preview-capture.png
Xcode Project with #Preview
Fast builds by injecting a minimal PreviewHost target (handled automatically by the unified script):
"${PREVIEW_BUILD_PATH:-$HOME/XcodePreviews}"/scripts/preview \
<path-to-file.swift> \
--project <path.xcodeproj> \
--output /tmp/preview.png
SPM Package Preview
Auto-detected from Package.swift in parent directories:
"${PREVIEW_BUILD_PATH:-$HOME/XcodePreviews}"/scripts/preview \
<path-to-file.swift> \
--output /tmp/preview.png
Standalone Swift File
Build a standalone Swift file with system frameworks only:
"${PREVIEW_BUILD_PATH:-$HOME/XcodePreviews}"/scripts/preview \
<path-to-file.swift> \
--output /tmp/preview.png
Workflow
When the user asks to preview a SwiftUI view:
Identify the target: Determine what needs to be previewed (Swift file, project scheme, or current simulator state)
Build and capture: Run the appropriate script
Read and analyze: Use the Read tool to view the captured PNG at
/tmp/preview.pngReport findings:
- Layout: Structure and arrangement
- Visual elements: Buttons, text, images
- Styling: Colors, fonts, spacing
- Issues: Alignment, overflow, accessibility
- Suggestions: Improvements
Parameters
| Option | Description |
|---|---|
--project <path> |
Xcode project file |
--workspace <path> |
Xcode workspace file |
--package <path> |
SPM Package.swift path |
--module <name> |
Target module (auto-detected) |
--simulator <name> |
Simulator name (default: iPhone 17 Pro) |
--output <path> |
Output screenshot path |
--verbose |
Show detailed build output |
Error Handling
- No simulator booted: Run
sim-manager.sh boot "iPhone 17 Pro" - Build failure: Show error, suggest fixes, offer to retry
- Resource bundle crash: The dynamic script auto-includes Tuist and common bundle patterns
- Missing imports: Check if the target module needs to be added to imports
Converted and distributed by TomeVault — claim your Tome and manage your conversions.