CLI tool for managing Open WebUI instances.
Very much a work in progress, and everyone is welcome to contribute.
Idea around this module is to use the existing API to simplify common tasks, checks etc. So you need to able to use the API and have an API key.
Focus on this tool is verification.
| Command | Description |
|---|---|
models list |
List all available models (standard + custom) |
models list -v |
List models with provider/connection info |
models custom list |
List custom/preset models with base_model_id |
models custom list --name <model> |
Show full JSON for a specific custom model |
models check --name <model> |
Check if model is valid |
models check --name <model> -v |
Check with provider/URL info |
models verify --name <model> |
Verify single model works |
models verify --all |
Verify all models |
models verify --all -v |
Verify all with provider/URL info |
models verify --debug |
Verify with debug output |
models custom verify --all |
Verify all custom models |
models custom verify --name <model> |
Verify a specific custom model |
models custom verify -v |
Verify custom with provider info |
models custom verify --debug |
Verify custom with debug output |
models config |
Get models configuration |
connections verify |
Verify external connections |
config get --name openai|ollama |
Get OpenAI or Ollama configuration |
config get --json |
Output config as JSON |
config export |
Export all configuration |
users get --all |
List all users |
users get --all --json |
List all users in JSON format |
users get --include-email <regex> |
Include users matching email pattern |
users get --exclude-email <regex> |
Exclude users matching email pattern |
knowledge list |
List all knowledge bases |
knowledge show <id> |
Show knowledge base details |
knowledge files <id> |
List files in a knowledge base |
knowledge create --name <name> |
Create a new knowledge base |
knowledge delete <id> |
Delete a knowledge base |
knowledge add-file <id> <file-id> |
Add file to knowledge base |
knowledge remove-file <id> <file-id> |
Remove file from knowledge base |
knowledge add-folder <id> <folder> |
Upload all files from folder to knowledge base |
files list |
List all files |
files show <id> |
Show file details |
files upload <path> |
Upload a file |
files delete <id> |
Delete a file |
images list |
List image models |
audio models |
List audio models |
audio voices |
List available voices |
banners get |
Get banners |
banners set --type <type> --content <text> |
Set a banner |
banners set --dismissible |
Set a dismissible banner |
banners clear |
Clear all banners |
pip install open-webui-adminOr install from source:
poetry install
poetry build
pip install dist/open_webui_admin-*.whlSet environment variables:
OPENWEBUI_URL- Base URL of Open WebUI instance (e.g.,https://open-webui.example.com)OPENWEBUI_TOKEN- Authentication token (from Account settings)
List all available models (standard + custom):
open-webui-admin models listList with verbose output (shows provider and connection info):
open-webui-admin models list -v
# Output: model_id | provider | connection_type | urlIdx | url
# Example: gpt-5 | openai | external | 1 | https://api.openai.com/v1List custom/preset models only:
open-webui-admin models custom list
# Output: model_id (base: base_model_id)
# Example: dada (base: gpt-4o)Show full details for a specific custom model:
open-webui-admin models custom list --name dada
# Output: Full JSON for the modelCheck if a model is valid:
open-webui-admin models check --name gpt-4oCheck with provider/URL info:
open-webui-admin models check --name gpt-4o -vGet models configuration:
open-webui-admin models config
# Output: Full JSON models configurationVerify a single model works:
open-webui-admin models verify --name gpt-4o
# Output: Model 'gpt-4o' is working
# Model 'anthropic.claude-opus-4-6' is NOT working: authentication_errorVerify with debug output (shows full API response):
open-webui-admin models verify --name gpt-4o --debugVerify all available models:
open-webui-admin models verify --all
# Output:
# Verifying 134 models...
# [OK] gpt-5
# [FAIL] anthropic.claude-opus-4-6 | authentication_error
# ...
# 58 models verifiedVerify all with provider/URL info:
open-webui-admin models verify --all -v
# Output:
# [OK] gpt-5 | https://api.openai.com/v1
# [FAIL] anthropic.claude-opus-4-6 | https://api.anthropic.com/v1 | authentication_errorVerify all custom models:
open-webui-admin models custom verify --all
# Output:
# Verifying 10 custom models...
# [OK] dada
# [FAIL] test-model | error_message
# ...
# 10 custom models verifiedVerify custom with provider info:
open-webui-admin models custom verify --all -vVerify custom with debug output:
open-webui-admin models custom verify --name dada --debugVerify a specific custom model:
open-webui-admin models custom verify --name dada
# Output: Model 'dada' is workingVerify external connections (OpenAI, Ollama):
open-webui-admin connections verifyGet OpenAI configuration:
open-webui-admin config get --name openaiGet OpenAI configuration as JSON:
open-webui-admin config get --name openai --jsonGet Ollama configuration:
open-webui-admin config get --name ollamaGet Ollama configuration as JSON:
open-webui-admin config get --name ollama --jsonExport all configuration:
open-webui-admin config export
# Output: Full JSON configurationGet all users:
open-webui-admin users get --all
# Output: user_id | name | email | roleGet all users in JSON format:
open-webui-admin users get --all --jsonInclude users matching email pattern (can be used multiple times):
open-webui-admin users get --all --include-email "@example.com"
open-webui-admin users get --all --include-email "@admin.com" --include-email "@test.com"Exclude users matching email pattern (can be used multiple times):
open-webui-admin users get --all --exclude-email "@spam.com"List available image models:
open-webui-admin images listList all knowledge bases:
open-webui-admin knowledge listShow knowledge base details:
open-webui-admin knowledge show <id>List files in a knowledge base:
open-webui-admin knowledge files <id>Create a new knowledge base:
open-webui-admin knowledge create --name "My KB" --description "Optional desc"Delete a knowledge base:
open-webui-admin knowledge delete <id>Add a file to a knowledge base:
open-webui-admin knowledge add-file <id> <file-id>Remove a file from a knowledge base (destroys the file):
open-webui-admin knowledge remove-file <id> <file-id>Add all files from a local folder to a knowledge base (uploads + adds):
open-webui-admin knowledge add-folder <id> /path/to/folder
# With pattern matching (only PDFs)
open-webui-admin knowledge add-folder <id> /path/to/folder --pattern "*.pdf"
# Recursively upload from subfolders
open-webui-admin knowledge add-folder <id> /path/to/folder --recursiveList all files:
open-webui-admin files listShow file details:
open-webui-admin files show <id>Upload a file:
open-webui-admin files upload /path/to/file.pdfDelete a file:
open-webui-admin files delete <id>List available audio models:
open-webui-admin audio modelsList available voices:
open-webui-admin audio voicesGet current banners:
open-webui-admin banners getSet a banner (required: --type, --content):
open-webui-admin banners set --type Warning --title "System Update" --content "Maintenance scheduled"Set a non-dismissible banner:
open-webui-admin banners set --type Warning --title "Alert" --content "Critical update" --dismissibleClear all banners:
open-webui-admin banners clearOptions for --type: Info, Warning, Error, Success
Options for --dismissible: Flag (default: True)
model_id | provider | connection_type | urlIdx | url
provider: Inferred from model name or URL (e.g.,openai,anthropic,pipeline,ollama)connection_type:externalor localurlIdx: Index into configured API endpoints (see/openai/config)url: The actual API endpoint URL
[OK] model_name
[FAIL] model_name | error_message
[ERROR] model_name | status_code
model_id (base: base_model_id)
model_id (no base model)
user_id | name | email | role
authentication_error- Invalid API keynot_found- Model not found (404)not_chat_model- Model doesn't support chat completions endpointserver_error- Upstream provider error (500)timeout- Request timed out
Install for development:
poetry installRun tests:
poetry run pytestRun tests with coverage:
poetry run pytest --cov=open_webui_admin --cov-report=term-missingRun CLI directly:
poetry run open-webui-admin --helpBuild package:
poetry build