{"id":48541969,"url":"https://github.com/agenticempire/axint","last_synced_at":"2026-05-06T09:03:07.183Z","repository":{"id":349903289,"uuid":"1201270874","full_name":"agenticempire/axint","owner":"agenticempire","description":"Axint turns TypeScript and Python into validated Swift for Apple-native features.","archived":false,"fork":false,"pushed_at":"2026-05-03T04:04:55.000Z","size":2146,"stargazers_count":6,"open_issues_count":7,"forks_count":1,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-03T05:28:17.140Z","etag":null,"topics":["ai-agents","app-intents","apple","code-generation","compiler","developer-tools","ios","ipados","macos","mcp","open-source","shortcuts","siri","swift","swiftui","typescript","visionos","watchos"],"latest_commit_sha":null,"homepage":"https://axint.ai","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/agenticempire.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":".github/CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"github":["agenticempire"]}},"created_at":"2026-04-04T12:55:48.000Z","updated_at":"2026-05-03T04:04:57.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/agenticempire/axint","commit_stats":null,"previous_names":["agenticempire/axint"],"tags_count":27,"template":false,"template_full_name":null,"purl":"pkg:github/agenticempire/axint","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agenticempire%2Faxint","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agenticempire%2Faxint/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agenticempire%2Faxint/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agenticempire%2Faxint/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/agenticempire","download_url":"https://codeload.github.com/agenticempire/axint/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/agenticempire%2Faxint/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32686247,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-06T08:33:17.875Z","status":"ssl_error","status_checked_at":"2026-05-06T08:33:17.221Z","response_time":117,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai-agents","app-intents","apple","code-generation","compiler","developer-tools","ios","ipados","macos","mcp","open-source","shortcuts","siri","swift","swiftui","typescript","visionos","watchos"],"created_at":"2026-04-08T05:01:36.704Z","updated_at":"2026-05-06T09:03:07.177Z","avatar_url":"https://github.com/agenticempire.png","language":"TypeScript","funding_links":["https://github.com/sponsors/agenticempire"],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/assets/mark-dark.svg\" alt=\"Axint mark\" width=\"52\" height=\"52\" valign=\"middle\" /\u003e\n  \u0026nbsp;\n  \u003cimg src=\"docs/assets/wordmark-dark.svg\" alt=\"Axint\" height=\"32\" valign=\"middle\" /\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eAxint is the compiler and repair loop for agent-built Apple-native software.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  Author in TypeScript, Python, or the preview \u003ccode\u003e.axint\u003c/code\u003e surface.\u003cbr\u003e\n  Emit ordinary Swift, validate Apple-specific rules, and hand agents a repair packet when something needs work.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://www.npmjs.com/package/@axint/compiler\"\u003e\u003cimg src=\"https://img.shields.io/npm/v/@axint/compiler?color=f05138\u0026label=npm\" alt=\"npm\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/agenticempire/axint/blob/main/LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-Apache%202.0-blue\" alt=\"License\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/agenticempire/axint/actions/workflows/ci.yml\"\u003e\u003cimg src=\"https://github.com/agenticempire/axint/actions/workflows/ci.yml/badge.svg\" alt=\"CI\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://glama.ai/mcp/servers/agenticempire/axint\"\u003e\u003cimg src=\"https://glama.ai/mcp/servers/agenticempire/axint/badges/score.svg\" alt=\"axint MCP server\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://axint.ai\"\u003e\u003cimg src=\"https://img.shields.io/badge/playground-axint.ai-7c3aed\" alt=\"Playground\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://axint.ai\"\u003eWebsite\u003c/a\u003e ·\n  \u003ca href=\"https://axint.ai/#playground\"\u003ePlayground\u003c/a\u003e ·\n  \u003ca href=\"#create-a-wow-starter\"\u003eCreate App\u003c/a\u003e ·\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e ·\n  \u003ca href=\"#mcp-server\"\u003eMCP Server\u003c/a\u003e ·\n  \u003ca href=\"https://docs.axint.ai\"\u003eDocs\u003c/a\u003e ·\n  \u003ca href=\"https://registry.axint.ai\"\u003eRegistry\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"media/intro.gif\" alt=\"axint loop — compile, validate, fix packet, repair, ship\" width=\"640\" /\u003e\n\u003c/p\u003e\n\n---\n\n## The loop\n\nAxint exists because Apple-native software is becoming a set of structured system\ncapabilities: App Intents, Siri, Shortcuts, Spotlight, widgets, SwiftUI views,\nprivacy copy, entitlements, and generated metadata.\n\nGeneral coding agents can produce Swift. Axint makes them operate through a\nsmaller contract, validates the Apple-specific parts, and writes a repair\nartifact the next agent run can use.\n\n```\nfeature definition\n  → Axint IR\n  → Swift + plist + entitlements\n  → local or Cloud Check verdict\n  → project-aware repair plan\n  → Fix Packet\n  → agent repair\n  → rerun\n```\n\nThe compiler is useful on its own. Registry and Cloud extend the same workflow:\n\n- **Compiler** — open-source TypeScript/Python/preview `.axint` to Apple-native Swift.\n- **Fix Packet** — `latest.check.*` for the quick verdict, `latest.*` for the full repair contract.\n- **Repair** — `axint repair` indexes the existing Apple project, ranks likely files, classifies build/UI/runtime evidence, and returns the smallest patch/proof loop.\n- **MCP** — agents call compile, validate, fix, schema compile, templates, and packet tools directly.\n- **Registry** — install reusable Apple capabilities with source, compiler metadata, and package details attached.\n- **Cloud Check + feedback** — free hosted validation for quick results; signed-in Pro checks add the AI-ready repair prompt, history, and a shareable report. Privacy-safe feedback packets help Axint learn repeated Apple failure modes without shipping source code.\n\n[Read the thesis](https://axint.ai/thesis) · [Open proof](https://axint.ai/proof) · [View Fix Packet](https://axint.ai/fix-packet)\n\n---\n\n## License and trademarks\n\nAxint is open-source software licensed under Apache-2.0. The Axint name,\nwordmark, axis mark, logo, hosted service names, domains, and related Agentic\nEmpire brand assets are not licensed for use by forks or unaffiliated products.\n\nForks are welcome under the Apache-2.0 license, but they should use distinct\nnames and branding. See [NOTICE](NOTICE) and [TRADEMARKS.md](TRADEMARKS.md).\n\n---\n\n## Why Axint\n\nApple's API surfaces — App Intents, SwiftUI, WidgetKit — are verbose and\ncontract-heavy. A single widget needs a TimelineEntry, a TimelineProvider, an\nEntryView, and a Widget struct before you've written a line of business logic.\nAn App Intent needs parameters, metadata, privacy assumptions, and Swift that\nfits Apple's expectations.\n\nAxint gives agents and developers a smaller authoring surface. One\n`defineIntent()` call can replace the intent boilerplate an agent would otherwise\nregenerate token by token. One `defineWidget()` can replace the WidgetKit stack.\nThe compiler handles the struct conformances, `@Parameter` wrappers,\n`LocalizedStringResource` literals, plist fragments, entitlements, diagnostics,\nand repair artifacts around the generated Swift.\n\nFour surfaces, one pipeline:\n\n```\ndefineIntent()  →  App Intent for Siri \u0026 Shortcuts\ndefineView()    →  SwiftUI view\ndefineWidget()  →  WidgetKit widget\ndefineApp()     →  Full app scaffold\n```\n\nThe result: teams and AI tools can author Apple-native features in a smaller\nsurface than hand-written Swift, inspect ordinary generated Swift when it\nmatters, then use Axint Check and Fix Packets to keep the repair loop grounded in\nthe same facts.\n\n---\n\n## Quick start\n\n### Create a wow starter\n\nIf you want the fastest shareable proof path, start here:\n\n```bash\nnpx -y -p @axint/compiler create-axint-app apple-day-agent\ncd apple-day-agent\nnpm run proof\nopen share/built-with-axint.html\n```\n\nThis creates a premium Apple-native mini app instead of a blank scaffold:\n\n- `intents/create-event.ts` is the App Intent source contract.\n- `intents/create-reminder.ts` and `intents/check-weather.ts` add two more Apple capabilities.\n- `.axint/agent-prompts/` gives Codex, Claude Code, and Cursor the exact proof loop.\n- `ios/App/DayDashboardView.swift` gives the starter a real SwiftUI app shell.\n- `.axint/run/latest.md` starts the durable proof trail.\n- `share/built-with-axint.html` gives you an interactive browser preview with the generated app shell, contracts, Swift, and proof.\n\nThe point is to make the first run feel real: agent writes Apple-native\ncontracts, Axint compiles multiple capabilities, validates them, renders a\nusable app preview, and hands the agent a repair path when something breaks.\n\n```bash\nnpm install -g @axint/compiler\n\n# initialize Axint inside an existing Apple/Xcode project\naxint init --apple-project /path/to/MyApp --agent codex\n\n# compile a single file\naxint compile my-intent.ts --out ios/Intents/\n\n# or pipe to stdout\nnpx -y -p @axint/compiler axint compile my-intent.ts --stdout\n```\n\n### Intent\n\n```typescript\nimport { defineIntent, param } from \"@axint/compiler\";\n\nexport default defineIntent({\n  name: \"CreateEvent\",\n  title: \"Create Calendar Event\",\n  description: \"Creates a new event in the user's calendar.\",\n  domain: \"productivity\",\n  params: {\n    title: param.string(\"Event title\"),\n    date: param.date(\"Event date\"),\n    duration: param.duration(\"Event duration\", { default: \"1h\" }),\n    location: param.string(\"Location\", { required: false }),\n  },\n});\n```\n\n### View\n\n```typescript\nimport { defineView, prop, state, view } from \"@axint/compiler\";\n\nexport default defineView({\n  name: \"EventCard\",\n  props: {\n    title: prop.string(),\n    date: prop.date(),\n  },\n  state: {\n    isExpanded: state.boolean(false),\n  },\n  body: [\n    view.vstack({ alignment: \"leading\", spacing: 8 }, [\n      view.text(\"entry.title\"),\n      view.conditional(\"isExpanded\", [view.text(\"entry.date\")]),\n    ]),\n  ],\n});\n```\n\n### Widget\n\n```typescript\nimport { defineWidget, entry, view } from \"@axint/compiler\";\n\nexport default defineWidget({\n  name: \"EventCountdown\",\n  displayName: \"Event Countdown\",\n  description: \"Shows time until the next event.\",\n  families: [\"systemSmall\", \"systemMedium\"],\n  entry: {\n    eventName: entry.string(\"Untitled\"),\n    minutesUntil: entry.int(0),\n  },\n  body: [\n    view.vstack({ alignment: \"center\", spacing: 4 }, [\n      view.text(\"entry.eventName\"),\n      view.text(\"entry.minutesUntil\"),\n    ]),\n  ],\n});\n```\n\n### App\n\n```typescript\nimport { defineApp, scene, storage } from \"@axint/compiler\";\n\nexport default defineApp({\n  name: \"WeatherApp\",\n  scenes: [\n    scene.windowGroup(\"WeatherDashboard\"),\n    scene.settings(\"SettingsView\", { platform: \"macOS\" }),\n  ],\n  appStorage: {\n    useCelsius: storage.boolean(\"use_celsius\", true),\n    lastCity: storage.string(\"last_city\", \"Cupertino\"),\n  },\n});\n```\n\nCompile any surface the same way:\n\n```bash\naxint compile my-intent.ts --out ios/Intents/\naxint compile my-view.ts --out ios/Views/\naxint compile my-widget.ts --out ios/Widgets/\naxint compile my-app.ts --out ios/App/\n```\n\n### Repair an existing Apple app\n\nWhen the Swift already exists and something subtle breaks, use the project-aware\nrepair loop instead of asking an agent to guess from one file:\n\n```bash\naxint project index --changed Sources/HomeComposer.swift Sources/FeedScreen.swift\n\naxint repair \"comment box is visible but cannot be tapped\" \\\n  --source Sources/HomeComposer.swift \\\n  --platform ios \\\n  --actual \"visible composer no longer accepts focus or typing\" \\\n  --agent codex\n\naxint feedback latest --format markdown\naxint feedback status\n```\n\n`axint repair` writes `.axint/repair/latest.*` and a privacy-safe\n`.axint/feedback/latest.json` packet. The feedback packet includes project shape,\ndiagnostic codes, issue class, redacted evidence, and likely Axint product owner,\nbut not source code.\n\nAxint also queues source-free feedback automatically when Cloud Check, Run, or\nRepair finds an Axint learning signal. The default endpoint is\n`https://registry.axint.ai/api/v1/feedback`; packets declare\n`source_not_included`, never include source by default, and can be turned off with\n`axint feedback opt-out`, `AXINT_FEEDBACK=off`, or `AXINT_DISABLE_FEEDBACK=1`.\nUse `axint feedback list` on a maintainer inbox to cluster imported edge cases\ninto the next Axint fixes.\n\nAxint also sends a tiny source-free adoption heartbeat so the project can see\nwhich install paths are actually working: CLI command class, MCP tool name,\nversion, coarse host hint, OS family, Node major version, CI flag, and a random\nanonymous install ID. It never sends source code, prompts, generated Swift,\narguments, file names, local paths, credentials, or machine IDs. Inspect it with\n`axint telemetry status`, turn it off with `axint telemetry opt-out`, or disable\nit per process with `AXINT_TELEMETRY=off` / `AXINT_DISABLE_TELEMETRY=1`.\n\nThe same senior repair read is shared by `axint.suggest`, `axint.feature`,\n`axint.cloud.check`, and `axint.repair`. If a prompt describes a broken existing\nSwiftUI flow, Axint routes toward the smallest repair/proof loop instead of\ngenerating a replacement screen. New-component prompts can still reference\nexisting app types as context without being blocked.\n\nWhen MCP transport is stale or closed, use `axint suggest \u003capp-description\u003e` as\nthe CLI fallback, then continue the same workflow check with `--ran-suggest`.\n\n---\n\n## Public truth\n\n\u003c!-- truth:readme-proof-line:start --\u003ev0.4.26 · 35 MCP tools + 5 prompts · 204 diagnostic codes · 1307 tests · 58 live packages · 26 bundled templates\u003c!-- truth:readme-proof-line:end --\u003e\n\n\u003c!-- truth:readme-truth-source:start --\u003ePublic proof is generated from `../public-truth/public-truth.json` via `npm --prefix .. run truth:sync`.\u003c!-- truth:readme-truth-source:end --\u003e\n\nIf release numbers, diagnostics, package counts, or MCP surfaces change, update the canonical truth layer and re-run the sync instead of editing proof values by hand.\n\n---\n\n## Watch mode\n\nRecompiles on every save with 150ms debounce, inline errors, and optional `swift build` after each successful compile:\n\n```bash\naxint watch ./intents/ --out ios/Intents/ --emit-info-plist --emit-entitlements\naxint watch my-intent.ts --out ios/Intents/ --format --swift-build\n```\n\n---\n\n## Axint Run\n\n`axint run` is the local/BYO-Mac build loop for Apple projects. It exists so agents do not have to remember separate Axint steps after a long chat or context compaction.\n\n```bash\naxint session start --dir /path/to/MyApp --name MyApp --agent codex\naxint workflow check --dir /path/to/MyApp --agent codex --stage context-recovery --session-token \u003ctoken\u003e --read-rehydration-context --read-agent-instructions --read-docs-context --ran-status\naxint xcode setup --agent claude --guarded --project /path/to/MyApp --name MyApp\naxint xcode setup --agent claude --guarded --local-build --project /path/to/MyApp --name MyApp\naxint xcode guard --dir /path/to/MyApp --stage context-recovery\naxint agent install --dir /path/to/MyApp --agent codex\naxint agent advice --dir /path/to/MyApp --agent codex --changed Sources/HomeComposer.swift Tests/HomeComposerUITests.swift\naxint memory index --dir /path/to/MyApp --changed Sources/HomeComposer.swift Tests/HomeComposerUITests.swift\naxint run --dir /path/to/MyApp --agent codex --scheme MyApp --destination \"platform=macOS\"\naxint run --dir /path/to/MyApp --agent codex --scheme MyApp --changed Sources/HomeComposer.swift --only-testing MyAppUITests/MyAppUITests/testComposerStillAcceptsInput\naxint run --dir /path/to/MyApp --agent codex --scheme MyApp --runtime\naxint run status --dir /path/to/MyApp\naxint run cancel --dir /path/to/MyApp --id axrun_...\naxint run --dir /path/to/MyApp --agent codex --scheme MyApp --format json\naxint run --dir /path/to/MyApp --agent codex --scheme MyApp --format json --include-source\naxint runner once --dir /path/to/MyApp --agent codex --scheme MyApp\n```\n\n`axint xcode setup --guarded` configures the Xcode Claude Agent with durable MCP paths, writes the project memory pack, starts a session, and creates `.axint/guard/latest.json` plus `.axint/guard/latest.md`. That guard report is the audit trail for the problem where an Xcode agent works for a long block, compacts context, and silently stops using Axint.\n\nUse `--local-build` only while dogfooding this checkout before publishing; it points Xcode at the built local MCP server instead of the npm package.\n\nAgent lanes are explicit now. Codex, Claude Code, Cursor, and Cowork should use their native patch/edit tools for existing files, then run `axint workflow check`, `axint validate-swift`, `axint cloud check`, and `axint run`. Xcode-hosted agents can use `axint.xcode.guard` and `axint.xcode.write` because those tools create real Xcode guard proof.\n\nWhen an Xcode MCP agent is creating a new Swift file, use `axint.xcode.write` instead of a raw file write. The tool writes inside the project root, validates Swift, runs Cloud Check, and updates the guard proof in one call. Outside Xcode, do not route routine edits through `axint.xcode.write`; patch surgically in the active client and let Axint validate the result.\n\nThe run starts an agent-specific Axint session, refreshes the project recovery context, validates changed Swift, runs Cloud Check, executes `xcodebuild build` and `xcodebuild test`, optionally launches a macOS app for runtime proof, writes `.axint/run/latest.json` plus `.axint/run/latest.md`, and stores source-free Cloud learning packets under `.axint/feedback` when repeated failure shapes appear. Passing focused `--only-testing` selectors are fed back into Cloud Check so stale UI/accessibility warnings do not override real focused test proof. Failing Xcode tests are extracted from command output and `.xcresult` when available, then printed under `## Xcode Test Failures` with test name, file/line, assertion, likely source area, and identifier so the next repair starts from the real failure.\n\n`axint memory index` turns the local proof trail into `.axint/memory/latest.json` and `.axint/memory/latest.md`. It summarizes risky SwiftUI files, changed files, latest run status, failing tests, latest repair packet, and privacy-safe learning packets so Codex, Claude, Cursor, Xcode, and humans can rehydrate the same project state.\n\nFor a repeatable first-use demo, inspect `examples/wow/composer-blocker`. It models a real SwiftUI bug where an invisible overlay blocks a composer text field and includes a focused UI-test failure for Axint to diagnose.\n\nLong runs also write `.axint/run/jobs/\u003cid\u003e.json` and `.axint/run/latest-active.json`. If a client disconnects, an MCP transport times out, or an agent needs to rejoin a build in the same thread, use `axint run status` to see active process IDs and `axint run cancel` to stop the child process group without restarting the whole chat.\n\nRendered `axint run --format json` is compact by default: it keeps verdict, evidence, diagnostics, artifact paths, feedback packet paths, and next actions visible while omitting full Swift source and trimming long command output. Use `--include-source` only when the active agent explicitly needs inline Swift/code output in the response.\n\nAgent-token safety is also built into the default run loop. `axint run` keeps full command logs on disk under `.axint/run/logs`, while the agent-facing report keeps compact tails and artifact paths. If you omit `--changed`, Axint validates the project but Cloud Checks only the highest-risk Swift files instead of pushing every source file into the next agent turn. Pass `--changed \u003cfiles\u003e` when you want a focused full proof loop.\n\nThe MCP tool listing is compact by default for the same reason: agents receive tool names, schemas, enums, and short summaries instead of the full prose-heavy manifest. Set `AXINT_MCP_MANIFEST_MODE=full` or `AXINT_MCP_FULL_MANIFEST=1` only when debugging tool documentation.\n\nUse `--dry-run` to prove the harness and planned `xcodebuild` commands before letting a local or BYO Mac runner execute the job.\n\nIf an MCP client still lists Axint tools after the transport has closed, use the CLI fallback instead of restarting the whole thread:\n\n```bash\naxint workflow check --dir /path/to/MyApp --agent codex --stage pre-build --session-token \u003ctoken\u003e --ran-swift-validate --ran-cloud-check --modified Sources/HomeComposer.swift\n```\n\nThis open-source repository does not include the proprietary hosted Axint Cloud control plane: job queues, Mac fleet orchestration, billing, signed-in Pro entitlements, stored report history, or learning pipelines live outside the compiler package.\n\n---\n\n## Same-thread upgrades\n\nAgent sessions should not have to restart from scratch just because Axint shipped a new version. Use the upgrade flow inside Codex, Claude, Xcode, or any MCP client to check the latest package, install it when ready, refresh optional Xcode wiring, and write a continuation packet under `.axint/upgrade/latest.*`.\n\n```bash\naxint upgrade\naxint upgrade --apply\naxint upgrade --apply --xcode-install\naxint upgrade --target 0.4.12 --apply\n```\n\nFrom MCP, call `axint.upgrade`. The tool returns the exact command plan plus a same-thread prompt that tells the agent to keep the current conversation, reload or reconnect only the Axint MCP server/tool process, then call `axint.status` to prove the running version before editing code.\n\n---\n\n## MCP server\n\n\u003c!-- truth:readme-mcp-support:start --\u003eAxint ships an MCP server for Claude Desktop, Claude Code, Cursor, Codex, VS Code, Windsurf, Xcode, and any MCP client.\u003c!-- truth:readme-mcp-support:end --\u003e\n\n\u003c!-- truth:readme-mcp-json:start --\u003e```json\n{\n  \"mcpServers\": {\n    \"axint\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\",\n        \"-p\",\n        \"@axint/compiler\",\n        \"axint-mcp\"\n      ]\n    }\n  }\n}\n```\u003c!-- truth:readme-mcp-json:end --\u003e\n\nMCP tools and built-in prompts:\n\n| Tool | What it does |\n| --- | --- |\n| `axint.status` | Report the running MCP server version, package path, uptime, and same-thread reload/update instructions |\n| `axint.upgrade` | Check or apply an Axint upgrade, refresh optional Xcode wiring, and return a same-thread continuation prompt |\n| `axint.doctor` | Audit version truth, Node/npm/npx paths, project MCP wiring, and agent start-pack files |\n| `axint.xcode.guard` | Guard Xcode agent sessions against context compaction and Axint drift, then write `.axint/guard/latest.*` proof artifacts |\n| `axint.xcode.write` | Write a project file through Axint, then validate Swift, run Cloud Check, and update guard proof for Swift files |\n| `axint.session.start` | Start an enforced agent session, refresh `.axint/AXINT_REHYDRATE.md`, write `.axint/session/current.json`, and return the token required by workflow gates |\n| `axint.compile` | Full pipeline: TypeScript → Swift + plist + entitlements |\n| `axint.schema.compile` | Minimal JSON → Swift (token-saving mode for agents) |\n| `axint.validate` | Dry-run validation with diagnostics |\n| `axint.feature` | Generate an editable feature package: intents, views, widgets, components, app shells, stores, tests, and support fragments |\n| `axint.project.pack` | Generate `.mcp.json`, `AGENTS.md`, `CLAUDE.md`, `.axint` rehydration/memory/docs/project files, and the session-first workflow for first-try agent setup |\n| `axint.project.index` | Scan the local Apple project and write a compact `.axint/context` pack so Cloud Check can reason over changed files and nearby SwiftUI surfaces |\n| `axint.project.syncVersion` | Refresh Axint-owned project-pack version hints after an upgrade so local agent truth does not point at an older package |\n| `axint.context.memory` | Return the compact Axint operating memory for new chats and context-compaction recovery |\n| `axint.context.docs` | Return the project-local Axint docs context so agents can reload docs after compaction |\n| `axint.suggest` | Suggest app-specific Apple-native features, reusable components, and shared stores from a product description |\n| `axint suggest` | CLI fallback for the same suggestion pass when MCP transport is stale, closed, or unavailable |\n| `axint.registry.search` | Search the Axint Registry for already-published packages that match a natural-language query — call this before `axint.feature` so agents install existing packages instead of regenerating Swift the community has shipped |\n| `axint.workflow.check` | Check whether an agent rehydrated Axint after compaction, has an active session token, and used suggest, feature, swift.validate, cloud.check, and Xcode proof before moving on |\n| `axint workflow check` | CLI fallback for the same workflow gate when MCP is stale, closed, or unavailable |\n| `axint.scaffold` | Generate a starter TypeScript intent from a description |\n| `axint.swift.validate` | Validate existing Swift against build-time rules |\n| `axint.swift.fix` | Auto-fix mechanical Swift errors (concurrency, Live Activities) |\n| `axint.fix-packet` | Read the latest AI-ready repair packet from a local compile or watch run |\n| `axint.cloud.check` | Run an agent-callable Cloud Check report against Swift or TypeScript source |\n| `axint.repair` | Plan a project-aware Apple repair loop for existing app bugs, with likely files, root causes, host-aware patch guidance, proof commands, and feedback packet |\n| `axint.feedback.create` | Create or read a privacy-safe, source-free feedback packet |\n| `axint feedback status / opt-out / opt-in / sync / list` | Manage automatic source-free feedback, opt out, retry queued packets, and cluster imported feedback into Axint fix queues |\n| `axint telemetry status / opt-out / opt-in` | Inspect and manage source-free adoption telemetry for CLI and MCP usage |\n| `axint.agent.install` | Install the local multi-agent project brain so Codex, Claude, Cursor, Xcode, and humans share one `.axint` truth layer |\n| `axint.agent.advice` | Return host-specific next moves from project context, active claims, latest proof, and latest repair artifacts |\n| `axint.agent.claim` | Claim files before an agent edits them so other agents avoid conflicting patches |\n| `axint.agent.release` | Release local file claims after an agent finishes or abandons a task |\n| `axint.run` | Run the enforced Apple build loop: session, workflow gate, Swift validation, Cloud Check, xcodebuild build/test, optional runtime launch, and `.axint/run` artifacts |\n| `axint.run.status` | Read the latest or selected Axint run job, including active child process IDs, after client disconnects or long-running builds |\n| `axint.run.cancel` | Cancel the latest or selected active Axint run by stopping child process groups |\n| `axint.tokens.ingest` | Convert design tokens into SwiftUI token enums for generated views |\n| `axint.templates.list` | List bundled reference templates |\n| `axint.templates.get` | Return the source of a specific template |\n\nBuilt-in prompts:\n\n| Prompt | What it does |\n| --- | --- |\n| `axint.project-start` | Start an Xcode/Apple project by reading the docs, verifying MCP, and establishing the check/fix loop |\n| `axint.context-recovery` | Recover Axint after a new chat, context compaction, or long coding drift |\n| `axint.quick-start` | Get a quick-start guide |\n| `axint.create-intent` | Start a new intent from guided parameters |\n| `axint.create-widget` | Start a new widget from guided parameters |\n\n`axint.schema.compile` is the key optimization — agents send ~20 tokens of JSON and get compiled Swift back directly, skipping TypeScript entirely.\n\n\u003c!-- truth:readme-discovery-links:start --\u003eNeed a working repo instead of a raw snippet? Browse **[axint-examples](https://github.com/agenticempire/axint-examples)**. Still seeing older package names like `@axintai/compiler`? Use the current package identity: `@axint/compiler`.\u003c!-- truth:readme-discovery-links:end --\u003e\n\n---\n\n## Diagnostics\n\nDiagnostic codes across the validator surface with fix suggestions and color-coded output:\n\n| Range | Domain |\n| --- | --- |\n| `AX000`–`AX023` | Compiler / Parser |\n| `AX100`–`AX113` | Intent |\n| `AX200`–`AX202` | Swift output |\n| `AX300`–`AX322` | View |\n| `AX400`–`AX422` | Widget |\n| `AX500`–`AX522` | App |\n| `AX700`–`AX750` | Swift build rules |\n| `AX720`–`AX737` | Swift 6, SwiftUI, and accessibility checks |\n| `AX740`–`AX749` | Live Activities |\n\n```text\nerror[AX100]: Intent name \"sendMessage\" must be PascalCase\n  --\u003e src/intents/messaging.ts:5:9\n   = help: rename to \"SendMessage\"\n````\n\nFull reference: [`docs/ERRORS.md`](docs/ERRORS.md)\n\n---\n\n## Type mappings\n\n| TypeScript    | Swift                       | Default value |\n| ------------- | --------------------------- | ------------- |\n| `string`      | `String`                    | ✓             |\n| `int`         | `Int`                       | ✓             |\n| `double`      | `Double`                    | ✓             |\n| `float`       | `Float`                     | ✓             |\n| `boolean`     | `Bool`                      | ✓             |\n| `date`        | `Date`                      | —             |\n| `duration`    | `Measurement\u003cUnitDuration\u003e` | ✓ (`\"1h\"`)    |\n| `url`         | `URL`                       | —             |\n| `optional\u003cT\u003e` | `T?`                        | ✓             |\n\n---\n\n## Playground\n\nNo install required — [axint.ai/#playground](https://axint.ai/#playground) runs the same compiler in a server-backed playground, returning Swift live without a local install.\n\n---\n\n## Editor extensions\n\nExtensions for [Claude Code](extensions/claude-code), [Claude Desktop](extensions/claude-desktop), [Codex](extensions/codex), [VS Code / Cursor](extensions/vscode), [Windsurf](extensions/windsurf), [JetBrains](extensions/jetbrains), [Neovim](extensions/neovim), and [Xcode](extensions/xcode).\n\n---\n\n## Project structure\n\n```text\naxint/\n├── src/\n│   ├── core/        # Parser, validator, generator, compiler, IR\n│   ├── sdk/         # defineIntent(), defineView(), defineWidget(), defineApp()\n│   ├── mcp/         # MCP server and prompt surface\n│   ├── cli/         # CLI (compile, watch, validate, eject, init, xcode)\n│   └── templates/   # Bundled reference templates\n├── python/          # Python SDK\n├── extensions/      # Editor extensions (9 editors)\n├── spm-plugin/      # Xcode SPM build plugin\n├── tests/           # Compiler, CLI, SDK, MCP, and Python coverage\n├── examples/        # Example definitions\n└── docs/            # Error reference, assets\n```\n\n---\n\n## What's next\n\nCurrent priorities — full roadmap in [`ROADMAP.md`](ROADMAP.md):\n\n- `IntentDialog` + richer Apple parameter types\n- Swift → TypeScript round-trip for existing Apple projects\n- More surface templates in the registry (Control Widgets, App Shortcuts catalog)\n\n---\n\n## Contributing\n\nPRs reviewed within 48 hours. Browse [`good first issue`](https://github.com/agenticempire/axint/issues?q=is%3Aissue+label%3A%22good+first+issue%22) to get started, or see [`CONTRIBUTING.md`](CONTRIBUTING.md).\n\nApache 2.0, no CLA.\n\n---\n\n## Requirements\n\n- Node.js 22+\n- Any OS (macOS, Linux, Windows)\n- Xcode 15+ to ship the generated Swift\n\n---\n\n## License\n\n[Apache 2.0](LICENSE) — fork it, extend it, ship it.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagenticempire%2Faxint","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fagenticempire%2Faxint","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fagenticempire%2Faxint/lists"}