Interface: LLMProvider

Defined in: providers/types.ts:268

Interface for LLM providers. Implement this to add support for a new AI model.

Built-in providers: ClaudeProvider, OpenAIProvider, GeminiProvider, OllamaProvider, TogetherProvider, GroqProvider, FireworksProvider, PerplexityProvider, OpenRouterProvider.

For OpenAI-compatible APIs, extend OpenAICompatibleProvider instead of implementing this interface directly.

Properties

name

readonly name: string;

Defined in: providers/types.ts:272

Provider identifier (e.g., ‘claude’, ‘openai’, ‘gemini’)

Methods

chat()

chat(messages, options?): AsyncIterable<StreamChunk>;

Defined in: providers/types.ts:280

Send messages to the LLM and stream the response.

Yields StreamChunk objects containing text fragments, tool calls, usage stats, and other provider-specific data.

Parameters

Parameter Type
messages Message[]
options? ChatOptions

Returns

AsyncIterable<StreamChunk>

countTokens()?

optional countTokens(messages): Promise<number>;

Defined in: providers/types.ts:285

Count tokens in messages (optional, provider-specific)

Parameters

Parameter Type
messages Message[]

Returns

Promise<number>

getModel()

getModel(): string;

Defined in: providers/types.ts:290

Get the current default model ID.

Returns

string

setModel()

setModel(modelId): void;

Defined in: providers/types.ts:298

Change the default model for subsequent calls. Same provider only. Takes effect on the next chat() call, not mid-stream.

Parameters

Parameter Type Description
modelId string The new model ID (e.g., ‘claude-opus-4-20250514’)

Returns

void