Skip to main content
Glama

Apple용 AI 에이전트를 위한 압축 계층

AI 코딩 에이전트는 토큰당 비용을 지불합니다. Apple의 API 표면(App Intents, SwiftUI, WidgetKit)은 장황합니다. 위젯 하나를 만들려면 비즈니스 로직을 작성하기도 전에 TimelineEntry, TimelineProvider, EntryView, Widget 구조체를 작성해야 합니다.

Axint는 이 모든 것을 압축합니다. 하나의 TypeScript 정의가 보일러플레이트 없이 관용적이고 프로덕션 준비가 완료된 Swift로 컴파일됩니다. 인텐트는 약 4배, 뷰는 약 4배, 위젯은 13배 압축됩니다.

┌───────────────────────────────────────────┐
│  defineIntent()  defineView()             │  TypeScript / Python / JSON
│  defineWidget()  defineApp()              │
└───────────────────┬───────────────────────┘
                    │  axint compile
          ┌─────────┼─────────┐─────────┐
          ▼         ▼         ▼         ▼
     ┌────────┐ ┌───────┐ ┌────────┐ ┌──────┐
     │ .swift │ │ .swift│ │ .swift │ │.swift│
     │ .plist │ │       │ │        │ │      │
     │ .entl. │ │       │ │        │ │      │
     └────────┘ └───────┘ └────────┘ └──────┘
     App Intent  SwiftUI   WidgetKit   App
     for Siri    View      Widget      Scaffold

Related MCP server: xcode-mcp

Axint를 선택해야 하는 이유

  • 4가지 Apple 표면, 하나의 컴파일러. App Intents, SwiftUI 뷰, WidgetKit 위젯, 전체 앱 스캐폴드가 모두 동일한 파이프라인에서 컴파일됩니다.

  • 실제 TypeScript AST 파서. 정규식이 아닌 TypeScript 컴파일러 API(tsc와 동일)를 사용합니다. 라인/열 범위를 포함한 완전한 타입 충실도와 진단 기능을 제공합니다.

  • JSON 스키마 모드를 지원하는 MCP 네이티브. 모든 MCP 클라이언트에 13가지 도구가 노출됩니다. axint.schema.compile 도구는 최소한의 JSON(약 20토큰)을 받아 컴파일된 Swift를 반환하므로, AI 에이전트가 TypeScript를 완전히 건너뛰어 토큰을 더욱 절약할 수 있습니다.

  • 네이티브 타입 충실도. int → Int, double → Double, date → Date, url → URL, duration → Measurement. 기본값과 옵셔널리티가 처음부터 끝까지 보존됩니다.

  • 150개의 진단 코드 (AX000AX999)와 수정 제안 및 색상 구분된 출력을 제공합니다. 인텐트, 엔티티, 뷰, 위젯, 앱, Swift 동시성 및 라이브 활동 검사기마다 전용 오류 범위가 있습니다.

  • 서브 밀리초 컴파일. axint.ai 플레이그라운드는 서버 왕복 없이 브라우저 내에서 전체 컴파일러를 실행합니다.

  • 500개의 테스트. 파서, 검사기, 생성기, 방출 경로, 뷰, 위젯, 앱, 감시 모드, 샌드박스, MCP, Swift 동시성 및 라이브 활동까지 모두 커버합니다.

  • 언어 간 IR. 중간 표현(Intermediate Representation)은 언어 중립적인 JSON입니다. TypeScript, Python, 원시 JSON 모두 동일한 생성기로 입력됩니다. 새로운 언어 프론트엔드는 Swift 방출기를 건드리지 않고도 연결할 수 있습니다.

  • Apache 2.0, CLA 없음. 포크하고, 확장하고, 배포하세요.


빠른 시작

npm install -g @axint/compiler

# Or run without installing
npx @axint/compiler compile my-intent.ts --stdout

인텐트

import { defineIntent, param } from "@axint/compiler";

export default defineIntent({
  name: "CreateEvent",
  title: "Create Calendar Event",
  description: "Creates a new event in the user's calendar.",
  domain: "productivity",
  params: {
    title: param.string("Event title"),
    date: param.date("Event date"),
    duration: param.duration("Event duration", { default: "1h" }),
    location: param.string("Location", { required: false }),
  },
});

import { defineView, prop, state, view } from "@axint/compiler";

export default defineView({
  name: "EventCard",
  props: {
    title: prop.string(),
    date: prop.date(),
  },
  state: {
    isExpanded: state.boolean(false),
  },
  body: [
    view.vstack({ alignment: "leading", spacing: 8 }, [
      view.text("entry.title"),
      view.conditional("isExpanded", [view.text("entry.date")]),
    ]),
  ],
});

위젯

import { defineWidget, entry, view } from "@axint/compiler";

export default defineWidget({
  name: "EventCountdown",
  displayName: "Event Countdown",
  description: "Shows time until the next event.",
  families: ["systemSmall", "systemMedium"],
  entry: {
    eventName: entry.string("Untitled"),
    minutesUntil: entry.int(0),
  },
  body: [
    view.vstack({ alignment: "center", spacing: 4 }, [
      view.text("entry.eventName"),
      view.text("entry.minutesUntil"),
    ]),
  ],
});

import { defineApp, scene, storage } from "@axint/compiler";

export default defineApp({
  name: "WeatherApp",
  scenes: [
    scene.windowGroup("WeatherDashboard"),
    scene.settings("SettingsView", { platform: "macOS" }),
  ],
  appStorage: {
    useCelsius: storage.boolean("use_celsius", true),
    lastCity: storage.string("last_city", "Cupertino"),
  },
});

이 중 무엇이든 컴파일하세요:

axint compile my-intent.ts --out ios/Intents/
axint compile my-view.ts --out ios/Views/
axint compile my-widget.ts --out ios/Widgets/
axint compile my-app.ts --out ios/App/

감시 모드

반복적인 개발을 위해 axint watch는 저장할 때마다 재컴파일합니다:

axint watch ./intents/ --out ios/Intents/ --emit-info-plist --emit-entitlements
axint watch my-intent.ts --out ios/Intents/ --format --swift-build

150ms 디바운스, 인라인 오류, 그리고 성공적인 컴파일 후 선택적인 swift build를 지원합니다.


MCP 서버

Axint는 Claude Desktop, Claude Code, Cursor, Windsurf 및 모든 MCP 클라이언트를 위한 Model Context Protocol 서버인 axint-mcp와 함께 제공됩니다.

{
  "mcpServers": {
    "axint": {
      "command": "axint-mcp",
      "args": []
    }
  }
}

13가지 도구(점 표기법 — 레거시 언더스코어 별칭도 여전히 작동합니다):

도구

기능

axint.feature

설명으로부터 완전한 기능 패키지 생성

axint.suggest

주어진 도메인에 대한 Apple 네이티브 기능 제안

axint.scaffold

설명으로부터 시작 TypeScript 인텐트 생성

axint.compile

전체 파이프라인: TypeScript → Swift + plist + entitlements

axint.validate

진단 기능을 포함한 드라이 런 검증

axint.schema.compile

최소 JSON → Swift (AI 에이전트를 위한 토큰 절약 모드)

axint.swift.validate

Axint의 빌드 타임 규칙에 따라 기존 Swift 검증

axint.swift.fix

기계적인 Swift 오류 자동 수정 (동시성, 라이브 활동)

axint.templates.list

번들된 참조 템플릿 나열

axint.templates.get

특정 템플릿의 소스 반환

axint.quick-start

Axint 빠른 시작 가이드 가져오기

axint.create-intent

매개변수로부터 새로운 인텐트 생성

axint.create-widget

매개변수로부터 새로운 위젯 생성

스키마 모드는 에이전트를 위한 핵심 최적화입니다. TypeScript를 생성하고 컴파일하는 대신, 에이전트가 약 20토큰의 JSON을 보내면 컴파일된 Swift를 직접 돌려받습니다.


진단

8개 검사기에 걸친 150개의 진단 코드:

범위

도메인

AX000

AX023

컴파일러 / 파서

AX100

AX113

인텐트

AX200

AX202

Swift 출력

AX300

AX322

AX400

AX422

위젯

AX500

AX522

AX700

AX749

Swift 빌드 규칙

AX720

AX735

Swift 6 동시성

AX740

AX749

라이브 활동

error[AX100]: Intent name "sendMessage" must be PascalCase
  --> src/intents/messaging.ts:5:9
   = help: rename to "SendMessage"

전체 참조는 docs/ERRORS.md를 확인하세요.


지원되는 타입 매핑

TypeScript

Swift

기본값 지원

string

String

int

Int

double

Double

float

Float

boolean

Bool

date

Date

duration

Measurement

✓ (예:

"1h"

)

url

URL

optional

T?


브라우저에서 체험하기

설치 불필요: **axint.ai/#playground**는 서버 왕복 없이 브라우저 내에서 전체 컴파일러를 실행합니다.


요구 사항

  • Node.js 22+

  • 모든 OS: macOS, Linux, Windows

  • Xcode 15+ (생성된 Swift를 Apple 플랫폼으로 배포할 때만 필요)


프로젝트 구조

axint/
├── src/
│   ├── core/        # Parser, validator, generator, compiler, types, IR
│   ├── sdk/         # defineIntent(), defineView(), defineWidget(), param/prop/state/entry helpers
│   ├── mcp/         # MCP server (13 tools including JSON schema mode)
│   ├── cli/         # axint CLI (compile, watch, validate, eject, init, xcode)
│   └── templates/   # Intent template registry (25 templates)
├── python/          # Python SDK with native Swift codegen
├── extensions/      # Claude Code, Codex, Cursor, Windsurf, Zed, JetBrains, Xcode
├── spm-plugin/      # Xcode SPM build plugin
├── tools/           # swift-syntax helper binary (POC)
├── tests/           # 500 vitest tests
├── examples/        # Example definitions
└── docs/            # Error reference, research, assets

기여하기

48시간 이내에 PR을 검토합니다. 시작하기 좋은 곳:

  • good first issue 이슈 탐색

  • 일반적인 사용 사례에 대한 템플릿 추가

  • 더 나은 수정 제안으로 진단 기능 개선

CONTRIBUTING.md를 참조하세요. Apache 2.0, CLA 없음.


로드맵

ROADMAP.md를 참조하세요. 주요 내용:

  • [x] 4가지 컴파일 대상: 인텐트, 뷰, 위젯, 앱

  • [x] JSON 스키마 모드를 지원하는 MCP 서버 (6가지 도구)

  • [x] 수정 제안이 포함된 91가지 진단 코드

  • [x] --swift-build를 포함한 --watch 모드

  • [x] VS Code / Cursor 확장 프로그램

  • [x] 네이티브 Swift 코드 생성을 지원하는 Python SDK

  • [x] Xcode용 SPM 빌드 플러그인 + Xcode 프로젝트 플러그인

  • [x] 의존성 없는 Swift 출력을 위한 axint eject

  • [x] 언어 간 IR 브리지 (TS, Python, JSON)

  • [x] defineApp() — 전체 앱 스캐폴드 컴파일

  • [ ] defineExtension() — 앱 확장 컴파일

  • [ ] Axint Cloud (호스팅된 컴파일)


라이선스

Apache 2.0 — 포크하고, 확장하고, 배포하세요. CLA 없음.


Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/agenticempire/axint'

If you have feedback or need assistance with the MCP directory API, please join our Discord server