Skip to content

Getting Started

GitHub
Terminal window
bun add @capgo/capacitor-llm
bunx cap sync
import { CapgoLLM } from '@capgo/capacitor-llm';

Creates a new chat session

import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.createChat();

Sends a message to the AI in a specific chat session

import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.sendMessage({} as { chatId: string; message: string });

Gets the readiness status of the LLM

import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.getReadiness();

Sets the model configuration

  • iOS: Use “Apple Intelligence” as path for system model, or provide path to MediaPipe model
  • Android: Path to a MediaPipe model file (in assets or files directory)
import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.setModel({} as ModelOptions);

Downloads a model from a URL and saves it to the appropriate location

  • iOS: Downloads to the app’s documents directory
  • Android: Downloads to the app’s files directory
import { CapgoLLM } from '@capgo/capacitor-llm';
await CapgoLLM.downloadModel({} as DownloadModelOptions);

Model configuration options.

export interface ModelOptions {
/** Model path or "Apple Intelligence" for iOS system model */
path: string;
/** Model file type/extension (e.g., "task", "bin", "litertlm"). If not provided, will be extracted from path. */
modelType?: string;
/** Maximum number of tokens the model handles */
maxTokens?: number;
/** Number of tokens the model considers at each step */
topk?: number;
/** Amount of randomness in generation (0.0-1.0) */
temperature?: number;
/** Random seed for generation */
randomSeed?: number;
}

Options for downloading a model.

export interface DownloadModelOptions {
/** URL of the model file to download */
url: string;
/** Optional: URL of companion file (e.g., .litertlm for Android) */
companionUrl?: string;
/** Optional: Custom filename (defaults to filename from URL) */
filename?: string;
}

Result of model download.

export interface DownloadModelResult {
/** Path where the model was saved */
path: string;
/** Path where the companion file was saved (if applicable) */
companionPath?: string;
}

Event data for text received from AI.

export interface TextFromAiEvent {
/** The text content from AI - this is an incremental chunk, not the full text */
text: string;
/** The chat session ID */
chatId: string;
/** Whether this is a complete chunk (true) or partial streaming data (false) */
isChunk?: boolean;
}

Event data for AI completion.

export interface AiFinishedEvent {
/** The chat session ID that finished */
chatId: string;
}

Event data for download progress.

export interface DownloadProgressEvent {
/** Percentage of download completed (0-100) */
progress: number;
/** Total bytes to download */
totalBytes?: number;
/** Bytes downloaded so far */
downloadedBytes?: number;
}

Event data for readiness status changes.

export interface ReadinessChangeEvent {
/** The readiness status */
readiness: string;
}

This page is generated from the plugin’s src/definitions.ts. Re-run the sync when the public API changes upstream.

If you are using Getting Started to plan dashboard and API operations, connect it with Using @capgo/capacitor-llm for the native capability in Using @capgo/capacitor-llm, API Overview for the implementation detail in API Overview, Introduction for the implementation detail in Introduction, API Keys for the implementation detail in API Keys, and Devices for the implementation detail in Devices.