Skip to main content

Python SDK for Axint: define, validate, and generate inspectable Swift for App Intents, SwiftUI, WidgetKit, and app scaffolds.

Project description

Axint Python SDK

Python 3.11+ License: Apache-2.0

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

axint-0.6.0.tar.gz (66.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

axint-0.6.0-py3-none-any.whl (55.7 kB view details)

Uploaded Python 3

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

Hashes for axint-0.6.0.tar.gz
Algorithm Hash digest
SHA256 34b419ad195f517f5c730a163d78672069805e1b47f5cc9f97436fc4a949f063
MD5 2e2203287f7ff9469cf481b84ff84a7e
BLAKE2b-256 e404f0cf327ee82fa0ba0fdb57a16e17f1c6e1422f0b520443d1f12f0426abe7

See more details on using hashes here.

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

Hashes for axint-0.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f128d733b4e0180c55842b5299c49872ce58dea8f7f9b9c24c6f43102a59f603
MD5 77aa11a40fdcceca3afefc164df8d40f
BLAKE2b-256 3e42d3fae4e53086e3c83b4e0acee3d052e9184c9f194b10e9d2c588a41e0e95

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page