Skip to content
Merged

0.11.1 #1356

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
137 commits
Select commit Hold shift + click to select a range
7555f83
Document terminal contexts for API callers
Classic298 Aug 8, 2026
31e98de
Document the new configuration surface for the upcoming release
Classic298 Aug 11, 2026
9a60fb3
Document terminal contexts, and the link and CSV retrieval behaviour
Classic298 Aug 11, 2026
b9acbf7
Document terminal contexts across the terminal pages, and the link an…
Classic298 Aug 11, 2026
b4be080
Document memory handling, sub-agent attachments and the corrected cha…
Classic298 Aug 11, 2026
9c21dd0
Document the notes, permissions and message queue behaviour of the up…
Classic298 Aug 11, 2026
9ff045d
Document sub-agent file handover, memory handling and token usage rep…
Classic298 Aug 11, 2026
6bfd67c
Record the identity provider column change and trim the JSON encoder …
Classic298 Aug 11, 2026
253515c
Give the instance-wide interface defaults their own page and correct …
Classic298 Aug 11, 2026
4831c8b
Document the resolver choice and the event call timeout return
Classic298 Aug 11, 2026
4b28cfe
Document queued sends, referencing a shared chat and the read-only si…
Classic298 Aug 11, 2026
0c48fdb
Trim the CSV summary and reindex notes to what an operator can observe
Classic298 Aug 11, 2026
b242785
Correct the admin panel paths across the docs
Classic298 Aug 11, 2026
74d2e0a
Give the instance-wide interface defaults their own page and finish t…
Classic298 Aug 11, 2026
0b29c0c
Document role change session handling, task models and the read-only …
Classic298 Aug 11, 2026
344ca27
Point the reference pages at the release they now describe
Classic298 Aug 11, 2026
5722467
Document the model slash command, named writing blocks and the Office…
Classic298 Aug 11, 2026
5040dd4
Name which persistence setting wins and finish the web search reference
Classic298 Aug 11, 2026
46d1ad3
Name the task parameters that do nothing and describe the CSV summary…
Classic298 Aug 11, 2026
26f8219
Document what the log level costs and correct the memory budget wording
Classic298 Aug 11, 2026
2607875
Complete the model capability reference and finish correcting the adm…
Classic298 Aug 11, 2026
883d915
Order the orchestration pages and complete the terminal maintenance r…
Classic298 Aug 11, 2026
4ba2bea
Document openGauss vector storage and how streaming copes with non-co…
Classic298 Aug 11, 2026
65bd8d7
Normalise the admin path prefix and bring the sharing permission labe…
Classic298 Aug 11, 2026
108cc8c
Cover the remaining streaming deviations and the chunk buffer behaviour
Classic298 Aug 11, 2026
f3b175d
Record the missing text symptom on the released version and cover Jup…
Classic298 Aug 11, 2026
bfdc9b3
Correct when outlet filters run for API callers, and document per-use…
Classic298 Aug 11, 2026
3986028
Complete the permission tables and the tool server authorization notes
Classic298 Aug 11, 2026
eaf4f34
Correct what turning off web attachment actually does
Classic298 Aug 11, 2026
7f9c4c6
Describe the analytics period and drop an unsupported frequency claim
Classic298 Aug 11, 2026
fb49b33
Restore the vendor disposition text and say what deactivation actuall…
Classic298 Aug 11, 2026
1eae3f8
Cover interface scaling, calendar dates and the sidebar behaviour on …
Classic298 Aug 11, 2026
a6ec127
Send the group permission paths to the page that actually holds them
Classic298 Aug 11, 2026
25f65c5
Describe keyboard navigation and what the interface scale actually co…
Classic298 Aug 11, 2026
faeb1c1
Describe the sidebar swipe without pinning it to exact thresholds
Classic298 Aug 11, 2026
323ed70
Record the model list and phone navigation notes
Classic298 Aug 11, 2026
542a9d6
Say plainly that a release changing the schema cannot be rolled out g…
Classic298 Aug 11, 2026
ee0bb2a
Carry the simultaneous update requirement into the deployment guidance
Classic298 Aug 11, 2026
fa60b86
Document the model list rules and what disabling a model does
Classic298 Aug 11, 2026
d133f2c
Give accessibility a page of its own
Classic298 Aug 11, 2026
3976093
Rebuild the user table against the model and migrations
Classic298 Aug 11, 2026
580f97a
Correct the connection setup instructions to the controls that exist
Classic298 Aug 11, 2026
f85e3ac
Correct the OAuth session relationship in the schema reference
Classic298 Aug 11, 2026
f3f5048
Repair the tables that were rendering as raw text and the constraints…
Classic298 Aug 11, 2026
9a6555b
Document the API key table and correct the schema reference against t…
Classic298 Aug 11, 2026
6848d3f
Say which shared folders accept a dropped chat and how the automation…
Classic298 Aug 11, 2026
b3e6ad7
Record how a note with stored structured content opens
Classic298 Aug 11, 2026
077d827
Correct the merge instructions and replace the loading placeholder de…
Classic298 Aug 11, 2026
4feb205
Cover the terminal connection dialog and the unavailable image placeh…
Classic298 Aug 11, 2026
de6bfe0
Say plainly what happens to a duplicate direct message conversation
Classic298 Aug 11, 2026
5b2670c
Complete the channel, membership and knowledge directory tables
Classic298 Aug 11, 2026
179f95e
Record who wrote a shared chat and what a failed chat action reports
Classic298 Aug 11, 2026
be19cd9
Record how a note holding structured content is stored and shown
Classic298 Aug 11, 2026
78f00a2
Record the message reference cascade and tidy the access wording
Classic298 Aug 11, 2026
30533c9
Say which controls disappear without the delete and import permissions
Classic298 Aug 11, 2026
697b382
Describe the access picker and the readable refusal message
Classic298 Aug 11, 2026
cb2a6bf
Document channel webhooks, message pinning and replies
Classic298 Aug 11, 2026
9ede804
Correct the permission labels in the environment reference and descri…
Classic298 Aug 11, 2026
47be2bb
Correct the tag mapping and reaction tables against the migrations
Classic298 Aug 11, 2026
cc0c069
Say who can create which kind of channel
Classic298 Aug 11, 2026
445623a
Mark the tag mapping table as legacy
Classic298 Aug 11, 2026
b8da1f6
Say that voice mode is not offered in a note's chat
Classic298 Aug 11, 2026
f719916
Describe the expand control in the message box
Classic298 Aug 11, 2026
9431a1e
Correct what an anonymous reader of an open share link sees
Classic298 Aug 11, 2026
9ac810d
Describe the chat overview panel and its controls
Classic298 Aug 11, 2026
90e3b7f
Remove the em dashes from the documentation prose
Classic298 Aug 11, 2026
d33bf89
Correct how model parameters combine and document multi-line tool des…
Classic298 Aug 11, 2026
7747fff
Correct when an interface override is released
Classic298 Aug 11, 2026
80b66ec
Bring the task model recommendations up to date
Classic298 Aug 11, 2026
75b9763
Drop the caveats paragraph from the shared chat authorship section
Classic298 Aug 11, 2026
1ed2c12
Drop the account of the previous behaviour when attaching a shared chat
Classic298 Aug 11, 2026
fa79ce5
Simplify the folder write access wording and drop the error message p…
Classic298 Aug 11, 2026
112d650
Remove the touchscreen sidebar section
Classic298 Aug 11, 2026
a00af46
Trim the chat overview entry to its summary
Classic298 Aug 11, 2026
e305ca0
Trim the section on sending before an upload finishes
Classic298 Aug 11, 2026
390c1a0
Trim the CSV table summary section
Classic298 Aug 11, 2026
6d69e9a
Drop the interface defaults plugin from the event functions list
Classic298 Aug 11, 2026
0952e51
Trim the account connection section and drop the structured note admo…
Classic298 Aug 11, 2026
71f3f0a
Trim the note sharing section
Classic298 Aug 11, 2026
b08bc7a
Remove the accessibility page and the secret key default paragraphs
Classic298 Aug 11, 2026
177a54e
Trim the log level and name lookup sections
Classic298 Aug 11, 2026
f3a75fe
Trim the Responses deviations section and remove the phone navigation…
Classic298 Aug 11, 2026
69f7470
Say plainly that raising the worker count is the wrong way to scale
Classic298 Aug 11, 2026
985fcb8
Trim the permission, resolver, task parameter and terminal context en…
Classic298 Aug 11, 2026
4fcaaa7
Trim the sharing, event timeout and compaction entries
Classic298 Aug 11, 2026
424cdc5
Remove the version skew and encoder narrowness paragraphs
Classic298 Aug 11, 2026
1e50354
Cut the encoder notes down to what a reader acts on
Classic298 Aug 11, 2026
e8d26ca
Point the tuning entries at one explanation instead of repeating it
Classic298 Aug 11, 2026
4c41fbc
Trim the sign-in and Windows startup troubleshooting entries
Classic298 Aug 11, 2026
2554618
Trim the attachment failure entries and collapse the OAuth admonition
Classic298 Aug 11, 2026
1490c65
Merge main into dev
Classic298 Aug 11, 2026
42b31e7
Merge branch 'main' into dev
Classic298 Aug 11, 2026
15c3253
Merge branch 'main' into dev
Classic298 Aug 11, 2026
28d0582
Merge branch 'main' into dev
Classic298 Aug 11, 2026
0296ed1
Document provider model management and correct the automation folder …
Classic298 Aug 13, 2026
2dada47
Document downloading provider models from the model selector
Classic298 Aug 13, 2026
3e335fe
Say how the channel mention list is ordered
Classic298 Aug 14, 2026
09f602e
Document tool approval and the ask_user builtin tool
Classic298 Aug 14, 2026
d714e90
Record the huntr withdrawal of nine disputed CVEs
Classic298 Aug 14, 2026
4849f2b
Record the renewed CVE Program request on the three ZDI records
Classic298 Aug 14, 2026
1ba5211
Add the missing withdrawal reply to the CVE-2024-7036 timeline
Classic298 Aug 14, 2026
4764f59
Correct the disclosure pathway on CVE-2024-8060 and CVE-2024-7046
Classic298 Aug 14, 2026
7f2f048
Note the unchanged huntr report status on the remaining nine records
Classic298 Aug 14, 2026
823c73e
Make the still-open badge readable in both themes
Classic298 Aug 14, 2026
075e1b0
Document the settings and temporary slash commands and the tool appro…
Classic298 Aug 15, 2026
6bd3e63
Document the connection Provider dropdown
Classic298 Aug 16, 2026
e5d4748
Record the CVE Program escalation over the unchanged huntr report status
Classic298 Aug 17, 2026
7e3299c
Document three records assigned and withdrawn without notice
Classic298 Aug 17, 2026
06c6d7f
Say what the CVE-2024-12868 record actually describes
Classic298 Aug 17, 2026
73632e6
Lead the INCIBE page with the record scored CRITICAL after withdrawal
Classic298 Aug 17, 2026
a779db3
docs: correct API keys page against the current UI and key model
Classic298 Aug 18, 2026
2dcba08
Warn that a system prompt variable without the chat.variables. prefix…
Classic298 Aug 19, 2026
372e8b8
Lead the essentials context section with Context Compaction
Classic298 Aug 19, 2026
16e5fb4
Document the Chat Uploads setting that routes attachments to the term…
claude Aug 20, 2026
a4ac712
Document Authorize OAuth and what the discovery check actually proves
Classic298 Aug 20, 2026
1b83c6c
Document the four sandbox settings that govern what an artifact previ…
Classic298 Aug 23, 2026
fa7a3ba
Merge branch 'main' into dev
Classic298 Aug 23, 2026
d202443
Revert the artifacts sandbox section pending review
Classic298 Aug 23, 2026
8cab105
Document the four preview sandbox settings and their current defaults
Classic298 Aug 23, 2026
aa39039
Document inline terminal file cards, the display preference, and drop…
Classic298 Aug 23, 2026
4176f21
Say that SCIM only sees externally provisioned accounts
Classic298 Aug 23, 2026
734f618
Document deleting an API key, not only replacing one
Classic298 Aug 23, 2026
417f298
Document opening a document at a given page
Classic298 Aug 24, 2026
926d9d8
Correct the presence write default, and document knowledge file reten…
Classic298 Aug 24, 2026
dfd7b0f
Send readers to the Admin Panel for Functions, not the Workspace
Classic298 Aug 24, 2026
a5a3521
Document turning off websocket frame compression
Classic298 Aug 24, 2026
a292f57
Say that the document size limit covers fetched documents too
Classic298 Aug 24, 2026
d372193
Document choosing the Apache Tika API version
Classic298 Aug 25, 2026
dbc37f8
Say that Office and EPUB documents are checked against what they unpa…
Classic298 Aug 25, 2026
2b4c8b8
Document the websocket heartbeat interval and the Redis response stre…
Classic298 Aug 25, 2026
f3bce3d
Describe what the web fetch blocklist now covers beyond metadata endp…
Classic298 Aug 25, 2026
373e249
Correct the presence interval recommendation, which broke the active-…
Classic298 Aug 25, 2026
9c972bc
Document the cap on oversized document metadata values
Classic298 Aug 25, 2026
570b106
Recommend a concrete presence write interval of 120 seconds
Classic298 Aug 25, 2026
cadb6f7
Say that code interpreter tags are only executed in Legacy mode
Classic298 Aug 25, 2026
c9ea612
Record that the metadata ceiling now follows the upload size limit
Classic298 Aug 25, 2026
a4e16df
Document the sandbox on terminal port previews
Classic298 Aug 25, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion docs/ecosystem/computer/automate/open-webui.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ Computer's gateway exposes each workspace as an OpenAI-compatible model, so you
## Connect it

1. In Computer, open **Settings → Admin → Gateway** and create a gateway API key. Copy it immediately; it's shown once and stored hashed.
2. In Open WebUI, go to **Admin Settings → Connections** and add an **OpenAI API** connection:
2. In Open WebUI, go to **Settings → Admin → Connections** and add an **OpenAI API** connection:
- Base URL: `http(s)://<computer-host>/v1`
- API key: the `sk-cptr-...` key from step 1
3. Add these custom headers to the connection so Computer can track chat lineage and filter Open WebUI's utility requests:
Expand Down
2 changes: 1 addition & 1 deletion docs/ecosystem/computer/troubleshooting.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ The setup token is printed once when `cptr run` starts, and the setup URL only w

## I forgot my password / I'm locked out

If another admin exists, they can reset your password in **Settings → Admin Users**. Two things that trip people up first:
If another admin exists, they can reset your password in **Admin Panel > Users**. Two things that trip people up first:

- Login is rate-limited to **5 attempts per minute per IP**. If you're getting `429`, wait a minute and try again.
- Rotating `[server] secret` in `config.toml` signs out every session; it does **not** reset any password.
Expand Down
2 changes: 1 addition & 1 deletion docs/ecosystem/computer/use-cases/open-webui-hands.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ Open WebUI is where you already chat: your models, your prompts, your history. B

1. **Mint the key.** In Computer, go to **Settings → Admin → Gateway** and create an API key. Copy it now; it's shown once and stored hashed.

2. **Add the connection in Open WebUI.** Admin Settings → Connections → add an OpenAI API connection:
2. **Add the connection in Open WebUI.** Settings → Admin → Connections → add an OpenAI API connection:

- **Base URL:** `http://<computer-host>:8000/v1`
- **API Key:** the `sk-cptr-...` key
Expand Down
2 changes: 1 addition & 1 deletion docs/ecosystem/knowledge-base-sync/daemon.md
Original file line number Diff line number Diff line change
Expand Up @@ -223,7 +223,7 @@ It serves a spec at `GET /openapi.json` exposing exactly three actions (the dash
To connect it:

1. **Secure it first.** Set `OIKB_API_KEY` so `/sync` and `/history` are not open to anyone who can reach the daemon.
2. Add the daemon's URL (for example `http://oikb:8080`) as a tool server: **Admin Settings → Integrations** for an instance-wide connection, or **Settings → Integrations** for a personal one. Supply the same `OIKB_API_KEY` as the connection's API key.
2. Add the daemon's URL (for example `http://oikb:8080`) as a tool server: **Settings → Admin → Integrations** for an instance-wide connection, or **Settings → Integrations** for a personal one. Supply the same `OIKB_API_KEY` as the connection's API key.

This is a standard OpenAPI tool-server connection, the same mechanism described on the [OpenAPI / MCP tool servers](/features/extensibility/mcp) page; oikb just happens to be the thing on the other end.

Expand Down
2 changes: 1 addition & 1 deletion docs/enterprise/deployment/container-service.md
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ Avoid the `:main` tag in production. It tracks the latest development build and
| **Storage** | Use object storage (S3, GCS, Azure Blob) or a shared filesystem (such as EFS). Container-local storage is ephemeral and not shared across tasks. |
| **Tika sidecar** | Run Tika as a sidecar container in the same task definition, or as a separate service. Sidecar pattern keeps extraction traffic local. |
| **Secrets management** | Use your platform's secrets manager (AWS Secrets Manager, Azure Key Vault, GCP Secret Manager) for `DATABASE_URL`, `REDIS_URL`, and `WEBUI_SECRET_KEY`. |
| **Updates** | Perform a rolling deployment with a single task first. This task runs migrations (`ENABLE_DB_MIGRATIONS=true`). Once healthy, scale the remaining tasks with `ENABLE_DB_MIGRATIONS=false`. |
| **Updates** | Scale the service down to a single task, deploy the new image on it (`ENABLE_DB_MIGRATIONS=true`), wait for it to become healthy, then scale the remaining tasks back up (`ENABLE_DB_MIGRATIONS=false`). Rolling updates are not supported across a release that changes the schema, so old and new tasks must never serve traffic at the same time. See [Updates and Migrations](/troubleshooting/multi-replica#updates-and-migrations). |

## Anti-Patterns to Avoid

Expand Down
2 changes: 2 additions & 0 deletions docs/enterprise/deployment/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,8 @@ ENABLE_DB_MIGRATIONS=false

:::warning Database Migrations
Set `ENABLE_DB_MIGRATIONS=false` on **all instances except one**. During updates, scale down to a single instance, allow migrations to complete, then scale back up. Concurrent migrations can corrupt your database.

Rolling updates are not supported across a release that changes the schema, whatever rolling-deployment machinery your platform offers: every instance has to move to the new version at once, and old and new instances must never serve traffic against the same database at the same time. Back the database up before you start. See [Updates and Migrations](/troubleshooting/multi-replica#updates-and-migrations).
:::

For the complete step-by-step scaling walkthrough, see [Scaling Open WebUI](/getting-started/advanced-topics/scaling). For the full environment variable reference, see [Environment Variable Configuration](/reference/env-configuration).
Expand Down
9 changes: 5 additions & 4 deletions docs/faq.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,7 @@ For more details on enterprise solutions and branding customizations, [click her

Open WebUI intentionally does **not** ship a built-in context trimmer. Every model has a different tokenizer and a different context window, and every deployment wants a different truncation policy (by tokens, by turns, by message count, file-attachments-first, summarize-and-replace, per-model budgets, and so on). There is no single policy that is correct for every user, so we expose the hook instead of choosing one for you.

Context management is done with [filter Functions](/features/extensibility/plugin/functions/filter): `inlet()` receives the full `body["messages"]` on every request and can modify it freely (drop old turns, enforce a turn limit, summarize, trim attachments, etc.). Many published context filters are already available one-click on [openwebui.com](https://openwebui.com/): browse, install, and tune the valves. If none fits, copy the closest one into **Admin Panel Functions** and edit it.
Context management is done with [filter Functions](/features/extensibility/plugin/functions/filter): `inlet()` receives the full `body["messages"]` on every request and can modify it freely (drop old turns, enforce a turn limit, summarize, trim attachments, etc.). Many published context filters are already available one-click on [openwebui.com](https://openwebui.com/): browse, install, and tune the valves. If none fits, copy the closest one into **Admin Panel > Functions** and edit it.

For the full write-up with examples, see [Context Window / Prompt Too Long](/troubleshooting/context-window).

Expand Down Expand Up @@ -214,7 +214,7 @@ Models frequently:

**To verify which model you're actually using:**
1. Check the model selector in the Open WebUI interface
2. Look at the **Settings > Admin > AI > Connections** to confirm your API endpoints
2. Look at the **Settings > Admin > Connections** to confirm your API endpoints
3. Check your provider's dashboard/logs for the actual API calls being made

Asking the model itself is **not** a valid way to diagnose routing issues. If you suspect a configuration problem, check your connection settings and API keys instead.
Expand All @@ -240,9 +240,10 @@ This is also why the same model accessed through different interfaces might give
By default, these tasks use the **same model** you're chatting with. If you're using an expensive API model (like GPT-5.6 Sol or Claude Opus 5), this can significantly increase your costs.

**To reduce API costs:**
1. Go to **Settings > Admin > Experience > Interface** (for title/tag generation settings)
2. Configure a **Task Model** under **Settings > Admin > Experience > Interface > Tasks** to use a smaller, cheaper model (like GPT-5.6 Luna) or a local model for background tasks
1. Go to **Settings > Admin > Interface** (for title/tag generation settings)
2. Configure a **Task Model** under **Settings > Admin > Interface > Tasks** to use a smaller, cheaper model (like GPT-5.6 Luna) or a local model for background tasks
3. Disable features you don't need (auto-title, auto-tags, etc.)
4. Cap what those requests can spend by setting `max_tokens` under **Task Model Parameters** in the same **Tasks** section. Tag, follow-up and search query generation otherwise send no output limit at all. See [Task Models](/features/administration/task-models#task-model-parameters)

:::tip Cost-Saving Recommendation
Set your Task Model to a fast, inexpensive model (or a local model via Ollama) while keeping your primary chat model as a more capable one. This gives you the best of both worlds: smart responses for your conversations, cheap/free processing for background tasks.
Expand Down
17 changes: 13 additions & 4 deletions docs/features/administration/analytics/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -48,13 +48,13 @@ The dashboard described here is the instance-wide admin view. Separately, **ever

It is scoped strictly to the signed-in user's own data:

- Token totals (input and output), both lifetime and for the selected period
- Token totals (input and output), both lifetime and for the period covered
- Message and chat counts, and the number of days they were active
- An activity heatmap, viewable by day, by week, or as a cumulative total
- Current and longest activity streaks
- Their most-used models and tools

The period is selectable, and the data is bucketed in the user's own timezone. Because it only ever reports the requesting user's own activity, it exposes nothing about anyone else's.
The period covered is the past two years (the last 730 days), the same window for every account regardless of when it was created, and the data is bucketed in the user's own timezone. Because it only ever reports the requesting user's own activity, it exposes nothing about anyone else's.

## Dashboard Features

Expand All @@ -67,8 +67,11 @@ At the top right of the Analytics dashboard, you can filter all data by time per
- **Last 30 days** - Monthly snapshot
- **Last 90 days** - Quarterly trends
- **All time** - Complete historical data
- **Custom range** - A start and an end date you choose

Your selected time period is **automatically saved** and persists across browser sessions.
Choosing **Custom range** puts two date fields next to the period dropdown. Nothing is queried until both are filled in, so while you are still picking, the dashboard sits idle instead of showing a spinner, and it loads as soon as the second date is set. The end date is inclusive, so it covers the whole of that day.

Your selected time period is **automatically saved** and persists across browser sessions, the custom dates included. If you leave Analytics on **Custom range** with the dates incomplete and come back to it later, the dashboard shows empty figures until you fill the range in, rather than loading indefinitely.

### Group Filtering

Expand Down Expand Up @@ -213,6 +216,12 @@ Open WebUI automatically captures token usage from model responses and stores it

Token data is normalized across different model providers (OpenAI, Ollama, llama.cpp, etc.) to provide consistent metrics regardless of which backend you're using.

The figures are the ones the provider reports, and most OpenAI-compatible providers report nothing on a streamed reply unless they are asked. Asking is what the **Usage** capability in **Workspace > Models > Edit** does, so a model without it can show no tokens at all. See [Capabilities and bindings](/features/workspace/models#capabilities-and-bindings).

:::info Scheduled and delegated runs are counted too
The request for token counts is added server-side, so a model with **Usage** enabled reports its tokens in every chat it runs, including the ones Open WebUI starts on a user's behalf through [automations](/features/chat-conversations/chat-features/automations), [timers](/features/chat-conversations/chat-features/timers), [sub-agents](/features/chat-conversations/chat-features/subagents) and [channels](/features/channels). Those runs are part of the same totals as the chats people type in.
:::

### Token Usage Metrics

The **Token Usage** section (accessible via the Tokens endpoint or dashboard) provides:
Expand Down Expand Up @@ -344,7 +353,7 @@ GET /api/v1/analytics/models/{model_id}/overview # Get feedback history and tags
```
GET /api/v1/users/usage
```
Accepts either `days` (7-732) or an explicit `start_date` / `end_date` range, and buckets results in the requesting user's timezone. This one is not admin-gated, because it reports nothing beyond the caller's own activity.
Accepts either `days` (7-732) or an explicit `start_date` / `end_date` range, and buckets results in the requesting user's timezone. Called with none of them, as the **Settings > Usage** page does, it returns the last 730 days ending now. This one is not admin-gated, because it reports nothing beyond the caller's own activity.

**Common Query Parameters:**

Expand Down
11 changes: 11 additions & 0 deletions docs/features/administration/evaluation/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,17 @@ Need more depth? You can even replicate a [**Chatbot Arena**](https://lmarena.ai

![Chatbot Arena Example](/images/evaluation/arena-many.png)

#### Configuring an Arena Model

Arena models live in **Settings > Admin > Evaluations**. Switch **Arena Models** on and a **Models** section appears listing the arena models you have created. Until you add one, a single default arena model is used and it draws from every model on the instance.

Use the **+** button to add an arena model, or the gear icon on an existing row to edit it. Alongside the name, ID, description and access control, each arena model carries its own pool of models:

- Pick models one at a time from the **Select a model** dropdown and click **+**. Leave the list empty to draw from every model.
- The **Include** / **Exclude** button above the list flips whether the models you listed are the pool or are the ones kept out of it.

A model can sit in the list only once. The dropdown offers only models that are not already listed, so there is nothing left to pick twice. That matters in **Include** mode, where every message draws one model from the list at random and an ID stored twice is drawn twice as often. Opening an arena model whose stored list still contains duplicates collapses them, and saving writes the cleaned list back.

### **2. Normal Interaction**

No need to switch to “arena mode” if you don't want to. You can use Open WebUI normally and rate the AI model responses as you would in everyday operations. Just thumbs up/down the model responses, whenever you feel like it. However, **if you want your feedback to be used for ranking on the leaderboard**, you'll need to **swap out the model and interact with a different one**. This ensures there's a **sibling response** to compare it with. Only comparisons between two different models will influence rankings.
Expand Down
22 changes: 22 additions & 0 deletions docs/features/administration/index.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -27,15 +27,27 @@ Open WebUI gives administrators a full operational toolkit. Track which models y

| | |
| :--- | :--- |
| 🎛️ **[Task Models](./task-models)** | The model and parameters behind titles, tags, follow-ups, autocomplete, search queries and compaction summaries |
| 📊 **[Analytics](./analytics)** | Usage dashboards with message volume, token consumption, model breakdowns, and per-user activity |
| 🏆 **[Evaluation](./evaluation)** | Model arena, blind A/B testing, ELO-based leaderboards, and chat snapshots for fine-tuning |
| 📢 **[Banners](./banners)** | Customizable system-wide announcements with dismissible notifications |
| 🎚️ **[Default Interface Settings](./interface-defaults)** | Instance-wide starting values for the options on everyone's Settings > Interface page |
| 🔔 **[Webhooks](./webhooks)** | Automated notifications for user sign-ups, chat completions, and external service integration |

---

![Admin settings, General](/images/admin/admin-general.png)

## Task Models

Chat titles, tags, follow-up suggestions, autocomplete, search query rewriting and context compaction summaries all run as separate model calls in the background. Out of the box they run on whatever model the user is chatting with, which is why a flagship model can quietly write a lot of three-word titles.

**Use it for:** moving that work onto a small, fast model, capping what those requests are allowed to spend, and switching off the ones your instance does not want.

[**Learn about Task Models →**](./task-models)

---

## Analytics

Get a bird's-eye view of how your instance is being used. The analytics dashboard shows message volume, token consumption, model popularity, and user activity, filterable by time period and user group.
Expand Down Expand Up @@ -73,6 +85,16 @@ Push high-visibility messages to every logged-in user. Use banners for maintenan

---

## Default Interface Settings

Choose what everyone's **Settings > Interface** page starts on, instead of leaving each account on the stock values. Set it in the Admin Panel or with the `DEFAULT_INTERFACE_SETTINGS` environment variable for GitOps workflows.

**Use it for:** giving a team a consistent look on day one, turning a distracting option off by default, or pushing a house style that people can still adjust for themselves. Untouched options keep following your defaults, so a later change reaches everyone who has not overridden it.

[**Learn about Default Interface Settings →**](./interface-defaults)

---

## Webhooks

Three types of webhook integrations keep your external services in sync:
Expand Down
Loading