Repository navigation
Releases
Releases · CharlesWiltgen/Axiom
Axiom v27.8.1
Updated
- App Intents APIs –
app-intents-refnow documents seven more App Intents APIs, each with an example:@DependencyandAppDependencyManager– Making your app’s services available to intents and queriesUndoableIntent– Registering an undo for what an intent didSyncableEntity– Identifying an entity the same way on every deviceIntentParameterDependency– Letting a query read another of the intent’s parametersLongRunningIntent– Running past the background time limit, with progress shown in a Live ActivityCancellableIntent– Cleaning up when a run times out or the person cancels itallowedExecutionTargets– Choosing whether an intent runs in the app or an extension
- App Intents dependencies – Now covers how
@Dependencyon an entity or enum fails to build, while@AppDependencythere builds and is never filled in. It also includes registering a main-actor store without a Swift 6 warning. The change coversapp-intentsandapp-intents-ref. - Siri AI requests a built-in app handles –
siri-ai-auditornow flags tools for requests like creating a meeting, which in testing went to the built-in app unless they named your app./axiom:sirinow tests each such request with and without your app’s name. - Audit priorities –
/axiom:auditnow ranks all 34 audit areas when it runs several at once, includingsiri-ai,iap, andgrdb-performance. - Health check coverage –
/axiom:health-checknow runsiap-auditorin projects that use StoreKit andgrdb-performance-auditorin projects that use GRDB. - Also updated – The foreground example in
app-intents-refnow lets a cancel stop the intent, and its examples markperform()@MainActoronly when most of it is UI work, asapp-intentsadvises.
Fixed
- Project detection – Axiom now turns on in projects whose file names use unexpected case, such as a
podfileorApp.SWIFT, and stays off in sessions opened under~/Library, where SwiftPM keeps its own files.
Full Changelog: v27.8.0...v27.8.1
Axiom v27.8.0
New
- Support for Xcode 27.3 and the 27.3 SDKs – Guidance is updated for the Xcode 27.3 beta and includes 27.3 additions and changes:
storekit-ref– Multi-seat subscriptions with per-seat pricing, and the pricing model that replaces the deprecated billing propertiesfoundation-models-ref– The on-device model on Apple TV, and session state that instructions and tools sharelive-activities– Live Activities started by a Mac app, which a sandboxed app can’t start yet on the macOS 27.3 betatoolbarsanduikit-modernization– Separate toolbars for navigation stacks stacked in one split-view column, in SwiftUI, UIKit, and Mac Catalystswift-testing– UI tests written with Swift Testingiphone-duo– Folding and unfolding iPhone Duo from a UI testtouch– Turning off system touch gestures during a critical interaction, and the touch rules in Xcode’s own guidetransferable-ref– Drag and drop that keeps an item’s identitypasskeys– Asking people to set up the email address that receives their sign-in codes before you send onefundamentals– Reference sex for choosing clinical ranges, and hip circumferencecamera-capture-ref– Camera direction on tvOS and visionOScallkit-livecommunicationkit– Live Caller ID server changesxcode-mcp-ref– Xcode MCP tool changes, including filtered build settings and simulator-only device interactionswiftui-26-ref– Data detection in native Mac appsapp-schemas-ref– The Video schema domain
- Siri AI – Axiom now covers bringing an app’s own actions and content to Siri AI in the Siri AI Developer Preview:
siri-ai– Tool intents, generable entities, entity properties, card snippets, and App Skills, with rules from testing on devicessiri-evaluations-ref– Writing and running SiriEvaluations scenarios on a device, including the Macsiri-ai-auditor– Scans an app for what keeps Siri from finding, choosing, or running its actions/axiom:siri– Runs the source audit, build, metadata analyzer, and App Skills check in one pass
- App Intents mistakes that compile – The new
app-intentsskill covers intents that build cleanly and then fail when Siri or Shortcuts runs them, from a dependency a cold launch never registers to a build that ships no App Intents metadata.
Updated
- App Intents reference –
app-intents-refnow documents which surface (Shortcuts, Spotlight, Siri AI tools, or schema intents) uses which entity lookup, and which schemas a Siri flow needs together.
Full Changelog: v27.7.3...v27.8.0
Axiom v27.7.3
Updated
- App Intents – Now covers how an edit intent tells a field the person cleared from one they didn’t mention (
valueState, iOS 18.2+), how to tag list rows and selections so Siri can act on “the third one” (appEntityIdentifier, iOS 18.4+), and the Xcode code snippets that scaffold a whole schema conformance. The change coversapp-intents-ref. - Alerts and action sheets – Adds when to show an alert, an action sheet, or neither, how to word titles and buttons, and where Cancel and destructive buttons go, including the destructive-style rule that action sheets reverse. The change covers
higandhig-ref. - VoiceOver in Simulator – Now covers how turning VoiceOver on in a simulator sets the value your app reads (
isVoiceOverRunning) without running the screen reader, so testing the screen reader itself needs a physical device. The change coversxcui-ref,device-control-ref,accessibility-diag, andsimulator-tester. - Simulator taps – Includes that
axe touch --down --upis a physical tap and selects an item in an open SwiftUI menu, as--tap-style physicaldoes. The change coversxcui-refandaxe-ref. - Custom fonts and Dynamic Type – Now covers how
Font.custom(_:size:)grows with Dynamic Type relative to body text, while afixedSize:custom font never grows.accessibility-auditornow flagsfixedSize:custom fonts and suggestsrelativeTo:only for text that plays another role, such as a title. - Sandboxed file access – Now covers how files picked with SwiftUI’s
fileImporterneed security-scoped access started before your app reads them, as Apple’s documentation says, and how refreshing a stale bookmark needs it too. The change coverssandbox-and-file-access. - Document-based apps – Better covers the iOS 27 document model, with an example that refuses a file it can’t read, so autosave never replaces it with an empty document. The change covers
app-composition. - Rich text editing – Documents
TextEditorformatting definitions and text selection as the iOS 26 SDK defines them. The change coverstextkit-ref. - Current SwiftUI APIs – Code examples across 17 skills use current SwiftUI APIs instead of ones Apple has marked for deprecation, such as
foregroundStyle,Tab,toolbarVisibility, andNavigationLinkwith a destination closure, so your assistant writes current code. - Also updated –
swiftui-debuggingshows how to bring a hidden view to the front of aZStackwithout reordering it, andswiftui-containers-refpairsscrollPosition(id:)withscrollTargetLayout(), as Apple’s documentation does, so the tracked position follows the item on screen.
Fixed
axbuildand interrupts – A build you interrupt is reported as interrupted, and a build that finishes just before the interrupt is reported with its real result.- MCP server lookups – Finds skills and agents by the names assistants actually use, such as a skill’s file path,
axiom:build-fixer, a#sectionanchor, or any capitalization, and suggests the closest matches when a name isn’t found.
Full Changelog: v27.7.2...v27.7.3
Axiom v27.7.2
Updated
- Live Activities in Mac builds – Keep Live Activity code out of Mac and Mac Catalyst builds with
#if os(iOS) && !targetEnvironment(macCatalyst)until a macOS SDK includes ActivityKit.#if canImport(ActivityKit)and#availableleave the code in, and the Mac build fails. The change coverslive-activities. - Touch recognizers beside mouse code – Set
delaysPrimaryMouseButtonEventsonly on a custom gesture recognizer that handles the mouse, so a mouse tracking loop that shares a view with touch-only recognizers keeps responding without lag. The change coverstouch.
Full Changelog: v27.7.1...v27.7.2
Axiom v27.7.1
New
- Support for the Xcode 27.2 release – Guidance is updated for the released Xcode 27.2, whose SDKs match the release candidate, and includes 27.2 additions and changes:
xcode-mcp-tools– TheGetCodeCoveragetool announced in the 27.2 beta and release candidate notes isn’t part of the release, so your assistant won’t try to call itdevice-control-ref– Device Hub accepts keyboard and mouse input for simulators older than iOS 18, passes touches from a Sidecar iPad or a touch-display Mac through as touches, and needs a USB cable for CarPlay
- Touch on the Mac – A new
touchskill covers making a Mac app work on a touch-display Mac or an iPad connected over Sidecar: moving custom mouse handling to gesture recognizers, sizing touch targets, replacing hover-only actions, and avoiding the gesture recognizers that freeze an app on macOS 27. - Mac touch audit – The new
touch-auditoragent scans Swift and Objective-C code for what breaks under touch. Run it with/axiom:audit touch, or lethealth-checkrun it on macOS projects. - Gesture input filtering –
swiftui-gesturesadds a section oninputKinds:, which limits a SwiftUI gesture to touch, Pencil, or pointer input on the 27 releases. - Touch in Mac games –
game-inputadds how a Mac game receives touch, following TN3216: the mouse events touch is translated into, why a position built from mouse deltas drifts, and handling touch directly with gesture recognizers. - Live Activities from Mac apps –
live-activitiesadds Mac apps starting their own Live Activities, which Apple has announced but the macOS 27.2 SDK doesn’t include yet.
Updated
- Overlay hit-testing – Pass events through an overlay only over the controls beneath it, so the overlay’s own gesture recognizers keep working. The change covers
appkit-modernization.
Full Changelog: v27.7.0...v27.7.1
Axiom v27.7.0
New
- Support for Xcode 27.2 and the 27.2 SDKs – Guidance is updated for the Xcode 27.2 release candidate and includes 27.2 additions and changes:
- Navigation title alignment in UIKit (
uikit-modernization) and SwiftUI (toolbars) - SwiftUI sensor anchors for heading, motion, and Nearby Interaction (
core-location-ref) - An installed asset pack’s version and size (
background-assets-ref) - App Intents build errors and availability (
app-schemas-ref) - iPhone Duo camera direction (
iphone-duo) and data detection (swiftui-26-ref) on the 27.2 RC
- Navigation title alignment in UIKit (
Updated
- Now Playing framework –
now-playingbetter covers adopting Apple’s Swift-native Now Playing framework, from content types and playback state to the session life cycle and server-driven remote playback. - Xcode MCP tools –
xcode-mcp-refdocuments where the 27.2 RC now returns a rendered preview’s image and options, which moved to new field names, so code that reads the old names gets no image. It also documents the new preview, folder, and Info.plist options. - Xcode Library items –
swiftui-previews-refaddsLibraryContentProvider, for listing your own views and modifiers in Xcode’s Library. - Layout margins –
uikit-adaptive-layoutnow includes the iOS 27.1 change that sets a plain view’s layout margins to zero by default. - ComputeGraph –
realitykit-refgoes deeper on building a ComputeGraph pipeline once and running it for many concurrent GPU simulations. - App Store Server API –
storekit-refnow documents authentication, production and sandbox hosts, which environment to call, and recovering missed notifications. - Framework requirements – Now covers requirements and limits Apple states on its framework overview pages, such as the fetch rules in
contacts-ref, visionOS getting only diagnostics frommetrickit-ref, and ReplayKit’s deprecation in favor of ScreenCaptureKit inscreen-capture.
Fixed
xcprofrecordings of a launched app – With Xcode 27.2, recordings no longer leave a stopped copy of the app running, and Control-C saves the trace.- Terminal hints in Claude Code – Build and test recovery hints now reach your assistant.
- Skill suggestions – Words in a command’s output no longer trigger skill suggestions.
axbuildtest results – Swift Testing failures on Xcode 27.2 are complete, listed once, and point to the right file.
Full Changelog: v27.6.2...v27.7.0
Axiom v27.6.2
New
- CloudKit server-to-server requests –
cloudkit-refnow covers signing requests to CloudKit Web Services: key setup, what each request signs, the three request headers, and how long a signed request stays valid (10 minutes). It includes a converter for signatures made with Web Crypto (Cloudflare Workers, Deno, and browsers), which CloudKit rejects until they’re converted to DER. - Silent pushes without an APNs server –
background-processingnow covers sending silent pushes through CloudKit. A query subscription in the public database pushes to each subscribed user’s devices when a record is created, so a scheduled server job can wake your app without running an APNs server or storing device tokens.
Updated
- Background App Refresh – Now covers how turning it off stops refresh tasks, processing tasks, and background pushes alike, and makes any attempt to schedule a background task fail with an error. A new table maps which of the seven scheduling factors gate each background mode. The change covers
background-processing,background-processing-diag,background-processing-ref, andpush-notifications-diag. - Apps users stop opening – Now covers how refresh tasks, processing tasks, and background pushes all depend on recent launches, so background work stops when users stop opening an app. Apple says background pushes aren’t delivered to an app the user hasn’t launched for a while, so the guidance is to refresh when the app opens rather than push more often. The change covers
background-processing,background-processing-diag,background-processing-ref, andpush-notifications-diag. - Rescheduling refresh tasks – Now covers how scheduling a refresh task again replaces the one already waiting and restarts its delay, so an app that reschedules every time a silent push or another background task wakes it keeps postponing its own refresh. The guidance is to schedule from those wakes only when no refresh is already waiting. The change covers
background-processingandbackground-processing-diag. - Processing tasks and file protection – Now covers how processing tasks never start before the user first unlocks the device after a restart, and usually run while it’s locked. Files a processing task reads can use no stricter protection than
.completeUntilFirstUserAuthentication(the default), because a database protected with.completecan’t be opened while the device is locked. The change coversbackground-processingandbackground-processing-diag. - Background task scheduling errors –
background-processing-refnow matches each scheduling error to its cause..unavailablemeans Background App Refresh is off or the app is running in Simulator, and.notPermittedmeans the app’sInfo.plistis missing a background mode or the task’s identifier, or the user has denied the app background launches. - Also updated – The example in
background-processing-diagthat checks for an already-waiting task now compiles without warnings under Swift 6.
Full Changelog: v27.6.1...v27.6.2
Axiom v27.6.1
Fixed
- Terminal hints – Axiom’s hints after a shell command now skip documentation and source your assistant is only reading, such as a
catorgrepof a file that mentions build errors, while still flagging real build and test failures. The change covers Claude Code, Codex, Cursor, and Pi. - Agent warnings in Claude Code and Codex – Six agents now warn before they change state:
build-fixer– Beforekillall, deleting DerivedData, or erasing a simulatorbuild-optimizer– Before recommending edits to an Xcode project fileiap-implementation– Before editing StoreKit configurationsimulator-tester– Before erasing, deleting, shutting down, or booting a simulatortest-debuggerandtest-runner– Before deleting.xcresulttest results
- Projects with unreadable folders – When a permission error stops Axiom from reading part of a project, it now keeps its guidance on for the session instead of treating the project as non-Apple. The change covers Claude Code, Codex, Cursor, and Pi.
- Simulator UI in Cursor – UI workflows now find
xcuiin an Axiom repository checkout and add--tap-style physicalto AXe taps, which SwiftUI controls otherwise ignore while AXe reports success. The Cursor guide now lists which Axiom tools are available there and how to set upxcui.
Full Changelog: v27.6.0...v27.6.1
Axiom v27.6.0
New
- Siri in audio apps – The
axiom-integrationskill suite now covers how Siri plays, likes, and adds to playlists in your audio app, through Siri with Apple Intelligence and classic Siri alike:siri-audio– Which Siri paths to build (the iOS 27 Audio schema domain, SiriKit media, and Now Playing commands), in what order, and how to test eachsiri-audio-ref– Every type, parameter, case, and build error those paths involvesiri-audio-diag– Why Siri says “I can’t play that”, can’t find items by name, or works only while the app is open
- Siri in notes, list, and to-do apps –
siri-notes-remindersguides the move from SiriKit’s Lists and Notes intents, which iOS 27 deprecates, to the Notes and Reminders schemas. It covers what to keep for Apple Watch, iOS 26, and classic Siri, how each old intent maps to a schema, and what has no counterpart. - App Intents schemas –
app-schemas-reflists what the build requires for each of the 304 App Intents schemas: parameters, properties, enum cases, return types, and file content types. It’s generated from the iOS 27.1 SDK, so your assistant can adopt a schema without a round of build errors.
Updated
- Siri and Now Playing –
now-playingexplains which Siri requests (“pause”, “next”, “what song is this?”) run through your remote commands and now-playing metadata. It also shows how to annotate what’s playing with your app’s entities in iOS 27, so “add this to my playlist” resolves against your catalog. - App Shortcuts by voice – Traces a phrase that falls through to a web or Maps result, while tapping the shortcut works, to a declined per-app consent prompt (“Turn on [App] shortcuts with Siri?”). The change covers
app-shortcuts-ref. - Field crash reports in auditors –
concurrency-auditor,energy-auditor, andmemory-auditorask for symbolicated crash output in their results, since they can’t runxcsymthemselves.
Fixed
- Crash, console, and profiling steps in MCP clients and Cursor – Each step that runs
xclog,xcsym, orxcprofnow names the MCP tool and its exact inputs, so an assistant without a shell can follow it. This covers agents such ascrash-analyzerandperformance-profiler, and the commands that run these tools.
Full Changelog: v27.5.1...v27.6.0
Axiom v27.5.1
New
- Crash, console, and profiling agents in MCP clients and Pi – In MCP clients, Pi, and skills-only installs, your assistant now follows Axiom’s crash, console, and profiling agents. Over MCP, it runs
xcsym,xclog, andxcprofas MCP tools. - Project inspection in MCP clients – In MCP clients with a shell, Cursor included, your assistant can now read your Xcode project’s targets, configurations, and build settings with
xcproject, without changing the project.
Updated
- Simulator targeting – When several simulators are booted, screenshots, push notifications, and deep links now go to the simulator you meant, not whichever one
bootedpicks, which can be an Apple TV. Verification screenshots fromxcode-debuggingshow your new build because it installs before launching, anddeep-link-debuggingpre-approves the URL scheme so an alert doesn’t swallow the first link. The change covers/axiom:screenshot,simulator-tester, andpush-notifications-diag. - Writing Tools result options – Setting
.tableinallowedWritingToolsResultOptionson aUITextViewthrows an exception, sotextkit-refreserves it forNSTextViewandtextkit-auditorflags it. - Temporary allocation –
swift-performanceadoptswithTemporaryAllocationwith no#availablecheck or fallback: it needs the Xcode 27 toolchain, not an OS 27 runtime, and works back to iOS 12.2. - App Tracking Transparency –
app-store-reflists what Apple doesn’t count as tracking (first-party analytics, linkage that stays on device, fraud prevention and security, credit reporting), so you can tell whether your app needs the ATT prompt. - Vision in the Simulator –
media-intelligencelists the Vision requests that fail in the iOS 27.2 Simulator and the error each returns, so a Simulator-only failure isn’t mistaken for a bug in your code. - iPhone Duo captures –
iphone-duocovers screenshots and recordings that come back black for a few minutes after the device boots, a known issue in the Xcode 27.2 beta release notes, so you wait and retry instead of debugging your app. - SwiftUI view identity – Reads
@identityinSelf._printChanges()output as a state reset only for a view already on screen, since every view’s first logged line includes it, so a first appearance doesn’t send you chasing an identity bug. The change coversswiftui-debuggingandswiftui-debugging-diag. - Test crashes –
test-failure-analyzerdiagnoses a test crash from its.ipsreport even when it can’t symbolicate it, and asks for symbolicated output when it needs more.
Fixed
- MetricKit and Organizer crashes –
xcsymnow symbolicates MetricKit crash reports, so field crashes from MetricKit show function names instead of offsets. When a crash you exported from Xcode Organizer won’t fully symbolicate, your assistant can now tell you which debug symbols are missing. - Hang and CPU-warning reports over MCP – Handing one to
xcsymover MCP now leads your assistant to hang or performance analysis instead of a retry. - Interrupted console captures –
xclognow fails withlog stream exited earlywhen the log stream it starts dies mid-capture, so a capture that’s missing lines no longer looks complete. Over MCP, the lines captured before it stopped come back with the error. - Stray arguments – When your assistant passes an argument that
xcui,xcsym,xcprof, orxclogdoesn’t take, the tool now stops with an error that names it, instead of ignoring every flag after it and running with defaults, such as listing the wrong simulator’s apps. - Skills over MCP – Your assistant now gets complete code examples and accurate section lists when it reads a skill over MCP, because comments inside code blocks are no longer taken for headings. Search results also describe each skill by what it covers.
- Sessions in a deleted directory – Starting a session in a directory that no longer exists, such as a removed git worktree, now loads Axiom normally instead of failing its session hook.
- Cursor agents – In Cursor, the
crash-analyzer,triage-analyzer, andperformance-profileragents now give instructions Cursor’s MCP tools can carry out, and delegation hands off to the right agent.
Full Changelog: v27.5.0...v27.5.1