import React, { useEffect, useState } from 'react'; import { createRoot } from 'react-dom/client'; const PROVIDERS = [ { id: 'openai', name: 'OpenAI', models: ['gpt-4o', 'gpt-4o-mini', 'gpt-3.5-turbo'] }, { id: 'anthropic', name: 'Anthropic', models: ['claude-3-5-sonnet-20241022', 'claude-3-5-haiku-20241022'] }, { id: 'groq', name: 'Groq (Free tier)', models: ['llama-3.3-70b-versatile', 'mixtral-8x7b-32768'] }, { id: 'openrouter', name: 'OpenRouter', models: ['auto'] }, ]; function OptionsPage() { const [provider, setProvider] = useState('openai'); const [apiKey, setApiKey] = useState(''); const [model, setModel] = useState('gpt-4o-mini'); const [saved, setSaved] = useState(false); useEffect(() => { chrome.storage.local.get(['provider', 'apiKey', 'model'], (result) => { if (result.provider) setProvider(result.provider); if (result.apiKey) setApiKey(result.apiKey); if (result.model) setModel(result.model); }); }, []); const handleSave = () => { chrome.storage.local.set({ provider, apiKey, model }, () => { setSaved(true); setTimeout(() => setSaved(false), 2000); }); }; const currentProvider = PROVIDERS.find((p) => p.id === provider); return (
Configure your own LLM provider and API key
🔒 Stored locally on your device only. Never sent anywhere except the LLM provider.