Open WebUI admin CLI tool
Project description
Open WebUI Admin
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, if you want to work with the models etc. I recommend to use another tool, like owui-cli.
Commands Overview
| 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 |
tika test |
Test Tika file processing integration |
tika test --path <file> |
Test with a specific file |
tika test --json |
Output test results as JSON |
Installation
pip install open-webui-admin
Or install from source:
poetry install
poetry build
pip install dist/open_webui_admin-*.whl
Configuration
Set environment variables:
OPENWEBUI_URL- Base URL of Open WebUI instance (e.g.,https://open-webui.example.com)OPENWEBUI_TOKEN- Authentication token (from Account settings)
Commands
models
List all available models (standard + custom):
open-webui-admin models list
List 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/v1
List 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 model
Check if a model is valid:
open-webui-admin models check --name gpt-4o
Check with provider/URL info:
open-webui-admin models check --name gpt-4o -v
Get models configuration:
open-webui-admin models config
# Output: Full JSON models configuration
Verify 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_error
Verify with debug output (shows full API response):
open-webui-admin models verify --name gpt-4o --debug
Verify 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 verified
Verify 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_error
Verify 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 verified
Verify custom with provider info:
open-webui-admin models custom verify --all -v
Verify custom with debug output:
open-webui-admin models custom verify --name dada --debug
Verify a specific custom model:
open-webui-admin models custom verify --name dada
# Output: Model 'dada' is working
connections
Verify external connections (OpenAI, Ollama):
open-webui-admin connections verify
config
Get OpenAI configuration:
open-webui-admin config get --name openai
Get OpenAI configuration as JSON:
open-webui-admin config get --name openai --json
Get Ollama configuration:
open-webui-admin config get --name ollama
Get Ollama configuration as JSON:
open-webui-admin config get --name ollama --json
Export all configuration:
open-webui-admin config export
# Output: Full JSON configuration
users
Get all users:
open-webui-admin users get --all
# Output: user_id | name | email | role
Get all users in JSON format:
open-webui-admin users get --all --json
Include 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"
images
List available image models:
open-webui-admin images list
knowledge
List all knowledge bases:
open-webui-admin knowledge list
Show 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 --recursive
files
List all files:
open-webui-admin files list
Show file details:
open-webui-admin files show <id>
Upload a file:
open-webui-admin files upload /path/to/file.pdf
Delete a file:
open-webui-admin files delete <id>
audio
List available audio models:
open-webui-admin audio models
List available voices:
open-webui-admin audio voices
banners
Get current banners:
open-webui-admin banners get
Set 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" --dismissible
Clear all banners:
open-webui-admin banners clear
Options for --type: Info, Warning, Error, Success
Options for --dismissible: Flag (default: True)
tika
Test Tika file processing integration by uploading a PDF and verifying the content extraction pipeline works end-to-end. If no file is specified, it looks for test-artifacts/tika-test.pdf:
open-webui-admin tika test
# Output:
# [1/4] Uploaded 'tika-test.pdf' -> id: abc123
# [2/4] Processing complete (attempt 1)
# [3/4] Retrieved content: 4253 chars
# === Tika test: PASSED ===
# File ID: abc123
# [OK] upload
# [OK] processing
# [OK] content
# [OK] verification
Test with a specific file:
open-webui-admin tika test --path /path/to/test.pdf
Output test results as JSON for scripting:
open-webui-admin tika test --json
# Output:
# {
# "result": "success",
# "file_id": "abc123",
# "steps": { ... }
# }
The test performs 4 steps:
- Upload - Uploads the file with processing enabled via
/api/v1/files/ - Process - Polls
/api/v1/files/{id}/process/status(up to 10 attempts) waiting for completion - Retrieve - Fetches extracted content from
/api/v1/files/{id}/data/content - Verify - Confirms extracted content is meaningful (>10 chars)
Output Formats
models list -v
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
models verify --all -v
[OK] model_name
[FAIL] model_name | error_message
[ERROR] model_name | status_code
models custom list
model_id (base: base_model_id)
model_id (no base model)
users get --all
user_id | name | email | role
Error Messages
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
Development
Install for development:
poetry install
Run tests:
poetry run pytest
Run tests with coverage:
poetry run pytest --cov=open_webui_admin --cov-report=term-missing
Run CLI directly:
poetry run open-webui-admin --help
Build package:
poetry build
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file open_webui_admin-0.1.1.tar.gz.
File metadata
- Download URL: open_webui_admin-0.1.1.tar.gz
- Upload date:
- Size: 17.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.13.4 Darwin/25.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
420e24d239c71afcec7b3dd5f17b2add5f9f0e873153b469cae94d3805911b06
|
|
| MD5 |
d3c61dd5a02b995cc27749eabbc16374
|
|
| BLAKE2b-256 |
8f52c3e507d77a98be1f0b83b11c6f7b90ecaa4d6ab5031badf308b46d197b52
|
File details
Details for the file open_webui_admin-0.1.1-py3-none-any.whl.
File metadata
- Download URL: open_webui_admin-0.1.1-py3-none-any.whl
- Upload date:
- Size: 21.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/2.3.4 CPython/3.13.4 Darwin/25.5.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e11cf852514874fb4971c013331af7c766807a979bb58c5eb7c352d298ee5ef8
|
|
| MD5 |
f8c23dd2fcbdbfb59abb3799512328fc
|
|
| BLAKE2b-256 |
2a3c18a9cc373b5c63543e15d84103060b0fde772d716b1de28a23be288c2af1
|