Vibe coding just went native.
Your AI agent writes the Swift. Haptix lets it see, touch, and control the running app. Stop building blind — be a Visual Builder.
No credit card required
You can vibe code an iOS app.
But your agent is building blind.
AI agents can browse the web, write your code, and read your files. But they can't see or touch your running iOS app. Haptix changes that.
Go native. Skip the compromises.
Cross-platform frameworks got you this far. Swift takes you the rest of the way — and now AI can come along for the ride.
Faster. Smoother. Native.
Swift apps run directly on Apple silicon. No JavaScript bridge, no virtual DOM. Just raw performance and buttery-smooth 120fps animations.
Every Apple API. Day one.
ARKit, Core ML, HealthKit, StoreKit, Live Activities, Dynamic Island — Swift gives you the full platform. No waiting for wrapper libraries.
AI loves Swift.
Modern Swift is concise, type-safe, and well-documented. AI agents generate better Swift than most cross-platform code — and now they can test it too.
How it works
Three steps. Two copy-pastes. Minimal setup.
Add one line
Add Haptix.start(license:) to your app's init(). One line. The SDK handles everything — WebSocket server, gesture engine, screenshot capture.
| 1 | #if DEBUG |
| 2 | import HaptixKit |
| 3 | #endif |
| 4 | |
| 5 | @main |
| 6 | struct MyApp: App { |
| 7 | init() { |
| 8 | #if DEBUG |
| 9 | Haptix.start(license: "HPTX-XXXX-XXXX-XXXX") |
| 10 | #endif |
| 11 | } |
| 12 | |
| 13 | var body: some Scene { |
| 14 | WindowGroup { |
| 15 | ContentView() |
| 16 | } |
| 17 | } |
| 18 | } |
Wrap in #if DEBUG to exclude from production builds. App Review may reject apps that include development tools, and it would expose a remote control surface to your users.
Run your app
Enable Developer Mode and UI Automation on your device, connect via USB, then build and run from Xcode. Start a free trial or enter your license key — Haptix discovers your device and connects automatically.
Your agent takes control
Add the MCP config to your AI agent — Cursor, Claude Code, VS Code, or any MCP client. Your agent can now take screenshots, tap, swipe, type, and read the accessibility tree. On real devices and simulators.
| 1 | { |
| 2 | "mcpServers": { |
| 3 | "haptix": { |
| 4 | "url": "http://localhost:4278/mcp" |
| 5 | } |
| 6 | } |
| 7 | } |
Everything your agent needs
Full device control through MCP or the CLI. No compromise.
Full iOS Control
Tap, swipe, pinch, rotate, long press — every gesture your users make, driven by AI on real devices and simulators.
Live Screenshots
Capture screenshots over Wi-Fi, or connect via USB for a live screen stream at up to 10fps. Watch animations, transitions, and real-time UI changes as they happen.
Accessibility Tree
Semantic UI understanding — labels, values, traits, frames. Your agent knows what's on screen, not just pixels.
Auto-Discovery
Plug in your device via USB and Haptix finds it automatically. No IP addresses, no port forwarding. Just enable Developer Mode and UI Automation.
Secure by Design
USB-only connections mean physical cable equals consent. Local only — nothing leaves your machine.
Multi-Device
Connect and control multiple devices simultaneously. Test across iPhone and iPad in the same session.
Intelligent Wait
Handles device latency transparently. Automatic wait-and-verify ensures gestures land before reporting success.
Any MCP Agent
Works with Cursor, Claude Code, VS Code, Claude Desktop, Windsurf, and any client that speaks MCP.
Get Haptix
Download the macOS app and add the SDK to your project. You'll be up and running in under a minute.
Haptix for Mac
macOS 15.0+ · Apple Silicon
The MCP server and device manager. Runs in your menu bar, discovers USB devices automatically, and connects your AI agent to your iOS apps. Includes a free trial on first launch — no credit card required.
HaptixKit
iOS 16.0+ · Swift Package Manager
Add the SDK to your iOS app. One modifier gives your AI agent full control — screenshots, taps, swipes, typing, and accessibility tree access.
Package URL
https://github.com/haptix-dev/HaptixKit- In Xcode, go to File → Add Package Dependencies
- Paste the URL above and click Add Package
Looking for a specific version? Browse all previous releases
Simple, transparent pricing
Try Haptix free before you buy. No credit card required.
Buy once, own it forever. Each license includes 1 seat (1 developer) with 2 machine activations — e.g. laptop + desktop.
Standard License
One-time purchase · 1 year of updates
Everything in Haptix today. All features, all updates, for the current major version.
Your license is perpetual — the app keeps working after the update year ends. Renew anytime to get another year.
Lifetime License
One-time purchase · Updates forever
Everything in Haptix, forever. Every major version — current and future — for one price.
Team Licenses
Central license management for your whole team. One account, all your seats.
Each seat = 1 developer = 2 machines. Manage activations, reassign seats, and track usage from a single dashboard.
Team Standard License
One-time purchase · 1 year of updates
Minimum 5 seats · 10 machines
Your license is perpetual — the app keeps working after the update year ends. Renew anytime to get another year.
Team Lifetime License
One-time purchase · Updates forever
Minimum 5 seats · 10 machines
7-day money-back guarantee. Prices in USD. Secure checkout by Stripe. Refund policy
Two copy-pastes. That's the entire setup.
Add your license key. Point your agent. You're shipping.
1In your iOS app
| 1 | // Add the HaptixKit package to your project, |
| 2 | // then add one line: |
| 3 | |
| 4 | #if DEBUG |
| 5 | import HaptixKit |
| 6 | #endif |
| 7 | |
| 8 | @main |
| 9 | struct MyApp: App { |
| 10 | init() { |
| 11 | #if DEBUG |
| 12 | Haptix.start(license: "HPTX-XXXX-XXXX-XXXX") |
| 13 | #endif |
| 14 | } |
| 15 | |
| 16 | var body: some Scene { |
| 17 | WindowGroup { |
| 18 | ContentView() |
| 19 | } |
| 20 | } |
| 21 | } |
Wrap in #if DEBUG to exclude from production builds. App Review may reject apps that include development tools, and it would expose a remote control surface to your users.
2In your AI agent
| 1 | { |
| 2 | "mcpServers": { |
| 3 | "haptix": { |
| 4 | "url": "http://localhost:4278/mcp" |
| 5 | } |
| 6 | } |
| 7 | } |