Aartiq
Aartiq™
Download
Apple Integration

Apple Integration

macOS-specific integration layer bridging Aartiq with Apple Intelligence, Siri, Shortcuts, and Voice Control. The bridges live insrc/lib/SiriShortcutsIntegration.jsandsrc/lib/apple-script-bridge.js, with the Apple Intelligence helper insrc/lib/apple-intelligence.swiftand native SwiftUI panels insrc/lib/native-panels/. Every command listed below states the platform and OS version it actually needs.

Apple Intelligence

Apple's on-device models, reached through a helper binary Aartiq compiles from src/lib/apple-intelligence.swift. Each command has its own OS floor — they are not interchangeable.

src/lib/native-panels/

Siri Integration

Twenty App Intents registered from the native panel, reachable by voice from anywhere on your Mac. Fifteen reach a route the macOS bridge actually serves. Five do not, and are listed as such rather than removed, because the intent is compiled into the shipped app either way.

src/lib/native-panels/AppIntents.swift

Apple Shortcuts

Aartiq registers the aartiq:// URL scheme, so a Shortcuts workflow can trigger an action with an Open URL step. Only macOS delivers the link to a running app — see Dispatch below.

src/lib/SiriShortcutsIntegration.js

Voice Control

Use macOS dictation for voice input and text-to-speech for AI responses.

src/lib/apple-script-bridge.js

Recognised Voice Phrases

Speech is matched against these prefixes; the remainder of the utterance becomes the message. Speech that matches none of them is treated as a plain chat message and sent to the model, so the microphone is worth muting when it is not wanted.

Raycast Integration

Extend Raycast with Aartiq commands. Access AI features directly from the Raycast command bar.

macOS Native AI

Apple Intelligence

Aartiq integrates with Apple's on-device AI capabilities on supported Macs. The native Swift bridge handles readiness checks, summarization, and image generation. Source: src/lib/native-panels/AppleIntelligenceBridge.swift

Requirements

  • macOS 15.4 or later for Genmoji
  • macOS 15.1 or later for Image Playground
  • macOS 26.0 or later for text summarization
  • Apple Silicon or M-series chip
  • Apple Intelligence enabled in Settings

Available Features

Text SummarizationmacOS 26.0+

Summarize text locally through Foundation Models

Image GenerationmacOS 15.1+

Create an image from a natural language prompt via Image Playground

GenmojimacOS 15.4+

Create a custom emoji from a description

Code Example

// window.electronAPI is the only bridge preload.js exposes.
// window.electron does not exist, and these examples used to call it.
// All four commands refuse off macOS with
// { success: false, error: 'Apple Intelligence is only available on macOS.' }

// What this machine can do. Each command has its own OS floor, so check
// before calling: summaryAvailable is separate from imageAvailable and
// genmojiAvailable.
const status = await window.electronAPI.getAppleIntelligenceStatus();
// {
//   success: true,
//   osVersion: 'Version 26.0 (Build 25A354)',
//   available: true,                 // Foundation Models, i.e. summaries
//   supportsSummaries: true,
//   summaryAvailable: true,
//   imageAvailable: true,
//   genmojiAvailable: true,
//   availableStyles: ['illustration', 'line-art', ...]
// }
// Each unavailable command also carries a *_Reason string, e.g.
// summaryReason: 'Summaries require macOS 26 with Foundation Models.'

// Summarize. Takes a bare string, not an object, and returns summary.
const summary = await window.electronAPI.summarizeWithAppleIntelligence(
  'Long article content here...'
);
console.log(summary.summary);        // summaryAvailable requires macOS 26.0+

// Generate an image. Returns a file path, not base64.
const image = await window.electronAPI.generateAppleIntelligenceImage({
  prompt: 'A futuristic city at sunset',
  style: 'illustration'             // optional; defaults to illustration
});
console.log(image.imagePath);        // imageAvailable requires macOS 15.1+

// Generate a custom emoji. Same payload shape.
const emoji = await window.electronAPI.generateGenmoji({
  prompt: 'a robot chef'
});
console.log(emoji.genmojiPath);      // genmojiAvailable requires macOS 15.4+

Voice Commands

Siri Integration

App Intents bridge allowing Siri to trigger Aartiq actions. Twenty intents are defined insrc/lib/native-panels/AppIntents.swift.Every intent reaches the app over the token-authenticated bridge on 127.0.0.1:46203. It binds loopback only, so no other machine on the network can drive these actions.

Available Siri Phrases

“Ask Aartiq [prompt]”

Sends the prompt and speaks the reply

“Refine Aartiq's response to be [instruction]”

Sends a refinement instruction

“Regenerate Aartiq's response”

Re-runs the last turn

“What did Aartiq say?”

Reads the latest response

“List my conversations in Aartiq”

Lists recent chats

“Open my [conversation] in Aartiq”

Loads a named chat

“New chat in Aartiq”

Starts a fresh conversation

“Reset Aartiq chat”

Clears the current context

“Search [query] with Aartiq”

Sends the query as a prompt

“Switch Aartiq model to [model]”

Changes the active model

“What can you do with Aartiq”

Answers from a fixed description

“Run [command] in Aartiq”

Queues the command as a prompt. It is not executed by the intent, and it does not bypass approval.

queues a prompt only

“Create a [format] about [topic] in Aartiq”

Queues a document request. No file is produced by the intent itself.

queues a prompt only

“Schedule [task] [time] in Aartiq”

Queues a scheduling request. The task is not registered by the intent itself.

queues a prompt only

Registered but non-functional

These phrases resolve to an intent, and the intent calls a bridge route that is not served. Siri reports a failure rather than doing the thing.

“Summarize this page with Aartiq”

The intent POSTs to /native-mac-ui/summarize-page. No such route is served, so it reports failure.

“Take screenshot with Aartiq”

The intent POSTs to /native-mac-ui/screenshot. No such route is served.

“Set volume to [level] in Aartiq”

The intent POSTs to /native-mac-ui/volume. No such route is served.

“Open [app] with Aartiq”

The intent POSTs to /native-mac-ui/open-app. No such route is served.

“Read clipboard in Aartiq”

The intent GETs /native-mac-ui/clipboard. No such route is served.

How It Works

1
Siri resolves the phrase to the matching App Intent
2
The intent posts to the loopback bridge on port 46203 with the token read from ~/.aartiq-token (mode 0600)
3
Aartiq performs the action or queues a prompt in the chat
4
Siri speaks the returned string as the reply

Siri Phrases Reference

// Siri phrases registered in src/lib/native-panels/AppIntents.swift
//
// Reaches a bridge route the app actually serves:
//   "Ask Aartiq [prompt]"                            // "Tell", "Query" too
//   "Refine Aartiq response"                         // "Make ... [instruction]"
//   "Regenerate Aartiq response"                     // "Try again in Aartiq"
//   "What did Aartiq say?"
//   "List my conversations in Aartiq"
//   "Open my [conversation] in Aartiq"
//   "New chat in Aartiq"
//   "Reset Aartiq chat"
//   "Search web with Aartiq for [query]"
//   "Switch Aartiq model to [model]"
//   "What can you do with Aartiq"
//
// Reaches a route, but only queues a prompt rather than doing the thing:
//   "Run [command] in Aartiq"          -> sendPrompt("Run this shell command: ...")
//   "Create a [format] about [topic]"  -> sendPrompt("Generate a ... document about: ...")
//   "Schedule [task] [time]"           -> sendPrompt("Schedule this task: ...")
//
// Resolves to an intent that calls a route the bridge does not serve,
// so Siri reports failure:
//   "Summarize this page with Aartiq"   -> /native-mac-ui/summarize-page
//   "Take screenshot with Aartiq"       -> /native-mac-ui/screenshot
//   "Set volume to [level] in Aartiq"   -> /native-mac-ui/volume
//   "Open [app] with Aartiq"            -> /native-mac-ui/open-app
//   "Read clipboard in Aartiq"          -> /native-mac-ui/clipboard
//
// There is no wake word. Dictation hands the transcript to Aartiq, which
// matches it against its own prefixes and otherwise sends it to the model.

URL Scheme

Apple Shortcuts

The aartiq:// URL scheme enables integration with Apple Shortcuts. Route definitions are insrc/lib/SiriShortcutsIntegration.ts. Build automation workflows combining Aartiq with other apps.