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,191 @@
|
|
|
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>Help & Documentation Center · ZeroChat</title>
|
|
7
|
+
<meta name="description" content="Complete user manual and technical documentation for ZeroChat: universal, autonomous, and private web client for AI models and local agents.">
|
|
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
|
+
<div class="lang-switch">
|
|
20
|
+
<a href="../index.html" class="lang-link">Español</a> | <span class="lang-current">English</span>
|
|
21
|
+
</div>
|
|
22
|
+
<span class="top-nav-link">Version 7.x</span>
|
|
23
|
+
</div>
|
|
24
|
+
</div>
|
|
25
|
+
<h1>ZeroChat Help Center</h1>
|
|
26
|
+
<p class="subtitle">Reference guide and technical documentation to get the most out of your portable, private AI client.</p>
|
|
27
|
+
</header>
|
|
28
|
+
|
|
29
|
+
<div class="card">
|
|
30
|
+
<h2>What is ZeroChat?</h2>
|
|
31
|
+
<p>
|
|
32
|
+
<strong>ZeroChat</strong> is a standalone, secure, and portable web client designed to interact with artificial intelligence models, orchestrate autonomous multi-turn agents, and search local document knowledge bases.
|
|
33
|
+
</p>
|
|
34
|
+
<p>
|
|
35
|
+
Unlike conventional web apps, ZeroChat is served as a static web application (<code>zerochat.html</code>) that runs directly on GitHub Pages or any static web server with no heavy dependencies, database backends, or proxies. All your personal data, chat histories, profile credentials, and indexed documents remain strictly on your machine within your browser.
|
|
36
|
+
</p>
|
|
37
|
+
<div class="download-action-box">
|
|
38
|
+
<a href="../../zerochat.html" class="btn-open-app" id="btn-open-app">
|
|
39
|
+
<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"/><polyline points="15 3 21 3 21 9"/><line x1="10" y1="14" x2="21" y2="3"/></svg>
|
|
40
|
+
Open ZeroChat (zerochat.html)
|
|
41
|
+
</a>
|
|
42
|
+
<span class="download-hint">Ready to use directly in your browser or connect with your local backend in <code>zerochat.py</code>.</span>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<div class="alert alert-info" style="margin-top: 1rem;">
|
|
46
|
+
<h3 style="margin-top: 0; margin-bottom: 0.5rem; font-size: 1.05rem;">Two Ways to Launch: Standalone Web vs. Local Backend</h3>
|
|
47
|
+
<ul style="margin: 0 0 0.5rem 1.25rem; padding: 0;">
|
|
48
|
+
<li>
|
|
49
|
+
<strong><code>zerochat.html</code> (Direct Web / PWA):</strong> Opens directly in any desktop or mobile browser (specifically optimized for Android as an installable PWA). By default it uses dark mode and, on mobile, keeps the conversation panel closed to prioritize the chat; both can be changed from the interface controls. Delivers commercial or local inference (WebLLM/WebGPU), in-browser RAG knowledge bases (Orama), Agent mode with a secure JS sandbox, and private IndexedDB storage without requiring Python, a terminal, or installation.
|
|
50
|
+
</li>
|
|
51
|
+
<li>
|
|
52
|
+
<strong><code>zerochat.py</code> (Local with Python backend):</strong> Background local server (port 6388 with a secure ephemeral token). Extends the web app with host operating system control: reading and editing local project files, executing terminal commands, and connecting external MCP servers (Playwright, LSP, memory).
|
|
53
|
+
</li>
|
|
54
|
+
</ul>
|
|
55
|
+
<div style="font-size: 0.9rem;">
|
|
56
|
+
<a href="architecture.html">View full technical comparison & capabilities in Architecture →</a>
|
|
57
|
+
</div>
|
|
58
|
+
</div>
|
|
59
|
+
|
|
60
|
+
<div class="alert alert-info" style="margin-top: 1rem;">
|
|
61
|
+
<h3 style="margin-top: 0; margin-bottom: 0.5rem; font-size: 1.05rem;">Quick download and launch</h3>
|
|
62
|
+
<p style="margin: 0.5rem 0;">
|
|
63
|
+
<strong>Download zerochat.py:</strong>
|
|
64
|
+
<a href="../../zerochat.py" download style="margin-left: 0.5rem;">zerochat.py</a>
|
|
65
|
+
</p>
|
|
66
|
+
<p style="margin: 0.5rem 0;"><strong>Run it directly (curl):</strong></p>
|
|
67
|
+
<div class="code-wrapper">
|
|
68
|
+
<pre><code>curl -sL https://albalday.github.io/zerochat/zerochat.py -o zerochat.py && python3 zerochat.py</code></pre>
|
|
69
|
+
</div>
|
|
70
|
+
</div>
|
|
71
|
+
|
|
72
|
+
<div class="alert alert-info">
|
|
73
|
+
<strong>Self-learning project:</strong> ZeroChat was created to learn and experiment with AI and coding agents. <a href="learning.html">View the details →</a>
|
|
74
|
+
</div>
|
|
75
|
+
</div>
|
|
76
|
+
|
|
77
|
+
<div class="card">
|
|
78
|
+
<h2>System Features & Modules</h2>
|
|
79
|
+
<p>Explore each ZeroChat component below. Click any card to read its detailed technical guide:</p>
|
|
80
|
+
|
|
81
|
+
<div class="features-grid">
|
|
82
|
+
<!-- 1. Architecture & Portability -->
|
|
83
|
+
<a href="architecture.html" class="feature-card">
|
|
84
|
+
<div class="feature-icon-wrapper">
|
|
85
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="3" width="20" height="14" rx="2"/><line x1="8" y1="21" x2="16" y2="21"/><line x1="12" y1="17" x2="12" y2="21"/></svg>
|
|
86
|
+
</div>
|
|
87
|
+
<div class="feature-title">Architecture & Portability</div>
|
|
88
|
+
<div class="feature-desc">Static web application served over HTTPS, local persistence in IndexedDB, and total data sovereignty without server middleware.</div>
|
|
89
|
+
<div class="feature-link">View detailed guide →</div>
|
|
90
|
+
</a>
|
|
91
|
+
|
|
92
|
+
<!-- 2. Connection Profiles -->
|
|
93
|
+
<a href="profiles.html" class="feature-card">
|
|
94
|
+
<div class="feature-icon-wrapper">
|
|
95
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M16 21v-2a4 4 0 0 0-4-4H6a4 4 0 0 0-4 4v2"/><circle cx="9" cy="7" r="4"/><path d="M22 21v-2a4 4 0 0 0-3-3.87"/><path d="M16 3.13a4 4 0 0 1 0 7.75"/></svg>
|
|
96
|
+
</div>
|
|
97
|
+
<div class="feature-title">Profiles & Providers</div>
|
|
98
|
+
<div class="feature-desc">Connect with OpenAI, Ollama, OpenRouter, Claude, Gemini, and local Mirror with automated model and capability discovery.</div>
|
|
99
|
+
<div class="feature-link">View detailed guide →</div>
|
|
100
|
+
</a>
|
|
101
|
+
|
|
102
|
+
<!-- 3. WebLLM & WebGPU -->
|
|
103
|
+
<a href="webllm.html" class="feature-card">
|
|
104
|
+
<div class="feature-icon-wrapper">
|
|
105
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M13 2L3 14h9l-1 8 10-12h-9l1-8z"/></svg>
|
|
106
|
+
</div>
|
|
107
|
+
<div class="feature-title">Local WebLLM Inference</div>
|
|
108
|
+
<div class="feature-desc">Execute models 100% inside the browser on your GPU via WebGPU, with catalog browsing, progressive downloading, and cache persistence.</div>
|
|
109
|
+
<div class="feature-link">View detailed guide →</div>
|
|
110
|
+
</a>
|
|
111
|
+
|
|
112
|
+
<!-- 4. Agent Mode & Tools -->
|
|
113
|
+
<a href="tools-agent.html" class="feature-card">
|
|
114
|
+
<div class="feature-icon-wrapper">
|
|
115
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="3" y="11" width="18" height="10" rx="2"/><circle cx="12" cy="5" r="2"/><path d="M12 7v4"/><line x1="8" y1="16" x2="8" y2="16"/><line x1="16" y1="16" x2="16" y2="16"/></svg>
|
|
116
|
+
</div>
|
|
117
|
+
<div class="feature-title">Agent Mode & Tools</div>
|
|
118
|
+
<div class="feature-desc">Autonomous multi-turn loop with sandboxed JavaScript execution in Web Worker, web search, page fetching, and interactive SVG charts.</div>
|
|
119
|
+
<div class="feature-link">View detailed guide →</div>
|
|
120
|
+
</a>
|
|
121
|
+
|
|
122
|
+
<!-- 5. Local Knowledge RAG -->
|
|
123
|
+
<a href="rag.html" class="feature-card">
|
|
124
|
+
<div class="feature-icon-wrapper">
|
|
125
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polygon points="12 2 2 7 12 12 22 7 12 2"/><polyline points="2 17 12 22 22 17"/><polyline points="2 12 12 17 22 12"/></svg>
|
|
126
|
+
</div>
|
|
127
|
+
<div class="feature-title">Local Knowledge (RAG)</div>
|
|
128
|
+
<div class="feature-desc">Ingest PDFs and documents into independent branches with vector and lexical indexing powered by Orama in the browser.</div>
|
|
129
|
+
<div class="feature-link">View detailed guide →</div>
|
|
130
|
+
</a>
|
|
131
|
+
|
|
132
|
+
<!-- 6. MCP Protocol -->
|
|
133
|
+
<a href="mcp.html" class="feature-card">
|
|
134
|
+
<div class="feature-icon-wrapper">
|
|
135
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><rect x="2" y="2" width="20" height="8" rx="2"/><rect x="2" y="14" width="20" height="8" rx="2"/><line x1="6" y1="6" x2="6.01" y2="6"/><line x1="6" y1="18" x2="6.01" y2="18"/></svg>
|
|
136
|
+
</div>
|
|
137
|
+
<div class="feature-title">MCP Protocol</div>
|
|
138
|
+
<div class="feature-desc">Local server with file and terminal tools, external MCP services, and permission controls.</div>
|
|
139
|
+
<div class="feature-link">View detailed guide →</div>
|
|
140
|
+
</a>
|
|
141
|
+
|
|
142
|
+
<!-- 7. Debugging & Logs -->
|
|
143
|
+
<a href="debug.html" class="feature-card">
|
|
144
|
+
<div class="feature-icon-wrapper">
|
|
145
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><polyline points="4 17 10 11 4 5"/><line x1="12" y1="19" x2="20" y2="19"/></svg>
|
|
146
|
+
</div>
|
|
147
|
+
<div class="feature-title">Debugging & Interceptor</div>
|
|
148
|
+
<div class="feature-desc">Debug console with filters, a Raw view, and an interceptor for outgoing messages.</div>
|
|
149
|
+
<div class="feature-link">View detailed guide →</div>
|
|
150
|
+
</a>
|
|
151
|
+
|
|
152
|
+
<!-- 8. Conversations & History -->
|
|
153
|
+
<a href="conversations.html" class="feature-card">
|
|
154
|
+
<div class="feature-icon-wrapper">
|
|
155
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z"/></svg>
|
|
156
|
+
</div>
|
|
157
|
+
<div class="feature-title">Conversations & Branching</div>
|
|
158
|
+
<div class="feature-desc">History, branches, search, and JSON, Markdown, or PDF export; JSON backup import.</div>
|
|
159
|
+
<div class="feature-link">View detailed guide →</div>
|
|
160
|
+
</a>
|
|
161
|
+
|
|
162
|
+
<!-- 9. Message Composer & Attachments -->
|
|
163
|
+
<a href="composer.html" class="feature-card">
|
|
164
|
+
<div class="feature-icon-wrapper">
|
|
165
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"/></svg>
|
|
166
|
+
</div>
|
|
167
|
+
<div class="feature-title">Composer & Multimedia</div>
|
|
168
|
+
<div class="feature-desc">Auto-expanding input textarea, keyboard shortcuts, and multi-format attachments (vision images, PDFs, source code, CSV, text).</div>
|
|
169
|
+
<div class="feature-link">View detailed guide →</div>
|
|
170
|
+
</a>
|
|
171
|
+
|
|
172
|
+
<!-- 10. Reasoning & Telemetry -->
|
|
173
|
+
<a href="reasoning-telemetry.html" class="feature-card">
|
|
174
|
+
<div class="feature-icon-wrapper">
|
|
175
|
+
<svg width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><path d="M9.5 2A2.5 2.5 0 0 1 12 4.5v15a2.5 2.5 0 0 1-4.96.44 2.5 2.5 0 0 1-2.96-3.08 3 3 0 0 1-.34-5.58 2.5 2.5 0 0 1 1.32-4.24 2.5 2.5 0 0 1 4.44-2.04z"/></svg>
|
|
176
|
+
</div>
|
|
177
|
+
<div class="feature-title">Reasoning & Telemetry</div>
|
|
178
|
+
<div class="feature-desc">Thinking effort control, agent checkpointing, and real-time monitoring of tokens, cache hit savings, and context window health.</div>
|
|
179
|
+
<div class="feature-link">View detailed guide →</div>
|
|
180
|
+
</a>
|
|
181
|
+
</div>
|
|
182
|
+
</div>
|
|
183
|
+
|
|
184
|
+
|
|
185
|
+
<footer>
|
|
186
|
+
<p>ZeroChat · Universal Web AI Client · User Manual</p>
|
|
187
|
+
</footer>
|
|
188
|
+
</div>
|
|
189
|
+
<script src="../help.js"></script>
|
|
190
|
+
</body>
|
|
191
|
+
</html>
|
|
@@ -0,0 +1,71 @@
|
|
|
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>Project and learning · ZeroChat Docs</title>
|
|
7
|
+
<meta name="description" content="Two learning tracks: building an AI client and learning to guide its development with agents.">
|
|
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" aria-hidden="true"><path d="M4 17l6-6-6-6M12 19h8"/></svg>
|
|
16
|
+
ZeroChat Docs
|
|
17
|
+
</a>
|
|
18
|
+
<div class="header-actions">
|
|
19
|
+
<a href="../learning.html" class="top-nav-link" lang="es">Español</a>
|
|
20
|
+
<a href="index.html" class="top-nav-link">← Back to index</a>
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
<h1>Project and learning</h1>
|
|
24
|
+
<p class="subtitle">Two learning tracks: building an AI client and learning to guide its development with agents.</p>
|
|
25
|
+
</header>
|
|
26
|
+
|
|
27
|
+
<main>
|
|
28
|
+
<p>ZeroChat is a personal learning project about AI clients and agentic execution. The work combines clear goals, decision review, and result validation.</p>
|
|
29
|
+
|
|
30
|
+
<section class="card">
|
|
31
|
+
<h2>1. Learning chat client technology</h2>
|
|
32
|
+
<p>The journey goes from a simple prompt-built chat client to one with local knowledge and tools:</p>
|
|
33
|
+
<ul>
|
|
34
|
+
<li><strong>Chat and providers:</strong> SSE streaming, reasoning, vision and API adaptation through a shared provider architecture.</li>
|
|
35
|
+
<li><strong>Data and documents:</strong> IndexedDB persistence, PDF extraction and retrieval-augmented generation (RAG) with Orama and ZeroChatDB.</li>
|
|
36
|
+
<li><strong>Agentic execution:</strong> tool loops, JavaScript isolated in Web Workers, MCP, permissions and a local server with development tools.</li>
|
|
37
|
+
<li><strong>Inference and context:</strong> caching, token limits and checkpoints for long conversations, plus models running inside the browser with WebLLM and WebGPU.</li>
|
|
38
|
+
<li><strong>Shared desktop and mobile UI:</strong> responsive web design, navigation, and shared controls that provide a consistent experience across desktop screens and mobile devices.</li>
|
|
39
|
+
</ul>
|
|
40
|
+
</section>
|
|
41
|
+
|
|
42
|
+
<section class="card">
|
|
43
|
+
<h2>2. Learning to guide coding agents</h2>
|
|
44
|
+
<p>As the infrastructure grows—browser, storage, providers, MCP server, and local backend—learning also means keeping control of the whole system:</p>
|
|
45
|
+
<ul>
|
|
46
|
+
<li><strong>Plan before executing:</strong> define scope, stages, acceptance criteria and the tests that will confirm the outcome before requesting a change.</li>
|
|
47
|
+
<li><strong>Turn decisions into rules:</strong> document architecture, contracts and the workflow to guide the agent, with centralized state in <code>ChatState</code> and separate responsibilities.</li>
|
|
48
|
+
<li><strong>Discuss and simplify with the model:</strong> question proposals, reuse modules and remove unnecessary complexity before it becomes permanent infrastructure.</li>
|
|
49
|
+
<li><strong>Verify each step:</strong> use unit, infrastructure, integration, and browser tests alongside security audits to check real behavior.</li>
|
|
50
|
+
</ul>
|
|
51
|
+
<h3>Automated tests as a checkpoint</h3>
|
|
52
|
+
<p>Tests are the checkpoint at every stage of work with coding agents. Before implementation, they define what must remain stable and what must change; during the work, they check the affected module; when a stage closes, the full suite confirms that the change has not broken other system boundaries. Interface changes are checked in the browser and integration changes in local server infrastructure tests. If a test fails, the agent must correct or simplify the proposal before moving forward.</p>
|
|
53
|
+
<p>The plan is to keep repeating this cycle: choose a capability, agree on a simple design, assign scoped changes, review tests and document what was learned.</p>
|
|
54
|
+
</section>
|
|
55
|
+
|
|
56
|
+
<p>This plan summarizes the project's practical evolution and quality criteria.</p>
|
|
57
|
+
</main>
|
|
58
|
+
|
|
59
|
+
<nav class="page-navigation" aria-label="Help navigation">
|
|
60
|
+
<a href="index.html" class="nav-button index">
|
|
61
|
+
<span class="nav-direction">Back to index</span>
|
|
62
|
+
<span class="nav-title">View all topics</span>
|
|
63
|
+
</a>
|
|
64
|
+
</nav>
|
|
65
|
+
|
|
66
|
+
<footer>
|
|
67
|
+
<p>ZeroChat · Project and learning</p>
|
|
68
|
+
</footer>
|
|
69
|
+
</div>
|
|
70
|
+
</body>
|
|
71
|
+
</html>
|
|
@@ -0,0 +1,143 @@
|
|
|
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>Model Context Protocol (MCP) · ZeroChat Help</title>
|
|
7
|
+
<meta name="description" content="MCP guide for ZeroChat: the local server, tools, external services, and permissions.">
|
|
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="../mcp.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>Model Context Protocol (MCP)</h1>
|
|
24
|
+
<p class="subtitle">Use tools on your computer and external MCP services from ZeroChat, with the local server and authorization controls built in.</p>
|
|
25
|
+
</header>
|
|
26
|
+
|
|
27
|
+
<div class="card">
|
|
28
|
+
<p>Local tools use <code>zmcp_<tool></code> and external tools use <code>mcp_<service>_<tool></code>, for example <code>mcp_browser_service_browser_navigate</code>. Permissions are stored under this full name: authorizing a tool does not authorize its namesake in another service. Legacy aliases are not supported. Special characters are encoded to prevent collisions.</p>
|
|
29
|
+
</div>
|
|
30
|
+
|
|
31
|
+
<div class="card">
|
|
32
|
+
<h2>1. What is MCP?</h2>
|
|
33
|
+
<p>
|
|
34
|
+
The <strong>Model Context Protocol (MCP)</strong> is an open protocol championed by Anthropic to bridge AI models with external tools and databases through a standardized interface.
|
|
35
|
+
</p>
|
|
36
|
+
<p>
|
|
37
|
+
In ZeroChat, <code>zerochat.py</code> starts a local server on <code>127.0.0.1</code>, opens the app with a session token, and the browser connects automatically. A remote MCP URL is not configured manually. The server provides file and terminal tools and hosts the external MCP services that you enable in the app.
|
|
38
|
+
</p>
|
|
39
|
+
</div>
|
|
40
|
+
|
|
41
|
+
<div class="card">
|
|
42
|
+
<h2>2. Connection & UI Indicators</h2>
|
|
43
|
+
<p>
|
|
44
|
+
Open <strong>Settings → MCP</strong> to check the local-server status and discovered tools:
|
|
45
|
+
</p>
|
|
46
|
+
<ul>
|
|
47
|
+
<li><strong>Disconnected:</strong> The local server is not available. Keep <code>zerochat.py</code> running and reload the page if it was restarted.</li>
|
|
48
|
+
<li><strong>Connected:</strong> ZeroChat has discovered the local tools and can list available external MCP services.</li>
|
|
49
|
+
</ul>
|
|
50
|
+
<p>
|
|
51
|
+
There is no manual connection form or button. Run the command below and open the app from the link started by the script. The session token protects requests to the local server; do not share that URL or token.
|
|
52
|
+
</p>
|
|
53
|
+
</div>
|
|
54
|
+
|
|
55
|
+
<div class="card">
|
|
56
|
+
<h2>3. Local Python Server (zerochat.py)</h2>
|
|
57
|
+
<p>
|
|
58
|
+
ZeroChat consolidates all local backend functionality into a single executable script: <code>zerochat.py</code>.
|
|
59
|
+
</p>
|
|
60
|
+
<p>
|
|
61
|
+
When executed, <code>zerochat.py</code> verifies the version, automatically creates and manages a virtual environment in <code>./zerochat</code>, starts the local SSE server, and launches your browser pointing to <code>zerochat.html</code> with an ephemeral session token.
|
|
62
|
+
</p>
|
|
63
|
+
<p>
|
|
64
|
+
<strong>Core Local Tools:</strong>
|
|
65
|
+
</p>
|
|
66
|
+
<ul>
|
|
67
|
+
<li><strong><code>execute_command</code>:</strong> Unified shell terminal for Git, CLI, test execution, and compilation, with automatic OS and environment diagnosis.</li>
|
|
68
|
+
<li><strong><code>read_file</code>:</strong> Safe file reading with line range slicing and context token limits.</li>
|
|
69
|
+
<li><strong><code>edit_file</code>:</strong> Atomic file writing and editing (overwrite, append, or chunk replacement).</li>
|
|
70
|
+
<li><strong><code>list_directory</code>:</strong> Structured folder tree and metadata exploration.</li>
|
|
71
|
+
</ul>
|
|
72
|
+
<p>
|
|
73
|
+
<strong>Session Token Security:</strong> All requests from <code>zerochat.html</code> require the ephemeral session token generated by <code>zerochat.py</code> at startup. Without this valid token, the local server rejects any incoming connection.
|
|
74
|
+
</p>
|
|
75
|
+
<div class="code-wrapper">
|
|
76
|
+
<pre><code># Download and launch the ZeroChat local backend
|
|
77
|
+
curl -sL https://albalday.github.io/zerochat/zerochat.py -o zerochat.py && python3 zerochat.py</code></pre>
|
|
78
|
+
</div>
|
|
79
|
+
</div>
|
|
80
|
+
|
|
81
|
+
<div class="card">
|
|
82
|
+
<h2>4. Tool Permissions & Authorization Policies</h2>
|
|
83
|
+
<p>
|
|
84
|
+
Because local tools can perform sensitive operations on your system (such as modifying files or running shell commands), ZeroChat provides granular security controls for each tool:
|
|
85
|
+
</p>
|
|
86
|
+
<p>
|
|
87
|
+
Open <strong>Settings → Permissions</strong> to choose the global policy, review remembered decisions, and clear them when needed. In the MCP panel you can also choose <em>Ask</em>, <em>Allow</em>, or <em>Deny</em> for each tool.
|
|
88
|
+
</p>
|
|
89
|
+
<ul>
|
|
90
|
+
<li><strong>On/Off Switches:</strong> Enable or disable each tool sent to the model without stopping the server.</li>
|
|
91
|
+
<li><strong>Authorization Policy:</strong>
|
|
92
|
+
<ul>
|
|
93
|
+
<li><em>Ask for authorization (recommended):</em> ZeroChat pauses to ask for explicit approval.</li>
|
|
94
|
+
<li><em>Allow all:</em> Any tool runs without confirmation. Use it only in a trusted environment.</li>
|
|
95
|
+
</ul>
|
|
96
|
+
</li>
|
|
97
|
+
</ul>
|
|
98
|
+
<div class="alert alert-warning">
|
|
99
|
+
<strong>Local network security:</strong> Make sure your MCP server binds strictly to the loopback interface <code>127.0.0.1</code> and not <code>0.0.0.0</code> when working on untrusted public networks.
|
|
100
|
+
</div>
|
|
101
|
+
</div>
|
|
102
|
+
|
|
103
|
+
<div class="card">
|
|
104
|
+
<h2>5. External MCP Services & Individual Activation</h2>
|
|
105
|
+
<p>
|
|
106
|
+
The local <code>zerochat.py</code> server manages external MCP services defined in <code>services/</code>. You do not need to run a global external daemon: start and stop each service from ZeroChat.
|
|
107
|
+
</p>
|
|
108
|
+
<p>
|
|
109
|
+
In <strong>Settings → MCP</strong>, <em>"Available MCP Servers"</em> lets you start or stop each service and configure its options. When starting one, ZeroChat installs dependencies when needed, discovers its tools, and adds them to the panel. Node.js-based services require Node.js 18 or later and npm.
|
|
110
|
+
</p>
|
|
111
|
+
<p>
|
|
112
|
+
The local server provides ready-to-use definitions in <code>services/</code>:
|
|
113
|
+
</p>
|
|
114
|
+
<ul>
|
|
115
|
+
<li><code>dummy_mcp</code>: Minimal test service in pure Python without external dependencies.</li>
|
|
116
|
+
<li><code>playwright</code>: Browser automation with the official Playwright MCP server; the <em>Headless</em> option controls whether a browser window is shown.</li>
|
|
117
|
+
<li><code>memory</code>: Knowledge graph and structured persistent memory.</li>
|
|
118
|
+
<li><code>lsp</code>: Language Server Protocol for code navigation and type inspection.</li>
|
|
119
|
+
</ul>
|
|
120
|
+
</div>
|
|
121
|
+
|
|
122
|
+
<nav class="page-navigation" aria-label="Help navigation">
|
|
123
|
+
<a href="rag.html" class="nav-button prev">
|
|
124
|
+
<span class="nav-direction">← Previous</span>
|
|
125
|
+
<span class="nav-title">Local Knowledge (RAG)</span>
|
|
126
|
+
</a>
|
|
127
|
+
<a href="index.html" class="nav-button index">
|
|
128
|
+
<span class="nav-direction">Index</span>
|
|
129
|
+
<span class="nav-title">View all topics</span>
|
|
130
|
+
</a>
|
|
131
|
+
<a href="debug.html" class="nav-button next">
|
|
132
|
+
<span class="nav-direction">Next →</span>
|
|
133
|
+
<span class="nav-title">Debugging & Interceptor</span>
|
|
134
|
+
</a>
|
|
135
|
+
</nav>
|
|
136
|
+
|
|
137
|
+
<footer>
|
|
138
|
+
<p>ZeroChat · Universal Web AI Client · User Manual</p>
|
|
139
|
+
</footer>
|
|
140
|
+
</div>
|
|
141
|
+
<script src="../help.js"></script>
|
|
142
|
+
</body>
|
|
143
|
+
</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>OpenRouter API key · ZeroChat</title>
|
|
7
|
+
<meta name="description" content="How to create an OpenRouter 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 an OpenRouter API key</h1>
|
|
14
|
+
<p class="subtitle">Create an OpenRouter key for use in ZeroChat.</p>
|
|
15
|
+
</header>
|
|
16
|
+
|
|
17
|
+
<main>
|
|
18
|
+
<section class="card">
|
|
19
|
+
<h2>Steps</h2>
|
|
20
|
+
<ol>
|
|
21
|
+
<li>
|
|
22
|
+
Open <a href="https://openrouter.ai/keys" target="_blank" rel="noopener noreferrer">OpenRouter’s official API keys page</a> and sign in or create an account.
|
|
23
|
+
</li>
|
|
24
|
+
<li>Select <strong>Create API Key</strong> or <strong>Create Key</strong>.</li>
|
|
25
|
+
<li>Enter a recognizable name, such as <code>ZeroChat</code>, and create the key.</li>
|
|
26
|
+
<li>Copy the key immediately and store it privately. OpenRouter shows its complete value only once.</li>
|
|
27
|
+
<li>In ZeroChat, create or edit an <strong>OpenRouter</strong> provider profile, paste the key, and choose a model.</li>
|
|
28
|
+
</ol>
|
|
29
|
+
</section>
|
|
30
|
+
|
|
31
|
+
<section class="card">
|
|
32
|
+
<h2>Important</h2>
|
|
33
|
+
<p>Models, limits, and prices change. Always check <a href="https://openrouter.ai/models" target="_blank" rel="noopener noreferrer">OpenRouter's current catalog and terms</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>
|
|
@@ -0,0 +1,173 @@
|
|
|
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>Profiles & AI Providers · ZeroChat Help</title>
|
|
7
|
+
<meta name="description" content="Guide for configuring connection profiles in ZeroChat: OpenAI, Ollama, LM Studio, OpenRouter, Anthropic Claude, Google Gemini, WebLLM, and Mirror profile.">
|
|
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="../profiles.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>Profiles & AI Providers</h1>
|
|
24
|
+
<p class="subtitle">Learn how to connect ZeroChat with any language model, running either on your machine or in the cloud.</p>
|
|
25
|
+
</header>
|
|
26
|
+
|
|
27
|
+
<div class="card">
|
|
28
|
+
<h2>1. Connection Profile Management</h2>
|
|
29
|
+
<p>
|
|
30
|
+
ZeroChat lets you define multiple <strong>connection profiles</strong>. A profile encapsulates the API protocol type, server endpoint URL, authentication key (optional for local servers), and selected model name.
|
|
31
|
+
</p>
|
|
32
|
+
<p>
|
|
33
|
+
To manage profiles, click the active profile name in the header. The selector lets you create and export profiles, close the menu, and edit or delete each listed profile. Selecting one makes it active.
|
|
34
|
+
</p>
|
|
35
|
+
<div class="alert alert-info">
|
|
36
|
+
<strong>Instant switching:</strong> You can switch models or providers mid-conversation without losing context. Simply open the profile dropdown and select another one.
|
|
37
|
+
</div>
|
|
38
|
+
<p>
|
|
39
|
+
The profile selector lets you <strong>Export</strong> all editable definitions. It downloads an encrypted HTML file: open it to start importing into ZeroChat. After confirmation, new profiles are added and matching identifiers are updated without changing the Mirror profile.
|
|
40
|
+
</p>
|
|
41
|
+
<p>
|
|
42
|
+
API keys are encrypted in the browser's local profile storage and remain encrypted inside the backup, which adds a second encryption layer. The <strong>Lock changes</strong> checkbox, located in the editor header, marks a profile as non-editable when it is loaded again; the lock protects all profile settings. Changes are saved using the <strong>Save</strong> button in the modal header.
|
|
43
|
+
</p>
|
|
44
|
+
<div class="alert alert-warning">
|
|
45
|
+
<strong>Transport protection:</strong> the master key is embedded in ZeroChat to make profile reuse convenient. Encryption prevents keys from being visible when opening the file, but it must not be considered protection against someone who has access to the application source. Share these backups only through trusted channels.
|
|
46
|
+
</div>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<div class="card">
|
|
50
|
+
<h2>2. Supported Providers & Protocols</h2>
|
|
51
|
+
<div class="table-responsive">
|
|
52
|
+
<table>
|
|
53
|
+
<thead>
|
|
54
|
+
<tr>
|
|
55
|
+
<th>Interface Type</th>
|
|
56
|
+
<th>Common Servers & Services</th>
|
|
57
|
+
<th>Typical Endpoint</th>
|
|
58
|
+
<th>API Key</th>
|
|
59
|
+
</tr>
|
|
60
|
+
</thead>
|
|
61
|
+
<tbody>
|
|
62
|
+
<tr>
|
|
63
|
+
<td><strong>OpenAI / Compatible</strong></td>
|
|
64
|
+
<td>LM Studio, LocalAI, vLLM, official OpenAI</td>
|
|
65
|
+
<td><code>http://localhost:1234/v1</code></td>
|
|
66
|
+
<td>Optional on local / Required on OpenAI</td>
|
|
67
|
+
</tr>
|
|
68
|
+
<tr>
|
|
69
|
+
<td><strong>Ollama</strong></td>
|
|
70
|
+
<td>Local Ollama server</td>
|
|
71
|
+
<td><code>http://localhost:11434</code></td>
|
|
72
|
+
<td>Not required</td>
|
|
73
|
+
</tr>
|
|
74
|
+
<tr>
|
|
75
|
+
<td><strong>OpenRouter</strong></td>
|
|
76
|
+
<td>OpenRouter multi-model gateway</td>
|
|
77
|
+
<td><code>https://openrouter.ai/api/v1</code></td>
|
|
78
|
+
<td>Required (<code>sk-or-...</code>)</td>
|
|
79
|
+
</tr>
|
|
80
|
+
<tr>
|
|
81
|
+
<td><strong>Anthropic Claude</strong></td>
|
|
82
|
+
<td>Official Anthropic API</td>
|
|
83
|
+
<td><code>https://api.anthropic.com/v1</code></td>
|
|
84
|
+
<td>Required (<code>sk-ant-...</code>)</td>
|
|
85
|
+
</tr>
|
|
86
|
+
<tr>
|
|
87
|
+
<td><strong>Google Gemini</strong></td>
|
|
88
|
+
<td>Google AI Studio</td>
|
|
89
|
+
<td>Gemini OpenAI-compatible endpoint</td>
|
|
90
|
+
<td>Required</td>
|
|
91
|
+
</tr>
|
|
92
|
+
<tr>
|
|
93
|
+
<td><strong>WebLLM</strong></td>
|
|
94
|
+
<td>In-browser direct (WebGPU)</td>
|
|
95
|
+
<td><code>webllm://local</code> (automated)</td>
|
|
96
|
+
<td>Not applicable (100% local)</td>
|
|
97
|
+
</tr>
|
|
98
|
+
<tr>
|
|
99
|
+
<td><strong>Mirror (Espejo)</strong></td>
|
|
100
|
+
<td>Internal offline testing</td>
|
|
101
|
+
<td>No endpoint (simulated mode)</td>
|
|
102
|
+
<td>Not applicable</td>
|
|
103
|
+
</tr>
|
|
104
|
+
</tbody>
|
|
105
|
+
</table>
|
|
106
|
+
</div>
|
|
107
|
+
</div>
|
|
108
|
+
|
|
109
|
+
<div class="card">
|
|
110
|
+
<h2>3. Server Inspection (Query Button) & Validation</h2>
|
|
111
|
+
<p>
|
|
112
|
+
When creating or editing a profile, ZeroChat provides a <strong>Query</strong> button next to the URL input. This inspects the server before saving:
|
|
113
|
+
</p>
|
|
114
|
+
<ul>
|
|
115
|
+
<li><strong>Model discovery:</strong> Fetches the available models catalog and populates the dropdown automatically.</li>
|
|
116
|
+
<li><strong>Capability inspection:</strong> Verifies if the model supports vision, function calling (tools), native reasoning, and advertised context capacity.</li>
|
|
117
|
+
<li><strong>Save protection:</strong> For remote APIs or local HTTP endpoints, ZeroChat requires a successful Query before saving to ensure the connection works properly.</li>
|
|
118
|
+
</ul>
|
|
119
|
+
<div class="alert alert-success">
|
|
120
|
+
<strong>Fast save on WebLLM:</strong> When selecting an already downloaded WebLLM model from local cache, the <em>Query</em> button is optional, allowing you to save the profile immediately.
|
|
121
|
+
</div>
|
|
122
|
+
</div>
|
|
123
|
+
|
|
124
|
+
<div class="card">
|
|
125
|
+
<h2>4. Special Configuration for Ollama (CORS)</h2>
|
|
126
|
+
<p>
|
|
127
|
+
When connecting to <strong>Ollama</strong>, browsers will block requests due to CORS (Cross-Origin Resource Sharing) unless Ollama is started with cross-origin access enabled:
|
|
128
|
+
</p>
|
|
129
|
+
<div class="code-wrapper">
|
|
130
|
+
<pre><code># On Linux / macOS (terminal)
|
|
131
|
+
OLLAMA_ORIGINS="*" ollama serve
|
|
132
|
+
|
|
133
|
+
# On Windows (PowerShell)
|
|
134
|
+
$env:OLLAMA_ORIGINS="*"
|
|
135
|
+
ollama serve</code></pre>
|
|
136
|
+
</div>
|
|
137
|
+
<p>If running Ollama as a systemd service on Linux, add <code>Environment="OLLAMA_ORIGINS=*"</code> under the <code>[Service]</code> section.</p>
|
|
138
|
+
</div>
|
|
139
|
+
|
|
140
|
+
<div class="card">
|
|
141
|
+
<h2>5. The Built-in "Mirror" Profile</h2>
|
|
142
|
+
<p>
|
|
143
|
+
ZeroChat includes a read-only <strong>Mirror (Espejo)</strong> profile. It is ideal for UI testing and troubleshooting:
|
|
144
|
+
</p>
|
|
145
|
+
<ul>
|
|
146
|
+
<li>Makes zero network calls and needs no local server running.</li>
|
|
147
|
+
<li>Returns an immediate formatted preview of the normalized OpenAI-compatible payload.</li>
|
|
148
|
+
<li>Serves as a reliable fallback whenever an active profile is deleted or inaccessible.</li>
|
|
149
|
+
</ul>
|
|
150
|
+
</div>
|
|
151
|
+
|
|
152
|
+
<nav class="page-navigation" aria-label="Help navigation">
|
|
153
|
+
<a href="architecture.html" class="nav-button prev">
|
|
154
|
+
<span class="nav-direction">← Previous</span>
|
|
155
|
+
<span class="nav-title">Architecture & Portability</span>
|
|
156
|
+
</a>
|
|
157
|
+
<a href="index.html" class="nav-button index">
|
|
158
|
+
<span class="nav-direction">Index</span>
|
|
159
|
+
<span class="nav-title">View all topics</span>
|
|
160
|
+
</a>
|
|
161
|
+
<a href="webllm.html" class="nav-button next">
|
|
162
|
+
<span class="nav-direction">Next →</span>
|
|
163
|
+
<span class="nav-title">Local WebLLM Inference</span>
|
|
164
|
+
</a>
|
|
165
|
+
</nav>
|
|
166
|
+
|
|
167
|
+
<footer>
|
|
168
|
+
<p>ZeroChat · Universal Web AI Client · User Manual</p>
|
|
169
|
+
</footer>
|
|
170
|
+
</div>
|
|
171
|
+
<script src="../help.js"></script>
|
|
172
|
+
</body>
|
|
173
|
+
</html>
|