Skip to content

feat: add UberLLM provider - #18

Open
PSA-Team-source wants to merge 1 commit into
Jeomon:mainfrom
PSA-Team-source:add-uberllm-provider
Open

PSA-Team-source wants to merge 1 commit into
Jeomon:mainfrom
PSA-Team-source:add-uberllm-provider

Conversation

@PSA-Team-source

Copy link
Copy Markdown

Adds UberLLM as an LLM provider, following the same pattern as #14 (and #8).
UberLLM is an OpenAI-compatible gateway. For Windows-Use the useful part is that one key covers the vision models that read the screenshots (GPT-5.4, Claude Sonnet 5, Gemini 3.5 Flash, Qwen3 VL), all with tool calling, so you can switch the agent between them from the CLI model picker.

ChatUberLLM extends ChatOpenAI and only sets the base URL, the API key env var and the provider name.

Mirrors #14.

Changes
  • windows_use/providers/uberllm/ — new ChatUberLLM class.
    • Base URL: https://api.uberllm.dev/v1.
    • Key: UBERLLM_API_KEY. Optional base URL override: UBERLLM_API_BASE.
    • Default model: openai/gpt-5.4-mini.
  • windows_use/providers/__init__.py — export ChatUberLLM.
  • windows_use/cli/registry.py — provider, models (all image-input + tools), API key flag and display name.
  • windows_use/cli/setup.py — create_llm branch and env var map entry.
  • README.md — provider table row and a short usage example.
  • tests/unit/providers/test_uberllm.py — client defaults and CLI registry entries.
Testing
  • pytest tests/unit/providers tests/unit/test_openai_events.py tests/unit/test_llm_events.py — 15 passed.
  • ruff check and ruff format --check on the changed files — pass.
  • Live: create_llm("uberllm", ...) returns ChatUberLLM pointed at https://api.uberllm.dev/v1; invoke() with a HumanMessage and with an ImageMessage (64x64 red PNG) both returned HTTP 200.
  • I ran this on macOS, so the Windows-only modules (comtypes, windows_use.uia, windows_use.vdm) were stubbed for the imports. The full suite was not run.

Tested with openai/gpt-5.4-mini: invoke() answered "OK" to the text prompt and "red" for the screenshot-style ImageMessage.

Per-model prices (usually below list price): https://uberllm.dev/models

I work on UberLLM.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant