Repository navigation
Add uberllm 0.0.1 - #3569
Merged
Merged
Add uberllm 0.0.1#3569
Conversation
crazywoola
approved these changes
Oct 31, 2026
crazywoola
left a comment
Member
There was a problem hiding this comment.
Pre Check Plugin and PR Risk Label passed for this revision. Inspected the submitted package, documentation and relevant source: this is a non-draft plugin submission with no Web3 functionality identified. This is an eligibility review, not a comprehensive security audit.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plugin Submission
Plugin information
Submission type
What changed
New model provider for UberLLM (https://uberllm.dev), an OpenAI-compatible API that serves hundreds of chat models (OpenAI, Anthropic, Google, DeepSeek, Qwen, Kimi, GLM, Grok and others) with one API key, billed at what the underlying provider charged.
The plugin adds:
GET /v1/models/<id>).GET /v1/balance) and adding a custom model looks up the model (GET /v1/models/<id>), so no tokens are spent on validation and accounts with a $0 balance can still connect.Why it is needed: UberLLM is not available in Dify today. Its catalog and routing (several providers per model, automatic retries before the first byte, prices at or below list) differ from the existing aggregator plugins, so UberLLM users cannot use their key in Dify without it.
Risk level
Required checks
.envfiles,.gitdirectories, virtual environments, caches, logs, or IDE files.PRIVACY.mdor a hosted privacy policy, andmanifest.yamlreferences it.Security and privacy notes
api.uberllm.dev(declared inmanifest.yamlundernetwork.domains). The tworequests.getcalls flagged by the scanner are the free credential checks (GET https://api.uberllm.dev/v1/balanceandGET https://api.uberllm.dev/v1/models/<model name>); chat calls go through the SDK'sOAICompatLargeLanguageModeltohttps://api.uberllm.dev/v1/chat/completions. No user-controlled URLs or hosts.uberllm.dev(noapi.) appears only as help links inside error messages; the plugin never connects to it.MAX_REQUEST_TIMEOUT300 s read).secret-inputfield, sent only as a Bearer header toapi.uberllm.dev. Error messages are rewritten to fixed plain-language text or UberLLM's own error message and never include the key.PRIVACY.md(in the package).Local validation
Reviewer notes
access_domainslistsuberllm.devas undeclared because help links likehttps://uberllm.dev/dashboard/keysappear in error messages; it is never requested.python_safetyflagsreturn super()...(model, credentials)calls, which pass credentials to the SDK base class and do not return them.prohibited_financial_activitymatches the words "billed" and "charged" in the README, which describe API usage costs; the plugin makes no payments.PluginRegistration, the same loader the runtime uses) and the Marketplace toolkit's install test, against the live UberLLM API.