zerochat 7.3.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- zerochat-7.3.0.dist-info/METADATA +70 -0
- zerochat-7.3.0.dist-info/RECORD +130 -0
- zerochat-7.3.0.dist-info/WHEEL +5 -0
- zerochat-7.3.0.dist-info/entry_points.txt +2 -0
- zerochat-7.3.0.dist-info/licenses/LICENSE +34 -0
- zerochat-7.3.0.dist-info/top_level.txt +2 -0
- zerochat.py +2004 -0
- zerochat_runtime/__init__.py +1 -0
- zerochat_runtime/assets/css/base.css +199 -0
- zerochat_runtime/assets/css/components/composer.css +1258 -0
- zerochat_runtime/assets/css/components/debug.css +777 -0
- zerochat_runtime/assets/css/components/header.css +97 -0
- zerochat_runtime/assets/css/components/icons.css +39 -0
- zerochat_runtime/assets/css/components/markdown.css +685 -0
- zerochat_runtime/assets/css/components/messages.css +473 -0
- zerochat_runtime/assets/css/components/modals.css +1319 -0
- zerochat_runtime/assets/css/components/sidebar.css +622 -0
- zerochat_runtime/assets/css/components/tools.css +1223 -0
- zerochat_runtime/assets/css/layout.css +171 -0
- zerochat_runtime/assets/css/print.css +120 -0
- zerochat_runtime/assets/css/styles.css +18 -0
- zerochat_runtime/assets/css/theme-overrides.css +555 -0
- zerochat_runtime/assets/css/tokens.css +165 -0
- zerochat_runtime/assets/help/architecture.html +247 -0
- zerochat_runtime/assets/help/composer.html +134 -0
- zerochat_runtime/assets/help/conversations.html +105 -0
- zerochat_runtime/assets/help/debug.html +108 -0
- zerochat_runtime/assets/help/en/architecture.html +247 -0
- zerochat_runtime/assets/help/en/composer.html +134 -0
- zerochat_runtime/assets/help/en/conversations.html +104 -0
- zerochat_runtime/assets/help/en/debug.html +105 -0
- zerochat_runtime/assets/help/en/gemini-free.html +39 -0
- zerochat_runtime/assets/help/en/index.html +191 -0
- zerochat_runtime/assets/help/en/learning.html +71 -0
- zerochat_runtime/assets/help/en/mcp.html +143 -0
- zerochat_runtime/assets/help/en/openrouter-free.html +39 -0
- zerochat_runtime/assets/help/en/profiles.html +173 -0
- zerochat_runtime/assets/help/en/rag.html +130 -0
- zerochat_runtime/assets/help/en/reasoning-telemetry.html +108 -0
- zerochat_runtime/assets/help/en/tools-agent.html +133 -0
- zerochat_runtime/assets/help/en/webllm.html +355 -0
- zerochat_runtime/assets/help/gemini-free.html +39 -0
- zerochat_runtime/assets/help/help.css +604 -0
- zerochat_runtime/assets/help/help.js +51 -0
- zerochat_runtime/assets/help/index.html +194 -0
- zerochat_runtime/assets/help/learning.html +71 -0
- zerochat_runtime/assets/help/mcp.html +143 -0
- zerochat_runtime/assets/help/openrouter-free.html +39 -0
- zerochat_runtime/assets/help/profiles.html +174 -0
- zerochat_runtime/assets/help/rag.html +130 -0
- zerochat_runtime/assets/help/reasoning-telemetry.html +111 -0
- zerochat_runtime/assets/help/tools-agent.html +133 -0
- zerochat_runtime/assets/help/webllm.html +359 -0
- zerochat_runtime/assets/js/agent-core.js +1553 -0
- zerochat_runtime/assets/js/api.js +844 -0
- zerochat_runtime/assets/js/app.js +2558 -0
- zerochat_runtime/assets/js/attachments.js +220 -0
- zerochat_runtime/assets/js/charts.js +338 -0
- zerochat_runtime/assets/js/chat-engine.js +566 -0
- zerochat_runtime/assets/js/config-store.js +207 -0
- zerochat_runtime/assets/js/context-manager.js +584 -0
- zerochat_runtime/assets/js/conversation-service.js +484 -0
- zerochat_runtime/assets/js/cookies.js +688 -0
- zerochat_runtime/assets/js/data-reset-service.js +136 -0
- zerochat_runtime/assets/js/debug.js +508 -0
- zerochat_runtime/assets/js/defaults.js +16 -0
- zerochat_runtime/assets/js/export.js +179 -0
- zerochat_runtime/assets/js/file-parser.js +2088 -0
- zerochat_runtime/assets/js/generation-controller.js +417 -0
- zerochat_runtime/assets/js/i18n.js +1483 -0
- zerochat_runtime/assets/js/icons.js +156 -0
- zerochat_runtime/assets/js/ingestionEngine.js +436 -0
- zerochat_runtime/assets/js/markdown.js +588 -0
- zerochat_runtime/assets/js/mcp.js +1271 -0
- zerochat_runtime/assets/js/message-turns.js +62 -0
- zerochat_runtime/assets/js/profile-backup.js +118 -0
- zerochat_runtime/assets/js/profile-export-bundle.js +481 -0
- zerochat_runtime/assets/js/profile-repository.js +213 -0
- zerochat_runtime/assets/js/providers-webllm.js +486 -0
- zerochat_runtime/assets/js/providers.js +1560 -0
- zerochat_runtime/assets/js/rag-index.js +295 -0
- zerochat_runtime/assets/js/rag-service.js +530 -0
- zerochat_runtime/assets/js/rag-ui.js +997 -0
- zerochat_runtime/assets/js/ragStorage.js +676 -0
- zerochat_runtime/assets/js/sandbox.js +449 -0
- zerochat_runtime/assets/js/state.js +704 -0
- zerochat_runtime/assets/js/storage-db.js +144 -0
- zerochat_runtime/assets/js/tool-cards.js +330 -0
- zerochat_runtime/assets/js/tool-security.js +653 -0
- zerochat_runtime/assets/js/tools/README.md +50 -0
- zerochat_runtime/assets/js/tools/builtin/agent-checkpoint.tool.js +212 -0
- zerochat_runtime/assets/js/tools/builtin/download-pdf.tool.js +111 -0
- zerochat_runtime/assets/js/tools/builtin/execute-javascript.tool.js +219 -0
- zerochat_runtime/assets/js/tools/builtin/fetch-web-page.tool.js +112 -0
- zerochat_runtime/assets/js/tools/builtin/list-documents.tool.js +117 -0
- zerochat_runtime/assets/js/tools/builtin/read-knowledge-chunk.tool.js +129 -0
- zerochat_runtime/assets/js/tools/builtin/read-knowledge-image.tool.js +95 -0
- zerochat_runtime/assets/js/tools/builtin/render-chart.tool.js +90 -0
- zerochat_runtime/assets/js/tools/builtin/search-knowledge-base.tool.js +124 -0
- zerochat_runtime/assets/js/tools/builtin/search-web.tool.js +125 -0
- zerochat_runtime/assets/js/tools/tool-manifest.js +53 -0
- zerochat_runtime/assets/js/tools/tool-runtime.js +77 -0
- zerochat_runtime/assets/js/ui-composer.js +319 -0
- zerochat_runtime/assets/js/ui-conversation.js +655 -0
- zerochat_runtime/assets/js/ui-dialogs.js +132 -0
- zerochat_runtime/assets/js/ui-generation-status.js +119 -0
- zerochat_runtime/assets/js/ui-inspector.js +804 -0
- zerochat_runtime/assets/js/ui-mcp.js +604 -0
- zerochat_runtime/assets/js/ui-profiles.js +824 -0
- zerochat_runtime/assets/js/ui-reasoning.js +146 -0
- zerochat_runtime/assets/js/ui-settings.js +825 -0
- zerochat_runtime/assets/js/ui-shell.js +215 -0
- zerochat_runtime/assets/js/ui-sidebar.js +429 -0
- zerochat_runtime/assets/js/ui-telemetry.js +404 -0
- zerochat_runtime/assets/js/ui-transfer.js +262 -0
- zerochat_runtime/assets/js/utils.js +216 -0
- zerochat_runtime/assets/js/vendor/orama.browser.js +11 -0
- zerochat_runtime/assets/js/web-browser.js +569 -0
- zerochat_runtime/assets/js/web-search.js +519 -0
- zerochat_runtime/assets/manifest.webmanifest +20 -0
- zerochat_runtime/assets/services/dummy_mcp/dummy_mcp_server.py +47 -0
- zerochat_runtime/assets/services/dummy_mcp/service.json +22 -0
- zerochat_runtime/assets/services/lsp/installer.json +9 -0
- zerochat_runtime/assets/services/lsp/service.json +22 -0
- zerochat_runtime/assets/services/memory/installer.json +9 -0
- zerochat_runtime/assets/services/memory/service.json +24 -0
- zerochat_runtime/assets/services/playwright/installer.json +10 -0
- zerochat_runtime/assets/services/playwright/service.json +39 -0
- zerochat_runtime/assets/sw.js +164 -0
- zerochat_runtime/assets/zerochat.html +671 -0
|
@@ -0,0 +1,247 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Architecture & Portability · ZeroChat Help</title>
|
|
7
|
+
<meta name="description" content="Technical architecture of ZeroChat: static HTTPS web application, unified zerochat.py local backend, local IndexedDB storage, and absolute data privacy.">
|
|
8
|
+
<link rel="stylesheet" href="../help.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div class="container">
|
|
12
|
+
<header>
|
|
13
|
+
<div class="header-top">
|
|
14
|
+
<a href="index.html" class="logo-badge">
|
|
15
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 17l6-6-6-6M12 19h8"/></svg>
|
|
16
|
+
ZeroChat Docs
|
|
17
|
+
</a>
|
|
18
|
+
<div class="header-actions">
|
|
19
|
+
<a href="../architecture.html" class="top-nav-link">Español 🌐</a>
|
|
20
|
+
<a href="index.html" class="top-nav-link">← Back to Index</a>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<h1>Architecture & Portability</h1>
|
|
24
|
+
<p class="subtitle">Learn how ZeroChat operates as a server-independent, fully autonomous, 100% portable web application.</p>
|
|
25
|
+
</header>
|
|
26
|
+
|
|
27
|
+
<div class="card">
|
|
28
|
+
<h2>1. Static Web Architecture & Unified Backend</h2>
|
|
29
|
+
<p>
|
|
30
|
+
ZeroChat is built on a fundamental premise: <strong>maximum simplicity, speed, and control without heavy dependencies</strong>.
|
|
31
|
+
</p>
|
|
32
|
+
<p>
|
|
33
|
+
The web application is served directly and statically over HTTPS from GitHub Pages as <code>zerochat.html</code>, loading modular <code>css/</code> and <code>js/</code> files with no build step. Its Service Worker reuses available resources but does not replace a connection when one is needed.
|
|
34
|
+
</p>
|
|
35
|
+
<p>
|
|
36
|
+
All local system interaction (command execution, file reading, and editing) is channeled through a single Python executable: <code>zerochat.py</code>, which manages its own virtual environment in <code>./zerochat</code> and authenticates sessions using secure daily tokens.
|
|
37
|
+
</p>
|
|
38
|
+
<div class="alert alert-success">
|
|
39
|
+
<strong>Key advantage:</strong> No bundlers, compilers, or build pipelines. The web application runs statically and the local backend runs on any system with a single terminal command.
|
|
40
|
+
</div>
|
|
41
|
+
</div>
|
|
42
|
+
|
|
43
|
+
<div class="card" id="modos-arranque">
|
|
44
|
+
<h2>2. Launch Modes: zerochat.html (Web) vs. zerochat.py (Local Backend)</h2>
|
|
45
|
+
<p>
|
|
46
|
+
ZeroChat is designed to deliver two complementary experiences depending on the workflow context: an <strong>autonomous universal web application</strong> (ideal for mobile devices and zero-install daily usage) and a <strong>local workstation host</strong> (for developer workflows requiring direct operating system control).
|
|
47
|
+
</p>
|
|
48
|
+
|
|
49
|
+
<h3>A. The Standalone Web Version (<code>zerochat.html</code>)</h3>
|
|
50
|
+
<p>
|
|
51
|
+
Accessible directly online (via GitHub Pages) or by opening the HTML file locally in any browser. It is a complete, self-contained application that <strong>requires neither Python, terminal commands, auxiliary servers, nor installation</strong>.
|
|
52
|
+
</p>
|
|
53
|
+
<ul>
|
|
54
|
+
<li>
|
|
55
|
+
<strong>Universal web experience:</strong>
|
|
56
|
+
Engineered as an installable Progressive Web App (PWA) in modern browsers, with a touch-friendly drawer sidebar and auto-expanding composer. No Python, root access, or terminal tools are needed.
|
|
57
|
+
</li>
|
|
58
|
+
<li>
|
|
59
|
+
<strong>Universal Multi-Model Connectivity:</strong>
|
|
60
|
+
Connects directly from the browser to commercial cloud AI providers (OpenAI, Anthropic Claude, Google Gemini, OpenRouter) as well as CORS-enabled local network endpoints (Ollama, LM Studio).
|
|
61
|
+
</li>
|
|
62
|
+
<li>
|
|
63
|
+
<strong>Private In-Browser Local Inference (WebLLM / WebGPU):</strong>
|
|
64
|
+
Downloads and executes open-source LLMs directly on your device GPU with WebGPU, ensuring absolute data privacy without sending messages over the wire.
|
|
65
|
+
</li>
|
|
66
|
+
<li>
|
|
67
|
+
<strong>Integrated Document RAG Knowledge Engine:</strong>
|
|
68
|
+
Vector and lexical indexing of PDFs, Markdown, and text files using Orama running entirely inside Web Workers and persisted in IndexedDB.
|
|
69
|
+
</li>
|
|
70
|
+
<li>
|
|
71
|
+
<strong>Browser-Sandboxed Agent Mode:</strong>
|
|
72
|
+
Autonomous multi-turn loop capable of executing JavaScript code in a secure browser sandbox, rendering interactive SVG charts, performing web searches, and fetching public web pages.
|
|
73
|
+
</li>
|
|
74
|
+
<li>
|
|
75
|
+
<strong>Total User Data Sovereignty:</strong>
|
|
76
|
+
Conversations, branches, attachments, and configurations reside exclusively in your browser's private IndexedDB storage.
|
|
77
|
+
</li>
|
|
78
|
+
</ul>
|
|
79
|
+
|
|
80
|
+
<h3>B. What the Local Backend Adds (<code>zerochat.py</code>)</h3>
|
|
81
|
+
<p>
|
|
82
|
+
Tailored for desktop workstations (Linux, macOS, Windows) where an agent needs to act as a coding assistant with access to the host operating system. It has also been tested on Android through Termux:
|
|
83
|
+
</p>
|
|
84
|
+
<ul>
|
|
85
|
+
<li>
|
|
86
|
+
<strong>Host File System Control:</strong>
|
|
87
|
+
Inspect directory structures, read workspace source code, and apply atomic or chunk-level file modifications on the local disk (<code>read_file</code>, <code>edit_file</code>, <code>list_directory</code>).
|
|
88
|
+
</li>
|
|
89
|
+
<li>
|
|
90
|
+
<strong>Terminal Command Execution:</strong>
|
|
91
|
+
Run build tools, test runners, scripts, and shell commands in the host terminal environment (<code>execute_command</code>).
|
|
92
|
+
</li>
|
|
93
|
+
<li>
|
|
94
|
+
<strong>External MCP Server Ecosystem:</strong>
|
|
95
|
+
Integrate Model Context Protocol servers to expand agent capabilities (headless browser automation with Playwright, LSP static analysis servers, SQLite relational storage).
|
|
96
|
+
</li>
|
|
97
|
+
<li>
|
|
98
|
+
<strong>Automated Environment Management:</strong>
|
|
99
|
+
Manages its own virtual environment in <code>./zerochat</code>, binds to port 6388 with strict ephemeral daily token authorization, and streams real-time terminal logs with timestamping and error diagnostics.
|
|
100
|
+
</li>
|
|
101
|
+
</ul>
|
|
102
|
+
|
|
103
|
+
<h3>Feature Comparison Matrix</h3>
|
|
104
|
+
<div class="table-responsive">
|
|
105
|
+
<table>
|
|
106
|
+
<thead>
|
|
107
|
+
<tr>
|
|
108
|
+
<th>Feature / Capability</th>
|
|
109
|
+
<th style="text-align: center;"><code>zerochat.html</code> (Web / PWA)</th>
|
|
110
|
+
<th style="text-align: center;"><code>zerochat.py</code> (Local Backend)</th>
|
|
111
|
+
</tr>
|
|
112
|
+
</thead>
|
|
113
|
+
<tbody>
|
|
114
|
+
<tr>
|
|
115
|
+
<td>Commercial AI API connections (OpenAI, Claude, Gemini, etc.)</td>
|
|
116
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
117
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
118
|
+
</tr>
|
|
119
|
+
<tr>
|
|
120
|
+
<td>100% In-browser local inference via WebLLM & WebGPU</td>
|
|
121
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
122
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
123
|
+
</tr>
|
|
124
|
+
<tr>
|
|
125
|
+
<td>In-browser Document RAG Knowledge Base (Orama)</td>
|
|
126
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
127
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
128
|
+
</tr>
|
|
129
|
+
<tr>
|
|
130
|
+
<td>Agent Mode with JS sandbox, web search & SVG charts</td>
|
|
131
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
132
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
133
|
+
</tr>
|
|
134
|
+
<tr>
|
|
135
|
+
<td>Private IndexedDB persistence and JSON/Markdown export</td>
|
|
136
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
137
|
+
<td style="text-align: center;">✅ Yes</td>
|
|
138
|
+
</tr>
|
|
139
|
+
<tr>
|
|
140
|
+
<td>Direct usage on Mobile (Android / iOS) without Python/terminal</td>
|
|
141
|
+
<td style="text-align: center;">✅ Native (PWA)</td>
|
|
142
|
+
<td style="text-align: center;">⚠️ Requires Python (Termux or desktop)</td>
|
|
143
|
+
</tr>
|
|
144
|
+
<tr>
|
|
145
|
+
<td>Host file system navigation, reading and atomic editing</td>
|
|
146
|
+
<td style="text-align: center;">❌ Not available</td>
|
|
147
|
+
<td style="text-align: center;">✅ Yes (host tools)</td>
|
|
148
|
+
</tr>
|
|
149
|
+
<tr>
|
|
150
|
+
<td>Host terminal shell command execution</td>
|
|
151
|
+
<td style="text-align: center;">❌ Not available</td>
|
|
152
|
+
<td style="text-align: center;">✅ Yes (bash/shell)</td>
|
|
153
|
+
</tr>
|
|
154
|
+
<tr>
|
|
155
|
+
<td>External MCP servers (Playwright, memory, LSP)</td>
|
|
156
|
+
<td style="text-align: center;">❌ Not available</td>
|
|
157
|
+
<td style="text-align: center;">✅ Yes (integrated MCP manager)</td>
|
|
158
|
+
</tr>
|
|
159
|
+
</tbody>
|
|
160
|
+
</table>
|
|
161
|
+
</div>
|
|
162
|
+
</div>
|
|
163
|
+
|
|
164
|
+
<div class="card">
|
|
165
|
+
<h2>3. Static Web Delivery & Local Backend Connectivity</h2>
|
|
166
|
+
<p>ZeroChat is distributed as a universal static web application:</p>
|
|
167
|
+
<ul>
|
|
168
|
+
<li>
|
|
169
|
+
<strong>Universal Web Delivery (HTTPS):</strong> Served directly from GitHub Pages (<code>https://albalday.github.io/zerochat/zerochat.html</code>). All interface rendering, agent execution, and inference calls happen in the browser with full access to modern web APIs like <code>navigator.storage.persist()</code> and private local IndexedDB storage.
|
|
170
|
+
</li>
|
|
171
|
+
<li>
|
|
172
|
+
<strong>Unified Local Backend (<code>zerochat.py</code>):</strong> Running <code>python3 zerochat.py</code> launches the local server on <code>127.0.0.1:6388</code>, opens the browser pointing to the web app, and passes the daily session token securely via the URL fragment. In Termux, it detects the environment and uses <code>termux-open-url</code> to open the Android browser; on other Linux desktops it uses the default application launcher. The launch command is the same in both cases. The app consumes that fragment only once, removes it from the address bar, and retains the local session in a short-lived cookie, so reloads and new tabs neither expose nor propagate the token again.
|
|
173
|
+
</li>
|
|
174
|
+
</ul>
|
|
175
|
+
<div class="alert alert-info">
|
|
176
|
+
<strong>Automatic local development & testing:</strong> When running <code>python3 zerochat.py</code> directly inside the cloned repository, it automatically detects the development environment and serves the local interface at <code>http://127.0.0.1:6388/zerochat.html</code> without requiring auxiliary servers or launch scripts.
|
|
177
|
+
<br><br>
|
|
178
|
+
<strong>How to run tests:</strong>
|
|
179
|
+
<ul style="margin-top: 0.5rem; margin-bottom: 0;">
|
|
180
|
+
<li><code>python3 zerochat.py</code>: Starts the backend and automatically opens the local development web UI in the default browser.</li>
|
|
181
|
+
<li><code>python3 zerochat.py --test</code>: Runs quick internal self-tests for core host tools (file reading, directory listing, command execution).</li>
|
|
182
|
+
<li><code>npm test</code>: Runs the full automated test suite (unit, integration, architecture, infrastructure, and Playwright browser tests).</li>
|
|
183
|
+
<li><code>npm run test:browser</code>: Runs only browser and visual UI tests.</li>
|
|
184
|
+
</ul>
|
|
185
|
+
</div>
|
|
186
|
+
</div>
|
|
187
|
+
|
|
188
|
+
<div class="card">
|
|
189
|
+
<h2>4. Local Storage & Data Privacy</h2>
|
|
190
|
+
<p>
|
|
191
|
+
ZeroChat's storage architecture strictly respects <strong>user data sovereignty</strong>. The application never transmits conversation history, credentials, or documents to any telemetry backend.
|
|
192
|
+
</p>
|
|
193
|
+
<h3>Client-side storage layers:</h3>
|
|
194
|
+
<ul>
|
|
195
|
+
<li>
|
|
196
|
+
<strong>IndexedDB (ZeroChatDB):</strong> Structured browser database storing chat sessions, messages, metadata, user profile configurations, and local RAG branches.
|
|
197
|
+
</li>
|
|
198
|
+
<li>
|
|
199
|
+
<strong>Isolated Attachment Store:</strong> Large Base64 images and uploaded documents are isolated in dedicated IndexedDB object stores to keep the active message tree fast, responsive, and lightweight.
|
|
200
|
+
</li>
|
|
201
|
+
<li>
|
|
202
|
+
<strong>Cache Storage API:</strong> Used by WebLLM to persist downloaded local model weights and shader modules.
|
|
203
|
+
</li>
|
|
204
|
+
<li>
|
|
205
|
+
<strong>LocalStorage / Session Cookies (ChatStorage):</strong> Manages UI state and interface preferences (such as the active color theme).
|
|
206
|
+
</li>
|
|
207
|
+
</ul>
|
|
208
|
+
</div>
|
|
209
|
+
|
|
210
|
+
<div class="card">
|
|
211
|
+
<h2>5. Canonical State (ChatState)</h2>
|
|
212
|
+
<p>
|
|
213
|
+
To prevent memory leaks or state desynchronization across components, ZeroChat uses a single canonical state store: <code>ChatState</code>.
|
|
214
|
+
</p>
|
|
215
|
+
<p>
|
|
216
|
+
Every lifecycle change (switching sessions, appending streamed tokens, tracking inference progress, or executing tools) occurs through domain mutators (such as <code>appendMessage</code>, <code>replaceMessages</code>, or <code>saveSessionMetadata</code>). This ensures reactive, synchronized updates throughout the UI.
|
|
217
|
+
</p>
|
|
218
|
+
</div>
|
|
219
|
+
|
|
220
|
+
<div class="card">
|
|
221
|
+
<h2>6. Shared conversation rules</h2>
|
|
222
|
+
<p>New and restored responses share visual block and copy components. Streaming retains its cursor during generation. Connection errors use a common view that escapes the received message and URL before inserting them into HTML.</p>
|
|
223
|
+
<p>Active configuration comes from <code>ChatConfig</code>. Profile and catalog interfaces query the WebLLM provider for completed models instead of independently parsing stored metadata.</p>
|
|
224
|
+
<p>State, engine and views reuse <code>message-turns.js</code> rules to identify turns and recognize initial date messages. Turn removal shares a sanitization algorithm; <code>ChatState</code> retains the generation guard and atomic history update.</p>
|
|
225
|
+
</div>
|
|
226
|
+
|
|
227
|
+
<nav class="page-navigation" aria-label="Help navigation">
|
|
228
|
+
<div class="nav-button disabled">
|
|
229
|
+
<span class="nav-direction">First page</span>
|
|
230
|
+
<span class="nav-title">—</span>
|
|
231
|
+
</div>
|
|
232
|
+
<a href="index.html" class="nav-button index">
|
|
233
|
+
<span class="nav-direction">Index</span>
|
|
234
|
+
<span class="nav-title">View all topics</span>
|
|
235
|
+
</a>
|
|
236
|
+
<a href="profiles.html" class="nav-button next">
|
|
237
|
+
<span class="nav-direction">Next →</span>
|
|
238
|
+
<span class="nav-title">Profiles & Providers</span>
|
|
239
|
+
</a>
|
|
240
|
+
</nav>
|
|
241
|
+
|
|
242
|
+
<footer>
|
|
243
|
+
<p>ZeroChat · Universal Web AI Client · User Manual</p>
|
|
244
|
+
</footer>
|
|
245
|
+
</div>
|
|
246
|
+
</body>
|
|
247
|
+
</html>
|
|
@@ -0,0 +1,134 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Composer, Shortcuts & Attachments · ZeroChat Help</title>
|
|
7
|
+
<meta name="description" content="Guide for ZeroChat composer: auto-expanding input, keyboard shortcuts, and multi-format attachments (vision images, PDFs, code, CSV).">
|
|
8
|
+
<link rel="stylesheet" href="../help.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div class="container">
|
|
12
|
+
<header>
|
|
13
|
+
<div class="header-top">
|
|
14
|
+
<a href="index.html" class="logo-badge">
|
|
15
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 17l6-6-6-6M12 19h8"/></svg>
|
|
16
|
+
ZeroChat Docs
|
|
17
|
+
</a>
|
|
18
|
+
<div class="header-actions">
|
|
19
|
+
<a href="../composer.html" class="top-nav-link">Español 🌐</a>
|
|
20
|
+
<a href="index.html" class="top-nav-link">← Back to Index</a>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<h1>Composer, Shortcuts & Attachments</h1>
|
|
24
|
+
<p class="subtitle">Compose prompts comfortably, use keyboard shortcuts, and attach multi-format files and source code.</p>
|
|
25
|
+
</header>
|
|
26
|
+
|
|
27
|
+
<div class="card">
|
|
28
|
+
<h2>1. The Floating Composer</h2>
|
|
29
|
+
<p>
|
|
30
|
+
ZeroChat's input area is built for a responsive, fluid typing experience:
|
|
31
|
+
</p>
|
|
32
|
+
<ul>
|
|
33
|
+
<li><strong>Smooth Auto-expansion:</strong> The input box grows as you type longer prompts (using <code>field-sizing: content</code> with fallback) without overflowing the viewport.</li>
|
|
34
|
+
<li><strong>Integrated Controls Bar:</strong> Groups attachments, thinking, RAG, and context telemetry. Tools and MCP are configured in Settings.</li>
|
|
35
|
+
<li><strong>Mobile input:</strong> The field uses a short hint so the placeholder stays on one line on narrow screens.</li>
|
|
36
|
+
<li><strong>Stop Stream Button:</strong> During real-time token generation, the send button switches to an instant stop control.</li>
|
|
37
|
+
</ul>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<div class="card">
|
|
41
|
+
<h2>2. Essential Keyboard Shortcuts</h2>
|
|
42
|
+
<div class="table-responsive">
|
|
43
|
+
<table>
|
|
44
|
+
<thead>
|
|
45
|
+
<tr>
|
|
46
|
+
<th>Shortcut</th>
|
|
47
|
+
<th>Context</th>
|
|
48
|
+
<th>Action Performed</th>
|
|
49
|
+
</tr>
|
|
50
|
+
</thead>
|
|
51
|
+
<tbody>
|
|
52
|
+
<tr>
|
|
53
|
+
<td><code>Enter</code></td>
|
|
54
|
+
<td>In prompt textarea</td>
|
|
55
|
+
<td>Send message to model.</td>
|
|
56
|
+
</tr>
|
|
57
|
+
<tr>
|
|
58
|
+
<td><code>Shift + Enter</code></td>
|
|
59
|
+
<td>In prompt textarea</td>
|
|
60
|
+
<td>Insert a new line without sending.</td>
|
|
61
|
+
</tr>
|
|
62
|
+
<tr>
|
|
63
|
+
<td><code>Escape</code></td>
|
|
64
|
+
<td>In any open modal or menu</td>
|
|
65
|
+
<td>Close active popup or dialog.</td>
|
|
66
|
+
</tr>
|
|
67
|
+
<tr>
|
|
68
|
+
<td><code>Arrow Keys ↑ / ↓</code></td>
|
|
69
|
+
<td>In profile selection menu</td>
|
|
70
|
+
<td>Navigate through available profiles.</td>
|
|
71
|
+
</tr>
|
|
72
|
+
<tr>
|
|
73
|
+
<td><code>Ctrl / Cmd + V</code></td>
|
|
74
|
+
<td>Anywhere in chat window</td>
|
|
75
|
+
<td>Paste images or text directly from clipboard.</td>
|
|
76
|
+
</tr>
|
|
77
|
+
</tbody>
|
|
78
|
+
</table>
|
|
79
|
+
</div>
|
|
80
|
+
</div>
|
|
81
|
+
|
|
82
|
+
<div class="card">
|
|
83
|
+
<h2>3. Attaching Files & Documents</h2>
|
|
84
|
+
<p>
|
|
85
|
+
ZeroChat includes a client-side file ingestion engine (<code>file-parser.js</code>). Attach files via the paperclip icon or by <strong>dragging and dropping</strong> them into the window.
|
|
86
|
+
</p>
|
|
87
|
+
<h3>Supported Formats:</h3>
|
|
88
|
+
<ul>
|
|
89
|
+
<li><strong>Images (PNG, JPEG, WebP, GIF):</strong> For vision-capable models (e.g., GPT-4o, Claude 3.5/3.7, Gemini Flash/Pro).</li>
|
|
90
|
+
<li><strong>PDF Documents:</strong> Text is extracted client-side with page count and title metadata.</li>
|
|
91
|
+
<li><strong>Source Code & Scripts:</strong> <code>.js</code>, <code>.ts</code>, <code>.py</code>, <code>.html</code>, <code>.css</code>, <code>.json</code>, <code>.sql</code>, <code>.c</code>, <code>.rs</code>, <code>.go</code>, <code>.sh</code> with syntax highlighting.</li>
|
|
92
|
+
<li><strong>Data Tables:</strong> <code>.csv</code> and <code>.tsv</code> files for data extraction and charting.</li>
|
|
93
|
+
<li><strong>Text Files:</strong> <code>.md</code>, <code>.txt</code>, <code>.xml</code>, <code>.yaml</code>.</li>
|
|
94
|
+
</ul>
|
|
95
|
+
<div class="alert alert-info">
|
|
96
|
+
<strong>Preview & Removal:</strong> Miniatures show file name and size before sending. Click the "X" on any item to discard it.
|
|
97
|
+
</div>
|
|
98
|
+
</div>
|
|
99
|
+
|
|
100
|
+
<div class="card">
|
|
101
|
+
<h2>4. Rich Message Formatting</h2>
|
|
102
|
+
<p>
|
|
103
|
+
Assistant responses are rendered with a high-performance Markdown engine featuring:
|
|
104
|
+
</p>
|
|
105
|
+
<ul>
|
|
106
|
+
<li>Syntax-highlighted code blocks with a quick copy button.</li>
|
|
107
|
+
<li>Formatted tables with alignment styling.</li>
|
|
108
|
+
<li>LaTeX math equations (KaTeX) inline and in block mode.</li>
|
|
109
|
+
<li>Collapsible Thinking blocks with deliberation timers.</li>
|
|
110
|
+
<li>Interactive Tool Cards for agent executions.</li>
|
|
111
|
+
</ul>
|
|
112
|
+
</div>
|
|
113
|
+
|
|
114
|
+
<nav class="page-navigation" aria-label="Help navigation">
|
|
115
|
+
<a href="conversations.html" class="nav-button prev">
|
|
116
|
+
<span class="nav-direction">← Previous</span>
|
|
117
|
+
<span class="nav-title">Conversations & Branching</span>
|
|
118
|
+
</a>
|
|
119
|
+
<a href="index.html" class="nav-button index">
|
|
120
|
+
<span class="nav-direction">Index</span>
|
|
121
|
+
<span class="nav-title">View all topics</span>
|
|
122
|
+
</a>
|
|
123
|
+
<a href="reasoning-telemetry.html" class="nav-button next">
|
|
124
|
+
<span class="nav-direction">Next →</span>
|
|
125
|
+
<span class="nav-title">Reasoning & Telemetry</span>
|
|
126
|
+
</a>
|
|
127
|
+
</nav>
|
|
128
|
+
|
|
129
|
+
<footer>
|
|
130
|
+
<p>ZeroChat · Universal Web AI Client · User Manual</p>
|
|
131
|
+
</footer>
|
|
132
|
+
</div>
|
|
133
|
+
</body>
|
|
134
|
+
</html>
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Conversations, History & Branching · ZeroChat Help</title>
|
|
7
|
+
<meta name="description" content="Guide for organizing conversations in ZeroChat: chronological sidebar, instant search, turn branching, and secure session export/import.">
|
|
8
|
+
<link rel="stylesheet" href="../help.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div class="container">
|
|
12
|
+
<header>
|
|
13
|
+
<div class="header-top">
|
|
14
|
+
<a href="index.html" class="logo-badge">
|
|
15
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 17l6-6-6-6M12 19h8"/></svg>
|
|
16
|
+
ZeroChat Docs
|
|
17
|
+
</a>
|
|
18
|
+
<div class="header-actions">
|
|
19
|
+
<a href="../conversations.html" class="top-nav-link">Español 🌐</a>
|
|
20
|
+
<a href="index.html" class="top-nav-link">← Back to Index</a>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<h1>Conversations, History & Branching</h1>
|
|
24
|
+
<p class="subtitle">Manage chat sessions, explore alternative answers with branching, and safely back up your conversations.</p>
|
|
25
|
+
</header>
|
|
26
|
+
|
|
27
|
+
<div class="card">
|
|
28
|
+
<h2>1. The Conversations Sidebar</h2>
|
|
29
|
+
<p>
|
|
30
|
+
The left-hand sidebar (accessible on mobile via the top-left menu button) houses your complete chat archive.
|
|
31
|
+
</p>
|
|
32
|
+
<ul>
|
|
33
|
+
<li><strong>New Chat:</strong> Instantly creates a clean chat session preserving your active profile.</li>
|
|
34
|
+
<li><strong>Chronological Grouping:</strong> Chats are organized into clear time buckets: <em>Today</em>, <em>Yesterday</em>, <em>Previous 7 Days</em>, <em>This Month</em>, and <em>Older</em>.</li>
|
|
35
|
+
<li><strong>Real-time Search:</strong> Filter your chat history instantly by title.</li>
|
|
36
|
+
<li><strong>Quick Session Actions:</strong> Hover over any session to export or delete it individually.</li>
|
|
37
|
+
</ul>
|
|
38
|
+
</div>
|
|
39
|
+
|
|
40
|
+
<div class="card">
|
|
41
|
+
<h2>2. Turn Branching</h2>
|
|
42
|
+
<p>
|
|
43
|
+
<strong>Branching</strong> lets you explore alternative lines of thought without losing previous context.
|
|
44
|
+
</p>
|
|
45
|
+
<h3>How it works:</h3>
|
|
46
|
+
<ol>
|
|
47
|
+
<li>Click the branch icon button beneath any assistant response.</li>
|
|
48
|
+
<li>ZeroChat creates a <strong>new independent chat</strong> containing the conversation history up to that point.</li>
|
|
49
|
+
<li>Subsequent messages from the original conversation are omitted in the new branch, allowing you to ask a different follow-up or test an alternative model.</li>
|
|
50
|
+
<li>The original conversation remains completely intact and accessible from the sidebar.</li>
|
|
51
|
+
</ol>
|
|
52
|
+
<div class="alert alert-info">
|
|
53
|
+
<strong>Typical use case:</strong> When an assistant offers two approaches to a problem, branch at that turn to explore "Option A" in one chat and "Option B" in another.
|
|
54
|
+
</div>
|
|
55
|
+
</div>
|
|
56
|
+
|
|
57
|
+
<div class="card">
|
|
58
|
+
<h2>3. Exporting Conversations</h2>
|
|
59
|
+
<p>
|
|
60
|
+
Export your chat sessions into standard formats:
|
|
61
|
+
</p>
|
|
62
|
+
<ul>
|
|
63
|
+
<li><strong>Full Session JSON:</strong> Contains messages, metadata, tool calls, and profile settings. Functions as a 1:1 backup that can be imported back into ZeroChat.</li>
|
|
64
|
+
<li><strong>Markdown (.md):</strong> Formatted text ready for Obsidian, GitHub, Notion, or personal wikis, preserving headers, code blocks, tables, and math equations.</li>
|
|
65
|
+
<li><strong>Plain Text (.txt):</strong> Lightweight transcript for quick reading and sharing.</li>
|
|
66
|
+
<li><strong>PDF:</strong> A print-ready view that can be saved as PDF.</li>
|
|
67
|
+
</ul>
|
|
68
|
+
</div>
|
|
69
|
+
|
|
70
|
+
<div class="card">
|
|
71
|
+
<h2>4. Session Import & Safe Purge</h2>
|
|
72
|
+
<p>
|
|
73
|
+
Click <strong>"Import chat"</strong> in the sidebar footer to load any exported ZeroChat <code>.json</code> file.
|
|
74
|
+
</p>
|
|
75
|
+
<p>
|
|
76
|
+
Imported sessions are validated, sanitized, and stored directly into your browser's IndexedDB database.
|
|
77
|
+
</p>
|
|
78
|
+
<p>Only ZeroChat JSON backups can be imported, and importing is unavailable while a response is being generated.</p>
|
|
79
|
+
<div class="alert alert-warning">
|
|
80
|
+
<strong>Safe Bulk Deletion:</strong> The trash icon in the sidebar footer lets you delete all stored chats at once. ZeroChat prompts for confirmation before wiping data.
|
|
81
|
+
</div>
|
|
82
|
+
</div>
|
|
83
|
+
|
|
84
|
+
<nav class="page-navigation" aria-label="Help navigation">
|
|
85
|
+
<a href="debug.html" class="nav-button prev">
|
|
86
|
+
<span class="nav-direction">← Previous</span>
|
|
87
|
+
<span class="nav-title">Debugging & Interceptor</span>
|
|
88
|
+
</a>
|
|
89
|
+
<a href="index.html" class="nav-button index">
|
|
90
|
+
<span class="nav-direction">Index</span>
|
|
91
|
+
<span class="nav-title">View all topics</span>
|
|
92
|
+
</a>
|
|
93
|
+
<a href="composer.html" class="nav-button next">
|
|
94
|
+
<span class="nav-direction">Next →</span>
|
|
95
|
+
<span class="nav-title">Composer & Multimedia</span>
|
|
96
|
+
</a>
|
|
97
|
+
</nav>
|
|
98
|
+
|
|
99
|
+
<footer>
|
|
100
|
+
<p>ZeroChat · Universal Web AI Client · User Manual</p>
|
|
101
|
+
</footer>
|
|
102
|
+
</div>
|
|
103
|
+
</body>
|
|
104
|
+
</html>
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Debugging, Logs & Message Interceptor · ZeroChat Help</title>
|
|
7
|
+
<meta name="description" content="Guide to ZeroChat's debug panel, Raw view, and request interceptor.">
|
|
8
|
+
<link rel="stylesheet" href="../help.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div class="container">
|
|
12
|
+
<header>
|
|
13
|
+
<div class="header-top">
|
|
14
|
+
<a href="index.html" class="logo-badge">
|
|
15
|
+
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M4 17l6-6-6-6M12 19h8"/></svg>
|
|
16
|
+
ZeroChat Docs
|
|
17
|
+
</a>
|
|
18
|
+
<div class="header-actions">
|
|
19
|
+
<a href="../debug.html" class="top-nav-link">Español 🌐</a>
|
|
20
|
+
<a href="index.html" class="top-nav-link">← Back to Index</a>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<h1>Debugging, Logs & Interceptor</h1>
|
|
24
|
+
<p class="subtitle">Inspect internal inference events, monitor network traffic, and modify payloads in flight with the interactive interceptor.</p>
|
|
25
|
+
</header>
|
|
26
|
+
|
|
27
|
+
<div class="card">
|
|
28
|
+
<h2>1. The Debug Panel</h2>
|
|
29
|
+
<p>
|
|
30
|
+
ZeroChat includes a right-hand sidebar designed for developers, security researchers, and power users. Click the terminal icon in the top-right header to toggle the panel.
|
|
31
|
+
</p>
|
|
32
|
+
<p>
|
|
33
|
+
The panel provides a live, monospace console streaming system events in real time.
|
|
34
|
+
</p>
|
|
35
|
+
<h3>Event Filter Tabs:</h3>
|
|
36
|
+
<ul>
|
|
37
|
+
<li><strong>All:</strong> Unified log view containing system, network, and tool execution messages.</li>
|
|
38
|
+
<li><strong>Thinking:</strong> Isolates native model reasoning and chain-of-thought blocks.</li>
|
|
39
|
+
<li><strong>Tool:</strong> Tracks function invocations, parameter bindings, and return values.</li>
|
|
40
|
+
<li><strong>Network:</strong> Displays HTTP calls, header payloads, status codes, and connection latency.</li>
|
|
41
|
+
<li><strong>Raw:</strong> Shows unprocessed provider communication entries and outputs.</li>
|
|
42
|
+
</ul>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div class="card">
|
|
46
|
+
<h2>2. Console Utilities</h2>
|
|
47
|
+
<ul>
|
|
48
|
+
<li><strong>Copy Logs:</strong> Copies the formatted log history with timestamps to your clipboard for bug reporting.</li>
|
|
49
|
+
<li><strong>Clear Console:</strong> Clears the active log view to begin a fresh debugging session.</li>
|
|
50
|
+
<li><strong>Auto-scroll:</strong> Toggles following latest events automatically or pausing to inspect past entries.</li>
|
|
51
|
+
</ul>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div class="card">
|
|
55
|
+
<h2>3. Message Interceptor Mode (Debug Messages)</h2>
|
|
56
|
+
<p>
|
|
57
|
+
The <strong>Message Interceptor</strong> pauses outgoing requests right before transmission when the <em>"Debug messages"</em> switch is enabled.
|
|
58
|
+
</p>
|
|
59
|
+
<h3>How it works:</h3>
|
|
60
|
+
<ol>
|
|
61
|
+
<li>Type a prompt and press Send. The request is <strong>held before reaching the network</strong>.</li>
|
|
62
|
+
<li>An inspection dialog opens showing the exact <strong>JSON payload</strong> (system prompts, message history, registered tool schemas, temperature, etc.).</li>
|
|
63
|
+
<li>You can inspect fields, manually edit parameters, or test prompt mutations directly.</li>
|
|
64
|
+
<li>The header contains the send actions and an X button to cancel:
|
|
65
|
+
<ul>
|
|
66
|
+
<li><strong>Continue / Send:</strong> Sends the edited payload to the provider.</li>
|
|
67
|
+
<li><strong>Send & stop debug:</strong> Sends the payload and disables the interceptor for subsequent requests.</li>
|
|
68
|
+
<li><strong>X:</strong> Aborts the request cleanly with zero tokens spent.</li>
|
|
69
|
+
</ul>
|
|
70
|
+
</li>
|
|
71
|
+
</ol>
|
|
72
|
+
<div class="alert alert-info">
|
|
73
|
+
<strong>Ideal for developers:</strong> Test model robustness against adversarial prompts or verify tool call schema definitions without writing custom proxy code.
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div class="card">
|
|
78
|
+
<h2>4. Raw view</h2>
|
|
79
|
+
<p>
|
|
80
|
+
The <em>Raw</em> tab is available directly in the panel; it needs no separate activation. Entries are capped to keep the panel usable.
|
|
81
|
+
</p>
|
|
82
|
+
<p>Use it to inspect requests, streaming responses, and tool calls while diagnosing a provider.</p>
|
|
83
|
+
</div>
|
|
84
|
+
|
|
85
|
+
<nav class="page-navigation" aria-label="Help navigation">
|
|
86
|
+
<a href="mcp.html" class="nav-button prev">
|
|
87
|
+
<span class="nav-direction">← Previous</span>
|
|
88
|
+
<span class="nav-title">MCP Protocol</span>
|
|
89
|
+
</a>
|
|
90
|
+
<a href="index.html" class="nav-button index">
|
|
91
|
+
<span class="nav-direction">Index</span>
|
|
92
|
+
<span class="nav-title">View all topics</span>
|
|
93
|
+
</a>
|
|
94
|
+
<a href="conversations.html" class="nav-button next">
|
|
95
|
+
<span class="nav-direction">Next →</span>
|
|
96
|
+
<span class="nav-title">Conversations & Branching</span>
|
|
97
|
+
</a>
|
|
98
|
+
</nav>
|
|
99
|
+
|
|
100
|
+
<footer>
|
|
101
|
+
<p>ZeroChat · Universal Web AI Client · User Manual</p>
|
|
102
|
+
</footer>
|
|
103
|
+
</div>
|
|
104
|
+
</body>
|
|
105
|
+
</html>
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
<!DOCTYPE html>
|
|
2
|
+
<html lang="en">
|
|
3
|
+
<head>
|
|
4
|
+
<meta charset="UTF-8">
|
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
6
|
+
<title>Gemini API key · ZeroChat</title>
|
|
7
|
+
<meta name="description" content="How to create a Gemini API key for use in ZeroChat.">
|
|
8
|
+
<link rel="stylesheet" href="../help.css">
|
|
9
|
+
</head>
|
|
10
|
+
<body>
|
|
11
|
+
<div class="container">
|
|
12
|
+
<header>
|
|
13
|
+
<h1>Get a Gemini API key</h1>
|
|
14
|
+
<p class="subtitle">Create the key in Google AI Studio using your Google account.</p>
|
|
15
|
+
</header>
|
|
16
|
+
|
|
17
|
+
<main>
|
|
18
|
+
<section class="card">
|
|
19
|
+
<h2>Steps</h2>
|
|
20
|
+
<ol>
|
|
21
|
+
<li>
|
|
22
|
+
Open <a href="https://aistudio.google.com/apikey" target="_blank" rel="noopener noreferrer">Google AI Studio’s official API keys page</a> and sign in with your Google account.
|
|
23
|
+
</li>
|
|
24
|
+
<li>Accept the terms if Google asks you to. New accounts may receive an initial project and API key automatically.</li>
|
|
25
|
+
<li>If you do not have a key to use, select <strong>Create API key</strong> and follow the dialog to create or choose a project.</li>
|
|
26
|
+
<li>Copy the API key and store it privately.</li>
|
|
27
|
+
<li>In ZeroChat, create or edit a <strong>Gemini</strong> provider profile, paste the key, and select an available model.</li>
|
|
28
|
+
</ol>
|
|
29
|
+
</section>
|
|
30
|
+
|
|
31
|
+
<section class="card">
|
|
32
|
+
<h2>Important</h2>
|
|
33
|
+
<p>Models, limits, prices, and availability change. Check <a href="https://ai.google.dev/gemini-api/docs/billing" target="_blank" rel="noopener noreferrer">Gemini API's official information</a> before production use.</p>
|
|
34
|
+
<p>Never share the API key or publish it in chats, screenshots, repositories, or public configuration files.</p>
|
|
35
|
+
</section>
|
|
36
|
+
</main>
|
|
37
|
+
</div>
|
|
38
|
+
</body>
|
|
39
|
+
</html>
|