Axiom had no coverage of preparing a status bar for App Store screenshots. The tool map also listed `status_bar` as a simctl sim-only feature, which stopped being the whole story: devicectl owns a `device simulate statusBar` family whose `preset screenshot` sets Apple's classic 9:41 / full-bars / 100% look in one command, and both tools write the same override store. Every claim was verified against a booted iPhone 17 simulator on Xcode 27.0 / CoreDevice 642.9.1 — readbacks, exit codes, and a visual capture — rather than from documentation, which is what surfaced the traps below. - `override` merges into existing state, and several values silently fail while still exiting 0: `--operatorName` will not overwrite an existing carrier name, and `--dataNetwork wifi` stores `5G` if any `--cellularMode` is in the same call. Guidance is now clear-first, then assert on the readback — never on the exit code. The silent-failure table carries a "changes the capture?" column so a reader can tell which rows actually alter pixels. - The `screenshot` preset writes the literal carrier string `Carrier` — the same placeholder screenshot-validator flags as a defect — and nothing can overwrite it afterward. Both sides now cross-reference: the skill says to skip the preset on carrier-rendering devices, and the agent explains where a flagged `Carrier` came from and how to re-capture. - The two tools' flag vocabularies are not interchangeable (`draining` vs `discharging`, `5G` vs `5g`); cross-spellings hard-fail. Documented side by side with the observed exit codes. - devicectl's `--cellular-strength` help advertises 1-5; a simulator rejects 5. - `dataNetworkType` in `--json-output` comes back backtick-wrapped for values that are not valid Swift identifiers (`5G`, `4G`, `1x`, `5GUC`). Strip before parsing. - devicectl's subcommand set follows a machine-wide CoreDevice, not xcode-select, so a version cannot be inferred from the selected Xcode. Documented as a capability probe the reader runs instead of a version claim.
Axiom
Battle-tested skills, agents, and tools for modern Apple OS development — Swift 6, SwiftUI, Liquid Glass, Apple Intelligence, and more. Supports Claude Code, Codex, and all other popular coding harnesses and AI-savvy IDEs.
What is Axiom?
Axiom gives AI coding assistants deep Apple OS development expertise — the kind that prevents data loss from bad migrations, catches memory leaks before users complain, and stops you from spending 30 minutes debugging a zombie xcodebuild process.
- 273 skills covering UI, data, concurrency, performance, networking, accessibility, and more
- 42 agents that autonomously scan for issues (memory leaks, concurrency violations, build problems)
- 17 commands for quick audits and diagnostics
- xclog — a built-in console capture tool that gives AI assistants access to simulator and device logs
- xcsym — a built-in crash symbolication tool for
.ips, MetricKit, and Apple's legacy.crashtext crashes, with automatic dSYM discovery and pattern categorization - xcui — a built-in tool to drive and validate the simulator UI and accessibility (tap by accessibility ID, dump the accessibility tree, check VoiceOver and Dynamic Type)
- xcprof — a built-in tool to record and analyze CPU/performance traces (xctrace) without opening Instruments
Every discipline skill is TDD-tested against real developer pressure scenarios. Learn more about quality.
OS 27 in progress. Axiom is on a 27.x beta that tracks Apple's OS 27 developer betas — OS-27 coverage lands continuously through the beta season. Guidance for OS 26 and earlier stays stable.
Installation
Claude Code (native plugin)
/plugin marketplace add CharlesWiltgen/Axiom
Then search for "axiom" in the /plugin menu and install.
MCP (VS Code, Cursor, Gemini CLI, and more)
See the MCP setup guide.
Pi (terminal coding agent)
pi install git:github.com/CharlesWiltgen/Axiom
One command installs the skills plus the /axiom-* commands and hooks. See the Pi setup guide.
Xcode (Claude Agent / Codex)
See the Xcode integration guide.
Getting Started
Skills activate automatically based on your questions. Just ask:
"I'm getting BUILD FAILED in Xcode"
"How do I fix Swift 6 concurrency errors?"
"My app has memory leaks"
"I need to add a database column safely"
"Show me what my app is logging"
"Symbolicate this crash file"
You can also use commands directly:
/axiom:console # Capture simulator console output
/axiom:analyze-crash # Parse and triage .ips, MetricKit, or .crash reports
/axiom:fix-build # Diagnose build failures
/axiom:audit memory # Scan for memory leaks
/axiom:audit concurrency # Check for data races
/axiom:health-check # Run all relevant auditors
Documentation
Full documentation, skill catalog, and guides at charleswiltgen.github.io/Axiom.
Community
- r/axiomdev — Version announcements with changelogs
- Report issues or request features
- Share usage patterns and questions