The compiler your AI agent needs to ship Apple apps

Your AI writes Swift.We make sure it ships.

axint gives AI coding agents the compiler, validator, Fix Packet, MCP tools, and Xcode workflow they need to ship Apple-native software.

Install once. Your AI ships Apple apps that compile on the first build, pass App Review, and don't crash. Free, open-source, works with every coding agent that speaks MCP.

install — primary action

click to copy the install prompt

or install from your terminal

then trybuild a Siri intent for logging a workout

shipping today

35
MCP tools
204
diagnostics
1,308
tests
58
live packages
Apache-2.0
license
works with
  • Claude Code
  • Cursor
  • Codex
  • Claude Desktop
  • VS Code
  • Windsurf
  • Xcode
  • Antigravity
  • Zed
  • JetBrains
  • Neovim

the workflow

Agent in. App out.Seven stages between.

Every Apple change goes through the same loop. Each stage writes a real artifact your agent reads — no build logs in chat, no parroted error messages.

  1. 01

    agent input

    TypeScript, Python, or .axint

    your prompt

  2. 02

    compile

    Swift + plist + entitlements

    axint compile

  3. 03

    validate

    189 Apple-specific rules

    axint validate-swift

  4. 04

    fix packet

    verdict, findings, repair prompt

    .axint/fix/latest.json

  5. 05

    agent repair

    no copy-paste, no log parsing

    axint repair

  6. 06

    xcode check

    real build, real test, real proof

    axint run

  7. 07

    ship

    ready_to_ship · App Review ready

    .axint/run/latest.md

Most dev tools stop at stage 03. They tell the user what failed and leave it there. axint writes the fix packet at stage 04 — verdict, findings, AI-ready repair prompt — so the agent can repair, rerun, and ship without anyone copy-pasting a build log into chat.

the fix packet · agent repair contract

Most tools tellthe human.axint tells the agent.

The Fix Packet is the repair contract between your coding agent, axint, and Xcode.

When the build fails, your agent doesn't need a Xcode log. It needs a contract: verdict, findings, an AI-ready repair prompt, an Xcode checklist, and the full evidence trail. axint writes that file. The agent reads it. Repair runs without anyone pasting an error message into chat.

axint

Fix
Packet.

.axint/fix/latest.json

agent-readable
verdict
needs repair
findings
3 across 1 file
repair prompt
generated · drop into Claude Code, Cursor, Codex
xcode checklist
ready · open file · go to line · apply change · rerun
next command
axint xcode check
verification
evidence_required until focused test passes

for the curious · the file your agent reads

six parts of the contract

  1. 01

    verdict

    One word the agent reads to decide whether to ship, repair, or run more tests. Not a build log, not a vibe.

  2. 02

    confidence

    How certain axint is that the verdict is final. low means runtime evidence is still pending.

  3. 03

    findings

    Each issue named precisely — the rule that fired, the file it fired in, why it matters, and the suggested direction.

  4. 04

    ai-ready repair prompt

    A pre-formatted prompt your agent can act on without any user copy-pasting. It already names the file and the change.

  5. 05

    xcode checklist

    If the user wants to fix it themselves: open this file, go to this line, change this thing, rerun this command.

  6. 06

    artifacts

    Build log, .xcresult, generated Swift, any source axint emitted. The full evidence trail, machine-readable.

.axint/fix/latest.json
fix_required
{
  "verdict": "fix_required",
  "confidence": "high",
  "duration_ms": 142000,
  "findings": [
    {
      "code": "AX764",
      "severity": "warning",
      "file": "Sources/Composer/HomeComposer.swift",
      "line": 142,
      "message": "TextField overlay missing .allowsHitTesting(false)",
      "why": "Decorative overlays steal hit-testing from the field.",
      "fix": "Add .allowsHitTesting(false) to the overlay modifier."
    }
  ],
  "ai_repair_prompt": "Open HomeComposer.swift line 142. Add .allowsHitTesting(false) ...",
  "xcode_checklist": [
    "open HomeComposer.swift in Xcode",
    "navigate to line 142",
    "add .allowsHitTesting(false) to the .overlay() modifier",
    "rerun axint run --only-testing testComposerAcceptsInput"
  ],
  "artifacts": {
    "swift": ".axint/run/latest.swift",
    "build_log": ".axint/run/logs/build-2026-05-02T14-32.log",
    "xcresult": ".axint/run/xcresults/HomeComposerUITests.xcresult"
  }
}

the loop your agent runs

No copy-paste.No chat back-and-forth.Just the next move.

$ agent reads .axint/fix/latest.json
$ agent reads ai_repair_prompt
$ agent applies edit at line 142
$ agent reruns axint run --only-testing

✓ ready_to_ship

Want the full schema, the three verdicts, the four access methods? The deep dive on the Fix Packet artifact is its own page.

read the deep dive

the system

Seven layers.One workflow.

axint isn't a transpiler. It's the layer between your AI agent and Apple's contract graph. Three pieces do the work — compiler, validator, Fix Packet. Two pieces let your agent and Xcode talk to it. Two pieces are the ecosystem around it.

01 · core engine

What turns prompts into Apple-native code, what catches what's broken, and what tells your agent how to repair it.

01axint compile

Compiler

Turns TypeScript, Python, or .axint definitions into validated Swift, plist fragments, and entitlements XML.

26 bundled templates

02axint validate-swift

Validator

Catches Apple-specific bugs in your AI's Swift before Xcode does — concurrency, accessibility, modifier order, cross-file types.

204 diagnostics · 33 auto-fix rules

03· the differentiator.axint/fix/latest.json

Fix Packet

When something breaks, axint hands your agent the verdict, the findings, the AI-ready repair prompt, and the Xcode checklist. Not a build log.

agent-readable repair contract

02 · agent interface

How your coding agent and Xcode actually call the engine. No glue code, no bespoke wiring, no copy-paste.

04axint-mcp

MCP server

Lets Claude Code, Cursor, Codex, Xcode, and every other MCP-speaking host call axint directly. No glue code.

35 MCP tools · 5 prompts

05axint xcode setup

Xcode workflow

Notarized Source Editor Extension, project guardrails, drift guard, auto-fix, doctor, packet access — installed in one command.

notarized · 11+ host integrations

03 · ecosystem

Where reusable Apple-native packages live and where hosted validation runs when you can't build locally.

06registry.axint.ai

Registry

Reusable Apple-native packages — install, publish, and verify. GitHub-backed creator identity, bundle hash, compatibility history.

58 live packages

07axint.cloud.check

Cloud Check

Hosted validation with verdict, confidence, and coverage. Pro tier ships saved history, AI repair prompts, and team workspaces.

free tier · pro tier · team tier

Click anywhere on the page to copy the install prompt. Your agent reads the docs, installs the npm package, sets up the MCP server, and starts using all seven layers on every Apple change.

live compile

Three ways in.One Apple-native path out.

axint normalizes agent-authored logic into Apple-native structures, then validates the output before it reaches Xcode.

Pick TypeScript, Python, or the preview .axint format on the left. axint emits the same production App Intent on the right, and the run loop validates, builds, tests, and writes the verdict.

  1. validate

    189 rules · 0 errors

  2. cloud check

    ready_for_build · high confidence

  3. xcodebuild

    build succeeded · 12.4s

  4. test

    5 passed · 0 failed

  5. verdict

    ready_to_ship

LogWater.intent.ts
input · TypeScript
import { defineIntent, param } from "@axint/compiler";

export default defineIntent({
  name: "LogWater",
  title: "Log water",
  description: "Add a glass to today's hydration log.",
  params: {
    amount: param.measurement({ unit: "fluid_ounce" }),
  },
  perform: async ({ amount }) => {
    await HealthStore.shared.logWater(amount);
    return { logged: true };
  },
});
LogWater.swift
validate · 189 rules · 0 errors
.axint/run/latest.md
run console
$ axint run --scheme MyApp --agent codex
swift validate ✓ pass · 189 rules · 0 errors

axint also emits the Info.plist fragment, the entitlements XML, and the privacy manifest strings — written alongside .axint/run/latest.md for the next agent pass.

the necessity

Apple development is exact.Agent output is probabilistic.

axint is the control layer between them. Without it, your AI ships Swift that compiles, runs, and goes to App Review — and then falls apart in ways you can't see. With it, every Apple change runs the same loop.

without axint · the manual loop

  1. xcode error
  2. copy
  3. chat
  4. paste
  5. retry
  6. new error

Xcode yells. The user copies the error into chat. The agent guesses a patch. The user pastes it. Build fails again. The loop is human-mediated, slow, and lossy.

with axint · the agent loop

  1. xcode error
  2. fix packet
  3. agent repair
  4. verify
  5. ready_to_ship

Xcode fails. axint writes the Fix Packet. The agent reads the verdict, applies the change at the named line, and reruns. No copy-paste. No chat. The loop closes itself.

four real failure modes the loop closes for you

App Review rejects three weeks later

Missing NSCameraUsageDescription. Build was green. App worked on your Mac. You don't know what changed.

axint emits the privacy strings

Your intent declares camera use. axint writes the Info.plist fragment, the entitlement, and the localized usage description.

Your widget never updates

TimelineProvider returned the wrong reload policy. Widget renders once, then sits frozen. No error in Xcode.

axint validates the timeline contract

Schema check verifies the provider matches the family, the policy is sane, the entries serialize.

Live Activity dies in five seconds

ContentState had a non-Codable field. ActivityKit silently fails to encode. User assumes the app is broken.

axint validates the activity state

AX740-AX749 catch non-Codable types, missing attributes, Dynamic Island sizing — before the activity launches.

Build green but the focused test never ran

Agent claimed ready_to_ship. xcodebuild build returned 0. User opens the app to a blank white screen.

axint refuses to write ready_to_ship

Run loop captures the focused test result. Returns evidence_required if it never executed. Agent reads, retries.

install once. let axint do the rest.

204 diagnostics

204 diagnosticsbefore Xcode yells at you.

Eight diagnostics for broken agent-authored Apple code, picked from 204 shipping today. 33 auto-fix. The rest hand your agent a repair packet pointing at the fix — file, line, reason, change.

AX764auto-fix

TextField overlay missing .allowsHitTesting(false)

App launches. Field renders. Won't accept typing or focus.

Auto-fix adds .allowsHitTesting(false) to the decorative overlay.

AX720repair packet

DispatchQueue.main.async under Swift 6

Build succeeds with deprecation warning. Concurrency hazard waiting for a stack trace.

Repair packet rewrites as Task { @MainActor in }, or strips the wrapper inside SwiftUI lifecycle.

AX731repair packet

Task captures self without [weak self]

Memory leak. Task holds the view alive after dismissal.

Repair packet adds [weak self] to the closure capture list.

AX735repair packet

@Observable hides router behind @ObservationIgnored

View doesn't update on navigation change. Tabs don't switch. Sheets don't dismiss.

Repair packet removes @ObservationIgnored or routes through a published wrapper.

AX741repair packet

Live Activity ContentState has non-Codable field

Activity launches, then disappears in five seconds. ActivityKit fails silently.

Repair packet swaps in a Codable primitive or a struct that conforms.

AX780repair packet

Top-level struct declared in two files

'Invalid redeclaration of FlowLayout' and 'ambiguous use of init(spacing:).'

Validator names both files. Repair packet renames or merges.

AX781repair packet

Optional value passed to non-optional parameter

parseHex(brand.primaryColorHex) compiles alone, fails on cross-file unwrap.

Caught before xcodebuild. Repair packet unwraps with if let, ??, or accepts the optional.

Cloudrepair packet

Build green, focused UI test never ran

Agent claims ready_to_ship. App opens to a blank screen because the test was skipped.

axint refuses ready_to_ship. Returns evidence_required until the focused test passes.

plus 196 more across compiler, validator, Xcode workflow, registry, and Cloud Check

see all 204 rules

what it generates

Eight Apple surfaces.One definition each.

These are the building blocks of every iOS, macOS, watchOS, and visionOS app. Click each one to see what you write — and what axint emits.

surface

App Intent

How Siri, Shortcuts, and Apple Intelligence call into your app.

"Hey Siri, log a glass of water."

used for · Voice actions · Shortcuts automations · Apple Intelligence suggestions

you writeany of TS · py · .axint
defineIntent({
  name: "LogWater",
  title: "Log water",
  description: "Add a glass to today's hydration log.",
  params: {
    amount: param.measurement({ unit: "fluid_ounce" }),
  },
  perform: async ({ amount }) => {
    await HealthStore.shared.logWater(amount);
    return { logged: true };
  },
});
axint emitsSwift
import AppIntents

struct LogWater: AppIntent {
  static let title: LocalizedStringResource = "Log water"
  @Parameter(title: "Amount")
  var amount: Measurement<UnitVolume>
  func perform() async throws -> some IntentResult {
    try await HealthStore.shared.logWater(amount)
    return .result()
  }
}

plus the Info.plist fragments, entitlements, and privacy strings Apple requires alongside it

the run loop

From your prompt
to a ready-to-ship verdict.

One command runs the whole pipeline. No build logs to copy into chat. No verdicts pulled out of thin air. Each stage writes a real artifact your agent reads.

01

validate

189 Apple-specific rules

artifact

axint.swift.validate

Concurrency, accessibility, modifier order, cross-file types. 33 with auto-fix.

02

cloud check

static + project context

artifact

.axint/cloud/latest.json

Verdict + confidence + coverage. Repair packet if anything fails.

03

xcodebuild

real build, not a vibe

artifact

build log

Captures every Xcode warning and error. Parses .xcresult bundles.

04

test

focused or full suite

artifact

.xcresult

Pulls failing test names and assertions back as repair signals.

05

verdict

ready_to_ship · fix_required · evidence_required

artifact

.axint/run/latest.md

One file the agent reads. No build logs to parse, no guesses.

what your agent reads

Not a build log. Not a wall of warnings. One file — .axint/run/latest.md — written in language the next pass can act on.

# axint run report — 2026-05-02 14:32

result: fix_required
duration: 142s

✓ swift validate         pass
✓ cloud check            pass · high confidence
✓ xcodebuild build       pass
✗ xcodebuild test        fail
   testComposerAcceptsInput · HomeComposerUITests.swift:42
   expected true · got false · element not focusable

next axint action:
   axint repair "composer field rejects focus" \
     --source HomeComposerUITests.swift --platform ios

likely cause:
   AX764 candidate · TextField overlay missing
   .allowsHitTesting(false). Validator did not flag it
   because the overlay was added after the last validate.

install

Point your AI
at the docs.

No config files to copy. No env vars to set. No SDK to scaffold. Tell your agent one thing and it does the rest.

click anywhere to copy

01

your agent reads the docs

Reads docs.axint.ai end to end. Learns the workflow gates, the run loop, the artifact vocabulary, and the host-specific install path.

02

your agent installs the package

Runs npm install -g @axint/compiler. Sets up the MCP server inside whatever host it's running in. Initializes the .axint/ truth layer.

03

every Apple change goes through axint

Validate, Cloud Check, run, repair, coordinate. The agent now writes Swift the way a senior engineer would — with proof artifacts your team can audit.

works with

  • Claude Code
  • Claude Desktop
  • Cursor
  • Codex
  • VS Code
  • Windsurf
  • Xcode
  • Antigravity
  • Zed
  • JetBrains
  • Neovim

numbers, not adjectives

What axint is,
in counts.

Verifiable against the source. If you can find a different number on the repo, file an issue — the number on this page is wrong.

MCP tools

0

diagnostics

0

auto-fix rules

0

tests

0

templates

0

live packages

0

editor integrations

11+

license

Apache-2.0

The compiler is open-source on GitHub. The npm package is @axint/compiler. The registry runs at registry.axint.ai. Every count above is reproducible from the source.