Python SDK for Axint: define, validate, and generate inspectable Swift for App Intents, SwiftUI, WidgetKit, and app scaffolds.
Project description
Axint Python SDK
Axint is the proof and repair layer for Apple coding agents. The Python SDK is its native authoring surface for App Intents, entities, SwiftUI views, WidgetKit widgets, and app scaffolds. It parses Python without executing it, validates the resulting IR, and generates inspectable Swift directly in Python.
The normal Python parse, validate, and compile paths do not require Node.js.
Full existing-project Xcode proof is provided by the main @axint/compiler CLI
on macOS.
Install
pip install axint
For development:
git clone https://github.com/agenticempire/axint.git
cd axint/python
pip install -e '.[dev]'
Define an intent
from axint import define_intent, param
create_event = define_intent(
name="CreateCalendarEventIntent",
title="Create Calendar Event",
description="Creates a new event on the user's calendar",
domain="productivity",
params={
"event_title": param.string("Title of the event"),
"start_date": param.date("When the event starts"),
"duration_minutes": param.int("Length of the event in minutes"),
"is_all_day": param.boolean(
"Whether the event is all-day", optional=True, default=False
),
},
entitlements=["com.apple.developer.calendars"],
info_plist_keys={
"NSCalendarsUsageDescription": "Create and edit calendar events you request.",
},
)
Parse, validate, and compile
The package installs axint-py; the JavaScript package owns the axint command.
# Inspect compatible IR without executing the Python file
axint-py parse intents/create_event.py
axint-py parse intents/create_event.py --json
# Generate Swift natively in Python
axint-py compile intents/create_event.py --stdout
axint-py compile intents/create_event.py --out ios/Intents/
# Emit companion metadata
axint-py compile intents/create_event.py --out ios/Intents/ \
--emit-info-plist --emit-entitlements
# Validate without generating Swift
axint-py validate intents/create_event.py
# Return machine-readable output
axint-py compile intents/create_event.py --json
Use it as a library
from axint import define_intent, generate_swift, param, validate_intent
intent = define_intent(
name="SendMessage",
title="Send Message",
description="Sends a message",
domain="messaging",
params={"body": param.string("Message text")},
)
ir = intent.to_ir()
diagnostics = validate_intent(ir)
swift_code = generate_swift(ir)
Cross-language verification
Python produces IR compatible with the TypeScript compiler. Pipe an intent into the main CLI when you want an additional cross-surface compiler pass:
axint-py parse intent.py --json | axint compile - --from-ir --stdout
This bridge is optional. Native Python generation does not invoke it.
Coverage boundary
| Capability | Python SDK |
|---|---|
| Intent, entity, view, widget, and app definitions | Implemented |
| Primitive parameters, entitlements, and plist fragments | Implemented |
| Native Swift generation and IR validation | Implemented |
| Parse, compile, and validate CLI | Implemented |
| Focused Python MCP authoring server | Implemented with the mcp extra |
| Optional Node-backed Swift validator helper in Python MCP | Available when the JavaScript package is installed |
| Resumable Xcode build, test, repair, and signed proof | Use the main @axint/compiler CLI on macOS |
The Python and TypeScript generators are separate implementations over compatible contracts. Parity tests cover their shared output; a claim about one surface should not be assumed to apply to the other without a corresponding test.
MCP extra
pip install 'axint[mcp]'
axint-mcp-py
The Python MCP package focuses on Python authoring, generation, validation, and discovery. It is not a substitute for the main MCP server's complete project proof and coordination surface.
Prove the resulting Apple project
After adding generated Swift to an Xcode project, run the full local proof loop:
npx -y -p @axint/compiler axint prove --dir /path/to/MyApp
The command checks Swift, runs the available Xcode build and tests, reconciles findings, and writes a signed source-free receipt. It does not upload project source by default.
Development
pip install -e '.[dev]'
pytest
ruff check .
mypy axint
pyright
Apache-2.0 licensed. See LICENSE.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file axint-0.6.0.tar.gz.
File metadata
- Download URL: axint-0.6.0.tar.gz
- Upload date:
- Size: 66.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
34b419ad195f517f5c730a163d78672069805e1b47f5cc9f97436fc4a949f063
|
|
| MD5 |
2e2203287f7ff9469cf481b84ff84a7e
|
|
| BLAKE2b-256 |
e404f0cf327ee82fa0ba0fdb57a16e17f1c6e1422f0b520443d1f12f0426abe7
|
File details
Details for the file axint-0.6.0-py3-none-any.whl.
File metadata
- Download URL: axint-0.6.0-py3-none-any.whl
- Upload date:
- Size: 55.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.6
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
f128d733b4e0180c55842b5299c49872ce58dea8f7f9b9c24c6f43102a59f603
|
|
| MD5 |
77aa11a40fdcceca3afefc164df8d40f
|
|
| BLAKE2b-256 |
3e42d3fae4e53086e3c83b4e0acee3d052e9184c9f194b10e9d2c588a41e0e95
|