OpenWebUi CLI
Find a file
Danny Stocker 80510a7082 Fix code review issues: P0 bugs, style, and features
**P0 BUGS FIXED:**
-  chat_id now sent to API (critical bug - conversations couldn't continue)
-  OPENWEBUI_TOKEN env var honored (enables CI/headless workflows)
-  CLIError exit codes properly applied (correct status codes 0-5)

**DUPLICATE FUNCTION FIXED:**
-  Renamed duplicate delete() functions in rag.py to delete_file() and delete_collection()

**RUFF STYLE FIXES (25 → 0 issues):**
-  Removed unused imports (Live, Text from chat.py)
-  Fixed import sorting across all modules
-  Fixed all line-too-long errors (broke long strings, extracted variables)
-  All ruff checks now passing

**FUNCTIONAL IMPROVEMENTS:**
-  --format flag now respected in streaming mode (was only non-streaming)
-  Model parameter now optional, falls back to config.defaults.model
-  Better error message when no model specified

**PYDANTIC V2 COMPATIBILITY:**
-  Fixed ConfigDict → SettingsConfigDict for BaseSettings
-  Added types-PyYAML to dev dependencies for mypy

**ENTRY POINT UPDATE:**
-  Changed entry point from main:app to main:cli for proper error handling

**CODE QUALITY:**
- All 14 tests still passing
- All ruff style checks passing
- Mypy type coverage improved (some minor issues remain)

**IMPACT:**
- Fixes 3 critical bugs blocking production use
- Eliminates all style warnings (25 ruff issues → 0)
- Adds missing functionality (format flag, default model)
- Improves CI/automation workflows (env token support)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-30 20:51:50 +01:00
docs Initial CLI scaffolding with v1.0 MVP structure 2025-11-30 20:09:19 +01:00
openwebui_cli Fix code review issues: P0 bugs, style, and features 2025-11-30 20:51:50 +01:00
tests Improve CLI streaming, error handling, and add comprehensive tests 2025-11-30 20:28:21 +01:00
.gitignore Initial CLI scaffolding with v1.0 MVP structure 2025-11-30 20:09:19 +01:00
LICENSE Initial CLI scaffolding with v1.0 MVP structure 2025-11-30 20:09:19 +01:00
pyproject.toml Fix code review issues: P0 bugs, style, and features 2025-11-30 20:51:50 +01:00
README.md Initial CLI scaffolding with v1.0 MVP structure 2025-11-30 20:09:19 +01:00

OpenWebUI CLI

Official command-line interface for OpenWebUI.

Status: Alpha - v0.1.0 MVP in development

Features

  • Authentication - Login, logout, token management with secure keyring storage
  • Chat - Send messages with streaming support, continue conversations
  • RAG - Upload files, manage collections, vector search
  • Models - List and inspect available models
  • Admin - Server stats and diagnostics (admin role required)
  • Profiles - Multiple server configurations

Installation

pip install openwebui-cli

Or from source:

git clone https://github.com/dannystocker/openwebui-cli.git
cd openwebui-cli
pip install -e .

Quick Start

# Initialize configuration
openwebui config init

# Login to your OpenWebUI instance
openwebui auth login

# Chat with a model
openwebui chat send -m llama3.2:latest -p "Hello, world!"

# Upload a file for RAG
openwebui rag files upload ./document.pdf

# List available models
openwebui models list

Usage

Authentication

# Interactive login
openwebui auth login

# Show current user
openwebui auth whoami

# Logout
openwebui auth logout

Chat

# Simple chat (streaming by default)
openwebui chat send -m llama3.2:latest -p "Explain quantum computing"

# Non-streaming mode
openwebui chat send -m llama3.2:latest -p "Hello" --no-stream

# With RAG context
openwebui chat send -m llama3.2:latest -p "Summarize this document" --file <FILE_ID>

# Continue a conversation
openwebui chat send -m llama3.2:latest -p "Tell me more" --chat-id <CHAT_ID>

RAG (Retrieval-Augmented Generation)

# Upload files
openwebui rag files upload ./docs/*.pdf

# Create a collection
openwebui rag collections create "Project Docs"

# Search within a collection
openwebui rag search "authentication flow" --collection <COLL_ID>

Models

# List all models
openwebui models list

# Get model details
openwebui models info llama3.2:latest

Configuration

# Initialize config
openwebui config init

# Show current config
openwebui config show

# Use a specific profile
openwebui --profile production chat send -m gpt-4 -p "Hello"

Configuration File

Location: ~/.config/openwebui/config.yaml (Linux/macOS) or %APPDATA%\openwebui\config.yaml (Windows)

version: 1
default_profile: local

profiles:
  local:
    uri: http://localhost:8080
  production:
    uri: https://openwebui.example.com

defaults:
  model: llama3.2:latest
  format: text
  stream: true

Exit Codes

Code Meaning
0 Success
1 General error
2 Usage/argument error
3 Authentication error
4 Network error
5 Server error (5xx)

Development

# Install dev dependencies
pip install -e ".[dev]"

# Run tests
pytest

# Type checking
mypy openwebui_cli

# Linting
ruff check openwebui_cli

Contributing

Contributions welcome! Please read the RFC proposal for design details.

License

MIT License - see LICENSE for details.

Acknowledgments