Control Everything
Full access to system-level APIs for controlling windows, files, network, media, and more. All APIs are exposed through IPC and preload helpers, including native-first OCR and cross-app automation paths.
60+
APIs APIs
9
System APIs
9
Window APIs
5
Visual APIs
5
Apple AI APIs
macOS Native AI
Apple Intelligence Paths
Comet currently ships a native Swift helper for readiness checks, summaries, and Apple image generation. Apple's platform docs also point to more advanced long-term integrations through Writing Tools, App Intents assistant schemas, and native Image Playground interfaces.
Foundation Models
Use Apple's on-device language model for summarization, structured output, and tool-aware generation on supported Macs.
Image Playground / ImageCreator
Use Apple's native image stack for Mac-only creative workflows, either with programmatic generation or Apple-controlled UI.
Writing Tools
For richer editor integration, custom AppKit views can expose text directly to Apple's Writing Tools instead of routing everything through chat.
Assistant Schemas
For deeper Siri and Apple Intelligence integration, App Intents domains and schemas can expose Comet actions and content to Apple's assistant layer.
Available APIs
API Categories
System APIs
Control system-level functions like displays, power, and system preferences.
getSystemInfo()SystemInfoGet CPU, memory, disk info
getDisplays()Display[]List all connected displays
setDisplayMode()voidChange resolution, refresh rate
getSystemPreferences()PreferencesGet macOS system preferences
setSystemPreference()voidUpdate system preferences
lockScreen()voidLock the computer
sleep()voidPut display to sleep
restart()voidRestart the system
shutdown()voidShut down the system
Implementation
Code Examples
Example
Reference
Type Definitions
TypeScript Definitions
// Type definitions for all Native APIs
interface SystemInfo {
platform: 'darwin' | 'windows' | 'linux';
arch: string;
version: string;
cpu: { model: string; cores: number; speed: number };
memory: { total: number; free: number };
disk: { total: number; free: number };
uptime: number;
}
interface Display {
id: number;
name: string;
bounds: { x: number; y: number; width: number; height: number };
isPrimary: boolean;
scaleFactor: number;
}
interface Window {
id: string;
title: string;
app: AppInfo;
bounds: { x: number; y: number; width: number; height: number };
isMinimized: boolean;
isMaximized: boolean;
}
interface AppInfo {
name: string;
bundleId: string;
pid: number;
icon?: string;
}
interface Point {
x: number;
y: number;
}
interface FileInfo {
name: string;
path: string;
isDirectory: boolean;
size: number;
modifiedAt: Date;
}
interface NetworkStatus {
connected: boolean;
type: 'wifi' | 'ethernet' | 'cellular' | 'none';
strength?: number;
}
interface HttpResponse {
status: number;
data: any;
headers: Record<string, string>;
}
// API Methods
// System
invoke('get-system-info'): Promise<SystemInfo>
invoke('get-displays'): Promise<Display[]>
invoke('set-display-mode', { displayId, width, height, refreshRate }): Promise<void>
invoke('get-system-preferences'): Promise<Preferences>
invoke('set-system-preference', { key, value }): Promise<void>
invoke('lock-screen'): Promise<void>
invoke('sleep'): Promise<void>
invoke('restart'): Promise<void>
invoke('shutdown'): Promise<void>
// Window
invoke('get-windows'): Promise<Window[]>
invoke('focus-window', { windowId }): Promise<void>
invoke('set-window-bounds', { windowId, x, y, width, height }): Promise<void>
invoke('minimize-window', { windowId }): Promise<void>
invoke('maximize-window', { windowId }): Promise<void>
invoke('close-window', { windowId }): Promise<void>
invoke('set-window-always-on-top', { windowId, alwaysOnTop }): Promise<void>
// Input
invoke('type-text', { text }): Promise<void>
invoke('press-key', { key }): Promise<void>
invoke('press-hot-key', { modifiers, key }): Promise<void>
invoke('move-mouse', { x, y }): Promise<void>
invoke('click-mouse', { button, x?, y? }): Promise<void>
invoke('scroll-mouse', { deltaX, deltaY }): Promise<void>
invoke('drag-mouse', { fromX, fromY, toX, toY }): Promise<void>
invoke('get-mouse-position'): Promise<Point>
invoke('get-active-app'): Promise<AppInfo>
// Files
invoke('read-file', { path, encoding? }): Promise<string | Buffer>
invoke('write-file', { path, content, encoding? }): Promise<void>
invoke('append-file', { path, content }): Promise<void>
invoke('delete-file', { path }): Promise<void>
invoke('move-file', { source, destination }): Promise<void>
invoke('copy-file', { source, destination }): Promise<void>
invoke('list-directory', { path }): Promise<FileInfo[]>
invoke('create-directory', { path }): Promise<void>
invoke('get-file-info', { path }): Promise<FileInfo>
// Network
invoke('http-request', { method, url, headers?, body?, timeout? }): Promise<HttpResponse>
invoke('download-file', { url, destination, filename? }): Promise<string>
invoke('open-url', { url }): Promise<void>
invoke('get-local-ip'): Promise<string>
invoke('ping', { host }): Promise<number>
invoke('get-network-status'): Promise<NetworkStatus>
// Media
invoke('set-volume', { level }): Promise<void>
invoke('get-volume'): Promise<number>
invoke('mute-audio', { muted }): Promise<void>
invoke('play-pause-media'): Promise<void>
invoke('next-track'): Promise<void>
invoke('prev-track'): Promise<void>
invoke('screenshot', { x?, y?, width?, height?, format?, quality? }): Promise<string>Best Practices
Usage Patterns
Recommended
- Always await async operations before continuing
- Use error handling for file/network operations
- Check permissions before destructive actions
- Add delays between rapid input operations
Avoid
- Rapid-fire keyboard input without delays
- Deleting files without confirmation
- Ignoring errors on system operations
- Running shutdown without user consent
Ready to Build?
Use these APIs directly from the AI chat or in your custom commands and automations.