Skip to Content
Getting StartedConfiguration

Configuration

Aura supports two ways to supply an AI provider key.

Click the Settings icon in the toolbar to open the AI Provider Settings panel. From there you can add one or more providers, each with its own:

  • Base URL
  • API Key
  • Model

The active provider is used for all AI calls. A Test Connection button validates the key and model before you commit. Settings persist in localStorage.

The Settings panel supports any OpenAI-compatible API — Google AI, Anthropic via proxy, Ollama, local LLMs, and more.

.env file (fallback)

.env
# Get your API key from https://aistudio.google.com/apikey GEMINI_API_KEY=your-api-key-here # Backend services (local Docker stack) VITE_VECTOR_BACKEND_URL=http://localhost:3001 VITE_MEDIA_BACKEND_URL=http://localhost:3002 VITE_GRAPH_BACKEND_URL=http://localhost:3004

Vite injects GEMINI_API_KEY as process.env.API_KEY at build time via define in vite.config.ts. This key is used only when no custom provider is configured in Settings.

Resolution order

  1. getAI() checks for an active provider with a non-empty API key first.
  2. If none exists, it falls back to the .env-based default client.
  3. getEffectiveModel(registryModel) similarly returns the user’s custom model when set, or the per-Virtuoso default otherwise.
src/lib/provider-config.ts
export interface ProviderConfig { /* id, name, baseUrl, apiKey, model, isActive */ } export function loadProviders(): ProviderConfig[] export function saveProviders(providers: ProviderConfig[]): boolean export function getActiveProvider(): ProviderConfig | null

Per-Virtuoso models

Each Virtuoso declares a default model in the registry — for example the Conductor and Critic run gemini-2.5-pro while the Scholar and Chronicler use the faster gemini-2.5-flash. A custom provider model overrides all of them. See Registry & Profiles.