The evidence grading is the idea worth taking seriously: a finding confirmed by compiler or test output reads very differently from a heuristic flagging an accessibility concern, and Axint keeps that distinction instead of flattening both into a list of errors. Around it sits a lot of practical machinery for agents working on Apple projects — file claims so two of them do not fight over the same SwiftUI source, context packs to reload after a compaction, and a run loop you can cancel when xcodebuild survives an MCP timeout.
A proof and repair layer for Apple coding agents. It compiles TypeScript intent definitions into Swift App Intents, validates existing Swift against Apple-specific rules, runs the real Xcode build and test loop, reconciles static findings against what the tooling actually reported, and returns a repair plan.
- axint.compile turns a defineIntent() TypeScript source into native Swift App Intent code, optionally with Info.plist and entitlements, while axint.validate runs the full validation pipeline over the TypeScript without generating anything
- axint.swift.validate checks existing Swift against Apple build-time rules including Swift 6 concurrency and Live Activities, and axint.swift.fix repairs the mechanical errors it found
- axint.run executes the enforced Apple build loop outside the Xcode UI, with axint.run.status and axint.run.cancel for an xcodebuild that outlived its timeout and is still holding child processes
- axint.cloud.check accepts Swift or TypeScript source, an Xcode build log, a test failure or a described runtime failure and returns a verdict; axint.fix-packet reads back the repair artifact emitted after a compile or watch run
- axint.repair plans a project-aware repair for an existing app, indexing the project and classifying build, UI and runtime evidence
- Scaffolding: axint.scaffold for a starter intent, axint.feature for a whole Apple-native feature package with Swift and a companion view, axint.templates.list and axint.templates.get for the bundled references, axint.schema.compile to go from JSON straight to Swift, and axint.tokens.ingest to turn design tokens into a SwiftUI enum
- Project context handled deliberately — axint.project.index writes a compact context pack, axint.project.pack bootstraps a new app, and axint.context.memory and axint.context.docs are what an agent reloads after a new chat or a context compaction
- Multi-agent coordination on one project: axint.agent.claim takes short-lived claims on files so two agents do not patch the same SwiftUI source, axint.agent.release gives them back, and axint.agent.advice reads the local project brain for what to do next
- Sessions and gates — axint.session.start opens an enforced session with a token, axint.workflow.check records a freshness stamp, and axint.xcode.guard and axint.xcode.write keep an Xcode session from drifting, validating Swift on the way in
- axint.status, axint.doctor, axint.activate and axint.upgrade answer which version is running, whether the project wiring is right, whether the pipeline works at all, and how to move version without losing the agent thread
- Findings carry an evidence class — confirmed, probable, advisory or suppressed — so something backed by compiler or test output is distinguishable from a heuristic
Published as @axint/compiler on npm and axint on PyPI, launched over stdio, with a hosted Streamable HTTP endpoint at https://mcp.axint.ai/mcp. It drives real Apple tooling, so the build and test half needs a macOS machine with Xcode present. The default local run requires no account and uploads no source.
One command — npx -y -p @axint/compiler axint prove --dir /path/to/MyApp
