|
1 | | -# AI Chat Pro Browser Extension |
| 1 | +# AI Chat Pro Client |
2 | 2 |
|
3 | | -Moderne Browser-Extension fur KI-Chat mit mehreren Providern in einer einheitlichen Oberflache. |
| 3 | +A modern browser extension that brings multiple AI providers together under a single, unified chat interface. |
4 | 4 |
|
5 | | -## Vorschau |
| 5 | +## Preview |
6 | 6 |
|
7 | | - |
| 7 | + |
8 | 8 |
|
9 | | -## Features |
10 | | - |
11 | | -- Mehrere Provider: Perplexity, OpenAI, Anthropic, Gemini, LM Studio |
12 | | -- Lokale Speicherung von Einstellungen und Chats |
13 | | -- Einstellungsseite mit Provider-spezifischen Feldern |
14 | | -- Chat-Export (z. B. JSON/Markdown) |
15 | | -- LM Studio Support fur lokale Modelle |
| 9 | +## What's New in v1.0.0 |
16 | 10 |
|
17 | | -## Projektstruktur |
| 11 | +This release marks the first stable version of **AI Chat Pro Client** and introduces a complete internationalization layer, persistent model verification, and full data backup support. |
18 | 12 |
|
19 | | -- [manifest.json](manifest.json): Extension-Konfiguration |
20 | | -- [popup/popup.html](popup/popup.html): Chat-Oberflache |
21 | | -- [popup/popup.js](popup/popup.js): Chat-Logik im Popup |
22 | | -- [options/options.html](options/options.html): Einstellungsseite |
23 | | -- [options/options.js](options/options.js): Provider- und API-Tests |
24 | | -- [background/background.js](background/background.js): API-Aufrufe pro Provider |
| 13 | +- **Multilingual interface (EN / DE / RU)** — The entire UI of both the popup and the options page is now translatable. The active language follows the browser locale by default and can be switched manually under *Appearance → Language*. A reusable i18n module (`shared/i18n.js`) powers the translation pipeline through `data-i18n` attributes. |
| 14 | +- **Localized backend errors** — Errors raised by the background service worker (missing API key, connection failures, provider responses, LM Studio errors) are returned as structured error codes and translated in the popup, so users always see error messages in their selected language. |
| 15 | +- **Persistent model verification** — Results from *Check models* are now cached per provider and per model in extension storage. Each provider view displays a *Last check: …* timestamp so you can see at a glance which models are reachable without re-running the test. |
| 16 | +- **Full backup export & import** — *Export backup* now produces a single JSON file (`type: "ai-chat-pro-client-backup"`, version `2.0`) containing all conversations, the active conversation, and all settings (providers, models, custom models, base URLs, appearance, behavior). The corresponding *Import backup* action restores everything in one step and remains backwards-compatible with the legacy conversation-only export format. |
| 17 | +- **Custom model management** — Models added manually through the options page are stored per provider, can be removed individually, and their cached check results are cleaned up automatically. |
| 18 | +- **Rebrand to *AI Chat Pro Client*** — Application name, manifest, popup title, and all user-facing strings have been unified. |
25 | 19 |
|
26 | | -## Installation (Chrome/Edge) |
| 20 | +## Features |
27 | 21 |
|
28 | | -1. Repository lokal klonen oder als ZIP entpacken. |
29 | | -2. Browser offnen und Erweiterungsseite aufrufen: |
| 22 | +- **Multiple providers** — Perplexity, OpenAI, Anthropic, Google Gemini, and LM Studio (local). |
| 23 | +- **Unified chat UI** — Conversation list, search, rename, delete, and Markdown rendering with code-block copy buttons. |
| 24 | +- **Local-first storage** — Conversations, settings, API keys, and custom models are stored locally via `chrome.storage.local` and never leave the browser. |
| 25 | +- **Per-provider configuration** — API key, base URL, model selection, temperature, max tokens, and system prompt are configured independently for each provider. |
| 26 | +- **Connection & model testing** — One-click *Test API* and *Check models* actions per provider, with cached results. |
| 27 | +- **Custom models** — Add provider-specific model IDs by hand when the official model list lags behind. |
| 28 | +- **LM Studio support** — Talk to local OpenAI-compatible servers; auto-discovery of loaded models, optional bearer token. |
| 29 | +- **Backup & restore** — Export and import the full extension state as a single JSON file. |
| 30 | +- **Appearance & behavior** — Dark / light theme, font size, send-with-Enter toggle, source link toggle, and language selector. |
| 31 | +- **Chat export** — Export an individual conversation as Markdown or JSON. |
| 32 | + |
| 33 | +## Project Structure |
| 34 | + |
| 35 | +- [`manifest.json`](manifest.json) — Extension manifest (MV3) |
| 36 | +- [`popup/popup.html`](popup/popup.html) — Chat UI markup |
| 37 | +- [`popup/popup.js`](popup/popup.js) — Chat logic, rendering, state management |
| 38 | +- [`options/options.html`](options/options.html) — Settings page markup |
| 39 | +- [`options/options.js`](options/options.js) — Provider configuration, model checks, backup I/O |
| 40 | +- [`background/background.js`](background/background.js) — Provider API routing in the service worker |
| 41 | +- [`shared/i18n.js`](shared/i18n.js) — Translation dictionary and helpers (EN / DE / RU) |
| 42 | + |
| 43 | +## Installation (Chrome / Edge) |
| 44 | + |
| 45 | +1. Clone this repository or download it as a ZIP and extract it. |
| 46 | +2. Open the extensions page in your browser: |
30 | 47 | - Chrome: `chrome://extensions` |
31 | 48 | - Edge: `edge://extensions` |
32 | | -3. Entwicklermodus aktivieren. |
33 | | -4. `Entpackte Erweiterung laden` auswahlen. |
34 | | -5. Projektordner `Browser_Extension` auswahlen. |
| 49 | +3. Enable **Developer mode**. |
| 50 | +4. Click **Load unpacked**. |
| 51 | +5. Select the project root directory. |
35 | 52 |
|
36 | | -## Verwendung |
| 53 | +## Usage |
37 | 54 |
|
38 | | -1. Extension offnen. |
39 | | -2. Auf Einstellungen gehen und Provider auswahlen. |
40 | | -3. API-Key hinterlegen. Bei LM Studio ist er optional. |
41 | | -4. Optional Modell und Base-URL anpassen. |
42 | | -5. Im Chat eine Nachricht senden. |
| 55 | +1. Open the extension from the toolbar. |
| 56 | +2. Click the settings icon and choose your preferred provider. |
| 57 | +3. Enter the API key (optional for LM Studio). |
| 58 | +4. Optionally adjust the model, base URL, temperature, and system prompt. |
| 59 | +5. Return to the popup and start chatting. |
43 | 60 |
|
44 | | -## Hinweise zu Providern |
| 61 | +## Provider Notes |
45 | 62 |
|
46 | | -- LM Studio: |
47 | | - - Standard-URL ist `http://localhost:1234` |
48 | | - - Ein API-Key kann optional gesetzt werden, falls dein lokaler Server Authentifizierung verlangt |
49 | | - - Stelle sicher, dass LM Studio lauft und ein Modell geladen ist |
| 63 | +- **LM Studio** |
| 64 | + - Default server URL: `http://localhost:1234` |
| 65 | + - An API key can be set if your local server enforces authentication. |
| 66 | + - Make sure LM Studio is running and a model is loaded before sending a message. |
| 67 | +- **OpenAI / Anthropic / Gemini / Perplexity** |
| 68 | + - Each provider has its own API key field. Keys are stored locally and never shared. |
| 69 | + - The *Base URL (advanced)* field lets you point to OpenAI-compatible proxies or self-hosted gateways. |
50 | 70 |
|
51 | | -## Entwicklung |
| 71 | +## Development |
52 | 72 |
|
53 | | -- Keine Build-Pipeline erforderlich (reines Browser-Extension-Projekt) |
54 | | -- Nach Codeanderungen Extension auf der Browser-Erweiterungsseite neu laden |
| 73 | +- No build pipeline — this is a plain browser extension project. |
| 74 | +- After editing files, reload the extension on the browser's extensions page. |
| 75 | +- The i18n dictionary lives in `shared/i18n.js`. To add a new language, add a new key under `TRANSLATIONS` and extend the language selector in `options/options.html`. |
55 | 76 |
|
56 | | -## Lizenz |
| 77 | +## License |
57 | 78 |
|
58 | 79 | MIT |
0 commit comments