axiom-macos
Use when building ANY macOS app — windows, menus, sandboxing, distribution, AppKit bridging or modernization (control events, state restoration, concentric corners), touch input, or macOS-specific SwiftUI patterns.
Try your first task
A source-grounded starter task has not been verified for this skill yet.
SKILL.md
name: axiom-macosdescription: Use when building ANY macOS app — windows, menus, sandboxing, distribution, AppKit bridging or modernization (control events, state restoration, concentric corners), touch input, or macOS-specific SwiftUI patterns.license: MITmacOS Development
You MUST use this skill for ANY macOS-specific development including windows, menus, sandboxing, distribution, AppKit bridging, and macOS SwiftUI differences.
Can't launch Axiom agents? Where this router sends you to an agent, follow its procedure inline. Over MCP,
axiom_get_agentreturns it; elsewhere, read its file below, which needs only file search and read.Available here:
skills/touch-auditor.md.For any other agent, over MCP
axiom_get_agentreturns it too; run its xclog, xcsym and xcprof steps with theaxiom_xclog_*,axiom_xcsym_*andaxiom_xcprof_*tools. Elsewhere, search Axiom's skills forskills/<agent>.md; if there is none, do that work yourself with this suite's skills, using any Axiom tool on yourPATH.
Quick Reference
| Symptom / Task | Reference |
|---|---|
| Window management (WindowGroup, Window, MenuBarExtra, DocumentGroup) | See skills/windows.md |
| Menu bar, commands, keyboard shortcuts | See skills/menus-and-commands.md |
| Table, Inspector, NavigationSplitView, focus | See skills/swiftui-differences.md |
| App Sandbox, file access, security-scoped bookmarks | See skills/sandbox-and-file-access.md |
Another team's app or app group container access denied without a prompt (OS27) | See skills/sandbox-and-file-access.md |
| Developer ID, notarization, Sparkle auto-updates | See skills/direct-distribution.md |
| NSViewRepresentable, NSHostingController, AppKit bridging, @Observable in AppKit, NSHostingMenu, SwiftUI scenes from AppKit | See skills/appkit-interop.md |
Modernizing AppKit: mouseDown replacement, control events, status-item sessions, state restoration, concentric corners (OS27) | See skills/appkit-modernization.md |
| Touch on a touch-display Mac or Sidecar: design rules, tracking loops → gesture recognizers, hit targets, hover, exclusivity, system gestures, non-Apple UI frameworks | See skills/touch.md |
| Automated touch-readiness scan (mouseDown overrides, tracking loops, hover-only controls, custom recognizers) | Launch touch-auditor agent or /axiom:audit touch |
| Screen recording, sharing, or capture (ScreenCaptureKit) | See skills/screencapturekit.md |
SCStream / SCContentFilter / screenshots / file recording API, clip buffering, recording editor (OS27) | See skills/screencapturekit-ref.md |
| Bring an iOS app to Mac: Catalyst adoption, Designed for iPad, Mac availability opt-out | See skills/ios-apps-on-mac.md |
| Apple Pay on Mac / Catalyst | See axiom-payments/skills/apple-pay.md (Catalyst section) |
Cross-Suite Routes
These topics overlap with macOS development but live in separate suites:
SwiftUI (shared iOS/macOS)
- View state, data flow, @Observable → See axiom-swiftui
- Navigation (NavigationStack basics) → See axiom-swiftui (skills/nav.md)
- Layout (ViewThatFits, AnyLayout) → See axiom-swiftui (skills/layout.md)
- Animations → See axiom-swiftui (skills/animation-ref.md)
Data & persistence
- SwiftData, Core Data, GRDB → See axiom-data
- CloudKit sync → See axiom-data
Concurrency
- Swift 6 concurrency, actors, Sendable → See axiom-concurrency
Other
- Accessibility (VoiceOver, Dynamic Type) → See axiom-accessibility
- Networking (URLSession, Network.framework) → See axiom-networking
- Security (Keychain, passkeys, encryption) → See axiom-security
Conflict Resolution
axiom-macos vs axiom-swiftui: When working on a macOS SwiftUI app:
- Use axiom-macos for macOS-only concerns: windows, menus, commands, sandboxing, distribution, Table, Inspector, AppKit bridging
- Use axiom-swiftui for cross-platform SwiftUI: navigation, layout, state management, animations
- Both may apply: A macOS app using NavigationSplitView with Table needs axiom-macos for Table specifics and axiom-swiftui for NavigationSplitView basics
axiom-macos vs axiom-security: For sandbox and code signing:
- Use axiom-macos for macOS App Sandbox, security-scoped bookmarks, file access entitlements, Developer ID signing
- Use axiom-security for Keychain storage, encryption, passkeys, certificate management
Decision Tree
digraph macos {
start [label="macOS development task" shape=ellipse];
what [label="What area?" shape=diamond];
start -> what;
what -> "skills/windows.md" [label="windows/scenes"];
what -> "skills/menus-and-commands.md" [label="menus/commands/shortcuts"];
what -> "skills/swiftui-differences.md" [label="Table/Inspector/focus/macOS SwiftUI"];
what -> "skills/sandbox-and-file-access.md" [label="sandbox/file access"];
what -> "skills/direct-distribution.md" [label="distribution/notarization/updates"];
what -> "skills/appkit-interop.md" [label="AppKit bridging"];
what -> "skills/appkit-modernization.md" [label="modernize AppKit\n(input/restoration/27 look)"];
what -> "skills/touch.md" [label="touch input\n(touch display/Sidecar)"];
what -> "skills/ios-apps-on-mac.md" [label="iOS app to Mac\n(Catalyst / Designed for iPad)"];
what -> "skills/screencapturekit.md" [label="screen capture/\nrecording/sharing"];
what -> "axiom-swiftui" [label="cross-platform SwiftUI"];
what -> "axiom-security" [label="Keychain/encryption"];
}
iOS screen capture? On iOS 27+ use ScreenCaptureKit's
SCContentSharingPicker— see axiom-media (skills/screen-capture.md); ReplayKit (deprecated in the 27 SDKs) only below 27.
Resources
WWDC: 2021-10062, 2022-10061, 2022-10075, 2023-10148, 2024-10149, 2026-272, 2026-289
Tech Talks: 111456, 111468
Docs: /security/app-sandbox, /swiftui/windowgroup, /swiftui/table
Skills: axiom-swiftui, axiom-security, axiom-concurrency, axiom-uikit