libre-webui 0.13.2 → 0.13.3

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.
Files changed (32) hide show
  1. package/README.md +118 -247
  2. package/backend/dist/routes/chat.d.ts.map +1 -1
  3. package/backend/dist/routes/chat.js +5 -1
  4. package/backend/dist/routes/chat.js.map +1 -1
  5. package/backend/dist/services/titleGenerationService.d.ts +5 -0
  6. package/backend/dist/services/titleGenerationService.d.ts.map +1 -1
  7. package/backend/dist/services/titleGenerationService.js +30 -6
  8. package/backend/dist/services/titleGenerationService.js.map +1 -1
  9. package/backend/package.json +1 -1
  10. package/frontend/dist/assets/index-CXKTQEWS.js +5 -0
  11. package/frontend/dist/assets/index-ClnPpnM5.css +1 -0
  12. package/frontend/dist/index.html +3 -3
  13. package/frontend/dist/js/{ArtifactContainer-urMJnZ_h.js → ArtifactContainer-DiRnahHG.js} +1 -1
  14. package/frontend/dist/js/{ArtifactDemoPage-CVxPfyus.js → ArtifactDemoPage-DlROHIWC.js} +1 -1
  15. package/frontend/dist/js/{ArtifactSlideOutPanel-MP4ap9If.js → ArtifactSlideOutPanel-Bsj35Ixs.js} +1 -1
  16. package/frontend/dist/js/{ChatPage-D35quAJJ.js → ChatPage-CjrNWkGe.js} +3 -3
  17. package/frontend/dist/js/{FirstTimeSetup-B9NVXnGv.js → FirstTimeSetup-DHqRxGnu.js} +1 -1
  18. package/frontend/dist/js/{GalleryPage-BNdUukNh.js → GalleryPage-D6JI9-bu.js} +1 -1
  19. package/frontend/dist/js/{LibreClawPage-D_N9GBg7.js → LibreClawPage-C5UCG3UO.js} +1 -1
  20. package/frontend/dist/js/{ModelManagerModals-C7wlZoV2.js → ModelManagerModals-ibSD3Sfs.js} +1 -1
  21. package/frontend/dist/js/{ModelsPage-1ykVyEI4.js → ModelsPage-4isgqfxd.js} +2 -2
  22. package/frontend/dist/js/{PersonasPage-Dg1AQ0e8.js → PersonasPage-CQPSBBkb.js} +1 -1
  23. package/frontend/dist/js/{RichMessageContent-tAv_35Ur.js → RichMessageContent-DmV_QHWo.js} +1 -1
  24. package/frontend/dist/js/{SettingsModal-BRQcVyKI.js → SettingsModal-CMgPDKKF.js} +1 -1
  25. package/frontend/dist/js/{UserManagementPage-CA15W6yb.js → UserManagementPage-KmYKTbzm.js} +1 -1
  26. package/frontend/dist/js/{api-BsUaU_IW.js → api-CdKv5S1E.js} +2 -2
  27. package/frontend/dist/js/{useBaseQuery-DDZrESRv.js → useBaseQuery-4Pd5VVAl.js} +1 -1
  28. package/frontend/dist/js/useQuery-BgOybVfP.js +1 -0
  29. package/package.json +1 -1
  30. package/frontend/dist/assets/index-BJsjOpGD.css +0 -1
  31. package/frontend/dist/assets/index-DgL4shIj.js +0 -5
  32. package/frontend/dist/js/useQuery-BFOeNWc6.js +0 -1
package/README.md CHANGED
@@ -2,334 +2,205 @@
2
2
 
3
3
  <br>
4
4
 
5
- # 🕊️ Libre WebUI
5
+ # Libre WebUI
6
6
 
7
- ### Your AI, Your Rules.
7
+ ### Your AI stack should answer to you.
8
8
 
9
- **The privacy-first, open-source chat interface for local and cloud AI.**<br>
10
- No telemetry. No tracking. No compromises.
9
+ **A local-first workspace for Ollama, your chosen providers, private knowledge, artifacts, and local agents.**<br>
10
+ Self-hosted. Provider-flexible. Apache 2.0.
11
+
12
+ **Run local. Bring the providers you choose. Keep control of the interface around them.**
11
13
 
12
14
  <br>
13
15
 
14
16
  <p>
15
- <a href="https://github.com/libre-webui/libre-webui/releases"><img src="https://img.shields.io/github/v/release/libre-webui/libre-webui?style=flat-square&label=version&color=blue" alt="Version"></a>
16
- <a href="LICENSE"><img src="https://img.shields.io/badge/license-Apache_2.0-green?style=flat-square" alt="License"></a>
17
- <a href="https://github.com/libre-webui/libre-webui/actions"><img src="https://img.shields.io/github/actions/workflow/status/libre-webui/libre-webui/release.yml?style=flat-square&label=Build" alt="CI"></a>
18
- <a href="https://huggingface.co/libre-webui"><img src="https://img.shields.io/badge/🤗_Hugging_Face-models-yellow?style=flat-square" alt="Hugging Face"></a>
19
- <a href="https://github.com/libre-webui/libre-webui"><img src="https://img.shields.io/github/stars/libre-webui/libre-webui?style=flat-square&label=Stars" alt="Stars"></a>
17
+ <a href="https://github.com/libre-webui/libre-webui/releases"><img src="https://img.shields.io/github/v/release/libre-webui/libre-webui?style=flat-square&label=release&color=2563eb" alt="Latest release"></a>
18
+ <a href="https://www.npmjs.com/package/libre-webui"><img src="https://img.shields.io/npm/v/libre-webui?style=flat-square&label=npm&color=cb3837" alt="npm version"></a>
19
+ <a href="https://github.com/libre-webui/libre-webui/blob/main/LICENSE"><img src="https://img.shields.io/badge/license-Apache--2.0-15803d?style=flat-square" alt="Apache 2.0 License"></a>
20
+ <a href="https://github.com/libre-webui/libre-webui/actions/workflows/format.yml"><img src="https://img.shields.io/github/actions/workflow/status/libre-webui/libre-webui/format.yml?branch=main&style=flat-square&label=main%20checks" alt="Main branch checks"></a>
21
+ <a href="https://github.com/libre-webui/libre-webui"><img src="https://img.shields.io/github/stars/libre-webui/libre-webui?style=flat-square&label=stars&color=f59e0b" alt="GitHub stars"></a>
20
22
  </p>
21
23
 
22
24
  <p>
23
- <a href="https://librewebui.org">Website</a> •
24
- <a href="https://docs.librewebui.org">Docs</a> •
25
- <a href="https://github.com/libre-webui/libre-webui/releases">Download</a> •
26
- <a href="#quick-start">Quick Start</a>
25
+ <a href="https://librewebui.org"><strong>Website</strong></a> ·
26
+ <a href="https://docs.librewebui.org"><strong>Documentation</strong></a> ·
27
+ <a href="https://github.com/libre-webui/libre-webui/releases"><strong>Download</strong></a> ·
28
+ <a href="#start-in-one-command"><strong>Quick start</strong></a>
27
29
  </p>
28
30
 
29
31
  <br>
30
32
 
31
- <p>
32
- <img src="./screenshot.png" width="100%" alt="Libre WebUI — Privacy-first AI chat interface">
33
- </p>
33
+ <img src="https://raw.githubusercontent.com/libre-webui/libre-webui/main/screenshot.png" width="100%" alt="Libre WebUI local-first AI workspace">
34
34
 
35
35
  </div>
36
36
 
37
37
  ---
38
38
 
39
- ## Why Libre WebUI?
40
-
41
- Most AI chat tools either **lock you into a cloud**, **harvest your data**, or **pull the rug on their open-source license through restrictive relicensing or contributor agreements**. We think you deserve better.
39
+ ## Freedom should survive success
42
40
 
43
- Libre WebUI is a **self-hosted AI workspace** that connects to [Ollama](https://ollama.com) for local AI and to cloud providers through plugins — all from one clean, fast UI. Your conversations stay on your device or server unless _you_ choose to use a remote provider.
41
+ An AI interface can be self-hosted today and still become a gatekeeper tomorrow. Libre WebUI is built so your freedom does not depend on a company remaining benevolent.
44
42
 
45
- > **Built by [Kroonen AI](https://kroonen.ai) and the open-source community.** Apache 2.0 forever — [we put it in our charter](./CHARTER.md).
43
+ Run it. Inspect it. Change it. Fork it. Connect it to something else. Or leave it behind. The code is Apache 2.0, local inference is the default path, remote providers are opt-in, and the project charter puts independence and inclusive participation into writing.
46
44
 
47
- ---
45
+ > **Open source is a license. Libre is an operating principle.**
48
46
 
49
- ## ✨ Features at a Glance
50
-
51
- | | Feature | What it does |
52
- | --- | ------------------------ | ------------------------------------------------------------------------- |
53
- | 💬 | **Streaming Chat** | Real-time local and provider-backed conversations |
54
- | 🧠 | **Model Manager** | Pull, browse, unload, and manage Ollama, Ollama Cloud, and HF GGUF models |
55
- | 🔌 | **Plugin System** | Connect OpenAI-compatible providers with JSON config and user credentials |
56
- | 📄 | **Document Chat (RAG)** | Upload PDF and plain-text files, then search them from chat |
57
- | 🎭 | **Personas** | Reusable assistants with prompts, parameters, memory, and import/export |
58
- | 🎨 | **Artifacts** | Sandboxed HTML, SVG, JSON, and code previews beside chat |
59
- | 🖼️ | **Image Generation** | ComfyUI and provider plugins for generated images |
60
- | 🔊 | **Text-to-Speech** | Qwen3-TTS, Kyutai, OpenAI-compatible voices, and provider plugins |
61
- | 🤗 | **Hugging Face Hub** | Discover Hub models and compatible GGUF files from the UI |
62
- | 🔐 | **Auth & Signup Safety** | Local accounts, GitHub/Hugging Face OAuth, roles, and optional Turnstile |
63
- | 🌍 | **25+ Languages** | Full i18n coverage from Arabic to Vietnamese |
64
- | 🖥️ | **Desktop App** | Electron builds for macOS, Windows, and Linux |
65
- | 🤖 | **AI Agent Support** | Libre Claw runs, approvals, tools, schedules, memory, and usage |
66
- | 🏢 | **Self-Hosted Ops** | Docker, Kubernetes, SQLite storage, encrypted credentials, and backups |
47
+ Do not trust the pitch. Inspect the [license](https://github.com/libre-webui/libre-webui/blob/main/LICENSE), [charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md), [source](https://github.com/libre-webui/libre-webui), and [CI](https://github.com/libre-webui/libre-webui/actions).
67
48
 
68
- ---
49
+ | What stays yours | Libre WebUI's approach | Verify it |
50
+ | --------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
51
+ | **Data path** | Self-hosted by default; remote inference only when you select it | [Deployment docs](https://docs.librewebui.org/DOCKER) |
52
+ | **Model choice** | Local Ollama plus optional provider plugins and OpenAI-compatible endpoints | [Plugin architecture](https://docs.librewebui.org/PLUGIN_ARCHITECTURE) |
53
+ | **Code** | Use, modify, redistribute, and fork under Apache 2.0 | [License](https://github.com/libre-webui/libre-webui/blob/main/LICENSE) |
54
+ | **Project direction** | The charter rejects funding control over the roadmap, license, or community | [Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md) |
55
+ | **Participation** | Contributors and users are welcome regardless of background, identity, or geography | [Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md) |
56
+ | **Exit** | Your installation and your fork do not need our permission | [Source](https://github.com/libre-webui/libre-webui) |
69
57
 
70
- ## 🚀 Quick Start
58
+ ## Start in one command
71
59
 
72
- ### One command — that's it
60
+ With [Node.js 20 or newer](https://nodejs.org):
73
61
 
74
62
  ```bash
75
63
  npx libre-webui
76
64
  ```
77
65
 
78
- Opens at `http://localhost:8080`. Install [Ollama](https://ollama.com) for local AI, or add provider API keys in Settings.
66
+ Open [http://localhost:8080](http://localhost:8080). The first account created on a fresh install becomes the administrator.
79
67
 
80
- For a first local model:
68
+ For private local inference, install [Ollama](https://ollama.com) and pull a model:
81
69
 
82
70
  ```bash
83
71
  ollama pull gemma3:4b
84
72
  ```
85
73
 
86
- The first account created on a fresh install becomes the administrator.
87
-
88
- ### 🐳 Docker
89
-
90
- ```bash
91
- # With bundled Ollama
92
- docker compose up -d
93
-
94
- # With your existing Ollama
95
- docker compose -f docker-compose.external-ollama.yml up -d
96
-
97
- # GPU support (NVIDIA)
98
- docker compose -f docker-compose.gpu.yml up -d
99
- ```
100
-
101
- ### 🍺 Homebrew (macOS)
102
-
103
- ```bash
104
- brew tap libre-webui/tap && brew install libre-webui
105
- libre-webui
106
-
107
- # Or install the desktop app
108
- brew install --cask libre-webui
109
- ```
110
-
111
- ### ☸️ Kubernetes
112
-
113
- ```bash
114
- helm install libre-webui oci://ghcr.io/libre-webui/charts/libre-webui
115
- ```
116
-
117
- ### 🖥️ Desktop App
118
-
119
- Download from [GitHub Releases](https://github.com/libre-webui/libre-webui/releases) — available for **macOS**, **Windows**, and **Linux**.
120
-
121
- ### 🛠️ From Source
122
-
123
- ```bash
124
- git clone https://github.com/libre-webui/libre-webui
125
- cd libre-webui
126
- cp backend/.env.example backend/.env
127
- npm install && npm run dev
128
- ```
129
-
130
- <details>
131
- <summary><strong>⚙️ Configuration</strong></summary>
132
-
133
- Edit `backend/.env`:
134
-
135
- ```env
136
- # Local AI (default — just install Ollama)
137
- OLLAMA_BASE_URL=http://localhost:11434
138
- JWT_SECRET=replace-with-a-long-random-secret
139
-
140
- # Cloud providers (optional — add what you need)
141
- OPENAI_API_KEY=sk-...
142
- ANTHROPIC_API_KEY=sk-ant-...
143
- HUGGINGFACE_API_KEY=hf_...
144
-
145
- # Optional signup protection
146
- TURNSTILE_SITE_KEY=...
147
- TURNSTILE_SECRET_KEY=...
148
- ```
149
-
150
- </details>
74
+ That is enough to start. Cloud accounts are not required. When you do want a remote model, add only the provider you choose.
151
75
 
152
- <details>
153
- <summary><strong>🧪 Development builds (unstable)</strong></summary>
76
+ ## One workspace. Your choices.
154
77
 
155
- Dev builds are auto-generated from the `dev` branch. **Not for production.**
78
+ Libre WebUI turns a model endpoint into a complete working environment without taking ownership of the stack around it.
156
79
 
157
- ```bash
158
- docker compose -f docker-compose.dev.yml up -d
159
- ```
80
+ | | What you can do |
81
+ | ------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------- |
82
+ | **Talk to the model you want** | Stream conversations through local Ollama, Ollama Cloud, bundled providers, or compatible endpoints. Discover and manage models from the UI. |
83
+ | **Bring your own context** | Chat with PDF and plain-text documents using keyword retrieval or optional semantic embeddings. |
84
+ | **Turn answers into work** | Preview sandboxed HTML, SVG, JSON, code, and multi-file artifacts beside the conversation. |
85
+ | **Create with more than text** | Generate images, use provider-backed speech, and build reusable personas with prompts, parameters, and memory. |
86
+ | **Make the interface yours** | Keep light or dark mode across refreshes, apply an adaptive accent theme, and work in 25 languages/locales including Arabic RTL. |
87
+ | **Operate it your way** | Use local accounts, roles, optional OAuth, Docker, Kubernetes, npm, or the Electron desktop client. |
88
+ | **Extend without lock-in** | Configure chat, embeddings, image generation, and text-to-speech providers through the plugin layer. |
160
89
 
161
- Uses separate data volumes (`libre_webui_dev_data`) so your stable install stays safe.
90
+ ## Local-first is a real boundary
162
91
 
163
- </details>
92
+ Libre WebUI ships without application telemetry or analytics. When you use Ollama locally, prompts and responses stay on the infrastructure you control. If you select a remote provider, that provider receives the requests you choose to send to it; Libre WebUI does not pretend otherwise.
164
93
 
165
- ---
94
+ For shared and public deployments, the backend includes:
166
95
 
167
- ## 🏗️ Architecture
96
+ - Local accounts with bcrypt password hashing and JWT sessions
97
+ - Admin and user roles, login/signup rate limits, and optional Cloudflare Turnstile
98
+ - Optional GitHub and Hugging Face OAuth
99
+ - Application-layer AES-256-GCM encryption for supported sensitive values such as credentials
100
+ - Persistent SQLite storage, configurable data directories, and documented backup practices
168
101
 
169
- ```
170
- ┌─────────────────────────────────────────────┐
171
- │ Libre WebUI │
172
- ├──────────────────┬──────────────────────────┤
173
- │ React 18 + TS │ Express 5 + SQLite │
174
- │ Frontend │ Backend │
175
- │ (Vite) │ (JWT + encrypted vals) │
176
- ├──────────────────┴──────────────────────────┤
177
- │ Plugin Layer │
178
- │ Ollama │ OpenAI │ Anthropic │ Google │ … │
179
- ├─────────────────────────────────────────────┤
180
- │ Electron (Desktop) │ Docker │ Kubernetes │
181
- └─────────────────────────────────────────────┘
182
- ```
102
+ Application-layer encryption is not full-disk or end-to-end encryption. Use HTTPS, access-controlled storage, stable secrets, and disk encryption where your threat model requires them. Start with the [authentication guide](https://docs.librewebui.org/AUTHENTICATION) and [encryption guide](https://docs.librewebui.org/DATABASE_ENCRYPTION).
183
103
 
184
- - **Frontend:** React 18 + TypeScript, Vite, Tailwind, responsive with keyboard shortcuts
185
- - **Backend:** Express 5, SQLite, JWT auth, rate limits, SSE/WebSocket streaming
186
- - **Plugins:** JSON config files with per-user credentials, variables, and model discovery
187
- - **Desktop:** Electron with native macOS/Windows/Linux builds
104
+ ## Models and providers without a single-provider worldview
188
105
 
189
- ---
106
+ Ollama is the local path, not a lock-in strategy. Libre WebUI bundles provider definitions spanning chat, images, embeddings, speech, and OpenAI-compatible services, including OpenAI, Anthropic, Google Gemini, Groq, Mistral, OpenRouter, Hugging Face, GitHub Models, ComfyUI, ElevenLabs, Qwen3-TTS, and Kyutai TTS.
190
107
 
191
- ## 🔌 Plugin System
192
-
193
- Add any AI provider with a JSON file — no code changes needed:
194
-
195
- ```json
196
- {
197
- "id": "my-provider",
198
- "name": "My Provider",
199
- "type": "completion",
200
- "endpoint": "https://api.example.com/v1/chat/completions",
201
- "auth": {
202
- "header": "Authorization",
203
- "prefix": "Bearer ",
204
- "key_env": "MY_API_KEY"
205
- },
206
- "model_map": ["model-a", "model-b"]
207
- }
208
- ```
108
+ Credentials can come from deployment-wide environment variables or encrypted, user-scoped settings. Plugins can define static model fallbacks and use live discovery when a provider exposes a compatible model-list endpoint.
209
109
 
210
- Built-in plugins: **OpenAI, Anthropic, Google Gemini, Groq, Mistral, OpenRouter, Hugging Face**, GitHub Models, ComfyUI, ElevenLabs, and more.
110
+ [Explore the plugin system →](https://docs.librewebui.org/PLUGIN_ARCHITECTURE)
211
111
 
212
- Plugins support **multi-capability** (chat + TTS + image gen in one config), **per-user variables**, and **encrypted credential storage**.
213
-
214
- 📖 [Full plugin docs →](./docs/08-PLUGIN_ARCHITECTURE.md)
215
-
216
- ---
112
+ ## Local agents, with the runtime kept separate
217
113
 
218
- ## 🤖 AI Agent Support (Libre Claw)
114
+ [Libre Claw](https://github.com/kroonen-ai/libre-claw) is an optional, admin-controlled local agent runtime. Libre WebUI provides the authenticated control surface for durable runs, timelines, approvals, schedules, usage, and configuration; Libre Claw owns the tools, memory, permission model, and execution.
219
115
 
220
- Libre WebUI supports **AI agents** through
221
- [Libre Claw](https://github.com/kroonen-ai/libre-claw), a local agent daemon
222
- for durable runs, permissioned tools, memory, skills, schedules, Telegram, and
223
- provider routing.
224
-
225
- **What agents can do:**
226
-
227
- - 🧠 **Persistent memory** — durable local memory, run archives, and project summaries
228
- - 🔧 **Tool use** — file operations, shell, git, browser work, HTTP, MCP, schedules, and web search
229
- - 🧰 **Workspace access** — run agent work in the configured local workspace
230
- - ✅ **Approvals** — review and approve tool calls from WebUI before side effects
231
- - 🧭 **Run timeline** — inspect assistant deltas, tool calls, tool results, errors, and artifacts
232
- - 📅 **Automations** — create, pause, resume, run, and delete Libre Claw schedules
233
- - 📊 **Usage** — inspect provider usage and fallback behavior
234
-
235
- Start Libre Claw locally:
236
-
237
- ```bash
238
- libre-claw start
116
+ ```text
117
+ Browser or desktop client
118
+ │
119
+ ▼
120
+ Libre WebUI interface
121
+ React + TypeScript
122
+ │
123
+ ▼
124
+ Express API + WebSocket ─────► SQLite
125
+ │
126
+ ├────────► Ollama (local models)
127
+ ├────────► selected provider plugins
128
+ └────────► Libre Claw (optional agent runtime)
239
129
  ```
240
130
 
241
- Then open **Libre WebUI → Libre Claw**. The backend talks to
242
- `http://127.0.0.1:8766` by default, or to `LIBRE_CLAW_BASE_URL` when configured.
243
-
244
- > **Your agent, your workspace, your data.** Libre WebUI provides the browser
245
- > control surface while Libre Claw keeps the local agent runtime, safety model,
246
- > memory, tools, and schedules.
247
-
248
- 📖 [Libre Claw integration docs →](./docs/31-LIBRE_CLAW_INTEGRATION.md)
131
+ The WebUI backend does not execute Libre Claw's shell or browser tools itself. It proxies authenticated admin actions to the separately running daemon, where approvals and safety rules remain authoritative.
249
132
 
250
- ---
133
+ [Read the Libre Claw integration guide →](https://docs.librewebui.org/LIBRE_CLAW_INTEGRATION)
251
134
 
252
- ## 🤝 Contributing
135
+ ## Deploy on your terms
253
136
 
254
- We'd love your help! Libre WebUI is built by people who care about privacy and AI freedom.
137
+ | Path | Command or link | Best for |
138
+ | ------------------- | ----------------------------------------------------------------------- | --------------------------------------------------- |
139
+ | **npm** | `npx libre-webui` | The fastest local start |
140
+ | **Docker + Ollama** | `docker compose up -d` | Persistent self-hosting in one stack |
141
+ | **External Ollama** | `docker compose -f docker-compose.external-ollama.yml up -d` | An existing local or remote Ollama service |
142
+ | **NVIDIA Docker** | `docker compose -f docker-compose.gpu.yml up -d` | Local GPU inference |
143
+ | **Kubernetes** | `helm install libre-webui oci://ghcr.io/libre-webui/charts/libre-webui` | Cluster deployments |
144
+ | **Desktop client** | [GitHub Releases](https://github.com/libre-webui/libre-webui/releases) | Electron client builds; the backend runs separately |
145
+ | **Source** | `npm install && npm run dev` | Development and contribution |
255
146
 
256
- **Getting started is easy:**
147
+ Docker commands assume you have cloned this repository. Production deployments should set stable `JWT_SECRET` and `ENCRYPTION_KEY` values, persist the data directory, back up the database and key together, and terminate public traffic with HTTPS.
257
148
 
258
- 1. Fork the repo and clone it
259
- 2. `npm install && npm run dev`
260
- 3. Make your changes on a branch off `dev`
261
- 4. Open a PR — one approving review from the TSC and you're in
149
+ [Docker](https://docs.librewebui.org/DOCKER) · [Kubernetes](https://docs.librewebui.org/KUBERNETES) · [Environment variables](https://docs.librewebui.org/ENVIRONMENT_VARIABLES) · [Hardware guide](https://docs.librewebui.org/HARDWARE_REQUIREMENTS)
262
150
 
263
- **Ways to contribute:**
151
+ ## Built from experience, for independence
264
152
 
265
- - 🐛 **Bug reports** — [open an issue](https://github.com/libre-webui/libre-webui/issues)
266
- - 💡 **Feature ideas** — start a discussion
267
- - 🌍 **Translations** — help us reach more languages
268
- - 📖 **Documentation** — every improvement helps
269
- - 🔌 **Plugins** — share your provider configs
153
+ Libre WebUI is built around a hard-earned lesson: source availability alone does not guarantee shared power. Our response is constructive—compete by shipping better software and stronger commitments that anyone can inspect.
270
154
 
271
- All contributors follow our [Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) and [Community Charter](./CHARTER.md).
155
+ That means local-first defaults without forbidding the cloud, commercial support without changing the core license, and a community where identity, background, or geography never determines who belongs. Kroonen AI maintains Libre WebUI under the project's public charter, which accepts donations or grants only when they do not control the roadmap, license, or community.
272
156
 
273
- Security issues? Email **security@kroonen.ai** — we follow a 30-day coordinated disclosure.
157
+ **Freedom should not be a phase in a startup's growth plan. It should be part of the architecture.**
274
158
 
275
- ---
159
+ ## Build with us
276
160
 
277
- ## 📜 Our Promise
161
+ Libre WebUI is for people who want excellent AI software and the freedom to outgrow its maintainers.
278
162
 
279
- Libre WebUI has an [Ethical Charter](./CHARTER.md) that guarantees:
163
+ 1. Fork and clone the repository.
164
+ 2. Create a branch from `dev`.
165
+ 3. Run `npm install && npm run dev`.
166
+ 4. Add tests and documentation with your change.
167
+ 5. Open a pull request against `dev`.
280
168
 
281
- - 🔓 **Apache 2.0 forever** — no bait-and-switch relicensing
282
- - 🚫 **Zero telemetry** — no analytics, no tracking, no phone-home. Ever.
283
- - 🏛️ **Community governance** — transparent decisions, public roadmap
284
- - 🤝 **No VC capture** — funded by the community, for the community
285
- - ✊ **Ethical use** — we actively oppose surveillance and weapons applications
169
+ You can also help by [reporting bugs](https://github.com/libre-webui/libre-webui/issues), improving documentation, translating the interface, or contributing provider definitions.
286
170
 
287
- ---
171
+ All participation follows the [Contributor Covenant 2.1](https://www.contributor-covenant.org/version/2/1/code_of_conduct/) and the [Libre WebUI Community & Ethical Charter](https://github.com/libre-webui/libre-webui/blob/main/CHARTER.md). Report security issues privately to **security@kroonen.ai**.
288
172
 
289
- ## 🏢 Enterprise
173
+ ## Stewardship and support
290
174
 
291
- Need to deploy at scale? [Kroonen AI](https://kroonen.ai) provides professional services:
175
+ [Kroonen AI](https://kroonen.ai) funds development and provides professional deployment, integration, security review, training, customization, and SLA-backed support. Commercial services do not change the Apache 2.0 license of the core project.
292
176
 
293
- | Service | Description |
294
- | ------------------------ | ------------------------------------------------- |
295
- | **Custom Deployment** | On-prem, cloud, private-network, and Kubernetes |
296
- | **Identity & Access** | OAuth setup, role design, and enterprise planning |
297
- | **Custom Development** | Integrations, white-labeling, and plugins |
298
- | **Security Reviews** | Deployment hardening and control documentation |
299
- | **SLA-Backed Support** | Priority response and dedicated channels |
300
- | **Air-Gapped Workflows** | Offline deployments and local model operations |
177
+ For enterprise work, contact **enterprise@kroonen.ai**. To support independent development directly, [sponsor Libre WebUI](https://github.com/sponsors/libre-webui).
301
178
 
302
- 📧 **enterprise@kroonen.ai** • [Learn more →](https://kroonen.ai/services)
179
+ ## Project links
303
180
 
304
- ---
305
-
306
- ## 🔗 Links
307
-
308
- | | |
309
- | -------------------- | -------------------------------------------------------------------------------- |
310
- | 🌐 **Website** | [librewebui.org](https://librewebui.org) |
311
- | 📖 **Documentation** | [docs.librewebui.org](https://docs.librewebui.org) |
312
- | 🐙 **GitHub** | [github.com/libre-webui/libre-webui](https://github.com/libre-webui/libre-webui) |
313
- | 🦊 **GitLab** | [git.kroonen.ai/libre-webui](https://git.kroonen.ai/libre-webui/libre-webui) |
314
- | 🤗 **Hugging Face** | [huggingface.co/libre-webui](https://huggingface.co/libre-webui) |
315
- | 𝕏 **Twitter** | [@librewebui](https://x.com/librewebui) |
316
- | 🐘 **Mastodon** | [@librewebui@fosstodon.org](https://fosstodon.org/@librewebui) |
317
- | ❤️ **Sponsor** | [github.com/sponsors/libre-webui](https://github.com/sponsors/libre-webui) |
181
+ | | |
182
+ | ----------------- | ---------------------------------------------------------------------------------------- |
183
+ | **Website** | [librewebui.org](https://librewebui.org) |
184
+ | **Documentation** | [docs.librewebui.org](https://docs.librewebui.org) |
185
+ | **Releases** | [GitHub Releases](https://github.com/libre-webui/libre-webui/releases) |
186
+ | **GitHub** | [github.com/libre-webui/libre-webui](https://github.com/libre-webui/libre-webui) |
187
+ | **GitLab mirror** | [git.kroonen.ai/libre-webui/libre-webui](https://git.kroonen.ai/libre-webui/libre-webui) |
188
+ | **Hugging Face** | [huggingface.co/libre-webui](https://huggingface.co/libre-webui) |
189
+ | **Sponsor** | [github.com/sponsors/libre-webui](https://github.com/sponsors/libre-webui) |
318
190
 
319
191
  ---
320
192
 
321
193
  <div align="center">
322
194
 
323
- ### ⭐ If Libre WebUI helps you, give us a star!
195
+ ### If Libre WebUI gives you more control, give it a star.
324
196
 
325
- It helps others discover the project and keeps us motivated.
197
+ Stars help independent software get discovered without buying attention.
326
198
 
327
- <a href="https://github.com/libre-webui/libre-webui"><img src="https://img.shields.io/github/stars/libre-webui/libre-webui?style=for-the-badge&label=Star%20on%20GitHub&color=gold" alt="Star on GitHub"></a>
199
+ <a href="https://github.com/libre-webui/libre-webui"><img src="https://img.shields.io/github/stars/libre-webui/libre-webui?style=for-the-badge&label=Star%20Libre%20WebUI&color=f59e0b" alt="Star Libre WebUI on GitHub"></a>
328
200
 
329
201
  <br><br>
330
202
 
331
- **Apache 2.0 License** • Copyright © 2025–present Libre WebUI™
332
-
333
- Built with ❤️ by [Kroonen AI](https://kroonen.ai) and the open-source community
203
+ **Apache 2.0** · Copyright © 2025–present Kroonen AI, Inc. and Libre WebUI contributors<br>
204
+ Built by [Kroonen AI](https://kroonen.ai) and the open-source community
334
205
 
335
206
  </div>
@@ -1 +1 @@
1
- {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/routes/chat.ts"],"names":[],"mappings":"AAuCA,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAwvBhC,eAAe,MAAM,CAAC"}
1
+ {"version":3,"file":"chat.d.ts","sourceRoot":"","sources":["../../src/routes/chat.ts"],"names":[],"mappings":"AAuCA,QAAA,MAAM,MAAM,4CAAmB,CAAC;AAkwBhC,eAAe,MAAM,CAAC"}
@@ -475,7 +475,11 @@ router.post('/sessions/:sessionId/generate-title', async (req, res) => {
475
475
  }
476
476
  res.json({
477
477
  success: true,
478
- data: { title: titleResult.title },
478
+ data: {
479
+ title: titleResult.title,
480
+ source: titleResult.source,
481
+ updatedAt: titleResult.session.updatedAt,
482
+ },
479
483
  });
480
484
  }
481
485
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/routes/chat.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat.js","sourceRoot":"","sources":["../../src/routes/chat.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,10 @@ export interface GenerateTitleForSessionResult {
13
13
  model: string;
14
14
  source: 'plugin' | 'ollama' | 'fallback';
15
15
  }
16
+ export interface SanitizedGeneratedTitle {
17
+ title: string;
18
+ usedFallback: boolean;
19
+ }
16
20
  interface ChatServiceDependency {
17
21
  getSession(sessionId: string, userId?: string): ChatSession | undefined;
18
22
  updateSession(sessionId: string, updates: Partial<ChatSession>, userId?: string): Promise<ChatSession | null | undefined> | ChatSession | null | undefined;
@@ -38,6 +42,7 @@ export interface TitleGenerationServiceDependencies {
38
42
  }
39
43
  export declare function buildTitlePrompt(message: string): string;
40
44
  export declare function buildFallbackTitle(message: string): string;
45
+ export declare function sanitizeGeneratedTitleResult(rawTitle: string, sourceMessage: string): SanitizedGeneratedTitle;
41
46
  export declare function sanitizeGeneratedTitle(rawTitle: string, sourceMessage: string): string;
42
47
  export declare class TitleGenerationService {
43
48
  private chatService;
@@ -1 +1 @@
1
- {"version":3,"file":"titleGenerationService.d.ts","sourceRoot":"","sources":["../../src/services/titleGenerationService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"titleGenerationService.d.ts","sourceRoot":"","sources":["../../src/services/titleGenerationService.ts"],"names":[],"mappings":"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"}