Add OrcaRouter plugin#2413
Merged
crazywoola merged 4 commits intoMay 19, 2026
Merged
Conversation
OrcaRouter is an OpenAI-compatible LLM gateway routing across 40+ upstream providers with adaptive routing, fallback chains, and below-list-price billing. Exposes 120 models for Dify across LLM (108) / Embedding (5) / TTS (7). Source: https://github.com/zhenjunchen-png/dify-plugin-orcarouter Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This was referenced May 15, 2026
- README points to Continuum-AI-Corp/dify-plugin-orcarouter (post-transfer) - Exclude .git/ from package (previous build was 2x larger due to bundled .git) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…est author - Path: orcarouter/orcarouter/ → continuum-ai-corp/orcarouter/ - manifest.yaml author updated from "orcarouter" to "continuum-ai-corp" to match the GitHub org that owns the source repository (https://github.com/Continuum-AI-Corp/dify-plugin-orcarouter) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
crazywoola
requested changes
May 18, 2026
Member
crazywoola
left a comment
There was a problem hiding this comment.
❌ Request Changes
Decision: Request changes
Failed Checks
| Check | Status | Detail | Required action |
|---|---|---|---|
Project structure |
❌ Fail | Missing files: PRIVACY.md. Present: manifest.yaml, README.md. _assets/: yes. | Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/. |
PRIVACY.md |
❌ Fail | PRIVACY.md not found in plugin package. A privacy policy file is required for marketplace submission. | Add a non-empty PRIVACY.md file to the plugin package. |
dify_plugin version |
❌ Fail | dify_plugin must be installed and >= 0.5.0, but it was not found. | Use dify_plugin >= 0.5.0 in the packaged plugin environment. |
Full Check Results
| Check | Status | Detail | Required action |
|---|---|---|---|
PR content language |
✅ Pass | PR title/body CJK ratio=0.0% (zh=0, en=2399, ignored_zh=0, allowed_zh<=0) | None. |
Project structure |
❌ Fail | Missing files: PRIVACY.md. Present: manifest.yaml, README.md. _assets/: yes. | Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/. |
Manifest author |
✅ Pass | author is valid. | None. |
Icon validation |
✅ Pass | icon exists: _assets/orcarouter_square.svg | None. |
Version check |
✅ Pass | version 0.0.1 is available. | None. |
README language |
✅ Pass | README.md CJK ratio=0.0% (zh=0, en=3438, allowed_zh<=0) | None. |
PRIVACY.md |
❌ Fail | PRIVACY.md not found in plugin package. A privacy policy file is required for marketplace submission. | Add a non-empty PRIVACY.md file to the plugin package. |
Dependency install |
✅ Pass | requirements.txt not found; skipped. | None. |
dify_plugin version |
❌ Fail | dify_plugin must be installed and >= 0.5.0, but it was not found. | Use dify_plugin >= 0.5.0 in the packaged plugin environment. |
Install test |
✅ Pass | requirements.txt not found; skipped. | None. |
Packaging test |
✅ Pass | packaging check passed. | None. |
Next steps
- Project structure: Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/.
- PRIVACY.md: Add a non-empty PRIVACY.md file to the plugin package.
- dify_plugin version: Use dify_plugin >= 0.5.0 in the packaged plugin environment.
Please address these issues and push an update.
crazywoola
requested changes
May 19, 2026
Member
crazywoola
left a comment
There was a problem hiding this comment.
❌ Request Changes
Decision: Request changes
Failed Checks
| Check | Status | Detail | Required action |
|---|---|---|---|
Project structure |
❌ Fail | Missing files: PRIVACY.md. Present: manifest.yaml, README.md. _assets/: yes. | Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/. |
PRIVACY.md |
❌ Fail | PRIVACY.md not found in plugin package. A privacy policy file is required for marketplace submission. | Add a non-empty PRIVACY.md file to the plugin package. |
dify_plugin version |
❌ Fail | dify_plugin must be installed and >= 0.5.0, but it was not found. | Use dify_plugin >= 0.5.0 in the packaged plugin environment. |
Full Check Results
| Check | Status | Detail | Required action |
|---|---|---|---|
PR content language |
✅ Pass | PR title/body CJK ratio=0.0% (zh=0, en=2399, ignored_zh=0, allowed_zh<=0) | None. |
Project structure |
❌ Fail | Missing files: PRIVACY.md. Present: manifest.yaml, README.md. _assets/: yes. | Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/. |
Manifest author |
✅ Pass | author is valid. | None. |
Icon validation |
✅ Pass | icon exists: _assets/orcarouter_square.svg | None. |
Version check |
✅ Pass | version 0.0.1 is available. | None. |
README language |
✅ Pass | README.md CJK ratio=0.0% (zh=0, en=3438, allowed_zh<=0) | None. |
PRIVACY.md |
❌ Fail | PRIVACY.md not found in plugin package. A privacy policy file is required for marketplace submission. | Add a non-empty PRIVACY.md file to the plugin package. |
Dependency install |
✅ Pass | requirements.txt not found; skipped. | None. |
dify_plugin version |
❌ Fail | dify_plugin must be installed and >= 0.5.0, but it was not found. | Use dify_plugin >= 0.5.0 in the packaged plugin environment. |
Install test |
✅ Pass | requirements.txt not found; skipped. | None. |
Packaging test |
✅ Pass | packaging check passed. | None. |
Next steps
- Project structure: Include all required files in the package: manifest.yaml, README.md, PRIVACY.md, and _assets/.
- PRIVACY.md: Add a non-empty PRIVACY.md file to the plugin package.
- dify_plugin version: Use dify_plugin >= 0.5.0 in the packaged plugin environment.
Please address these issues and push an update.
Adds PRIVACY.md (required for marketplace submission) and requirements.txt (enables CI's dify_plugin version verification) to the plugin package. Resolves the 3 CI check failures from PR langgenius#2413 review: - Project structure: missing PRIVACY.md - PRIVACY.md not found in plugin package - dify_plugin version not found (CI couldn't pip install without requirements.txt) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
crazywoola
approved these changes
May 19, 2026
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 Form
1. Metadata
2. Submission Type
3. Description
OrcaRouter is an OpenAI-compatible LLM gateway routing requests across 40+ upstream providers (OpenAI, Anthropic, Google, DeepSeek, Qwen, Grok, Kimi, MiniMax, z.ai, etc.) with adaptive routing, fallback chains, and below-list-price billing.
This plugin exposes 120 models across three Dify model types:
orcarouter/auto(configurable strategies: cheapest / balanced / quality / adaptive LinUCB / gated_adaptive)tts-1/tts-1-hd/gpt-4o-mini-ttsvariantsKey features:
reasoning_effort(flat) for gpt-5 / o-series, Anthropicthinkingblock for Claude 4.x, DeepSeek auto-reasoning for r1 / reasonerextra_bodyrouting exposure: per-request fallback model list viaorcarouter_fallback_models+orcarouter_routeparameterscustomizable-modelmode enabled — users can add any model not in the predefined list without waiting for a plugin updateTested locally on Dify 1.14.1: 505 offline pytest pass, 108 LLM + 5 embedding + 7 TTS live API tests pass, 7 functional scenarios verified through Dify UI.
Previously submitted to
langgenius/dify-official-pluginsas PR #3103 (Issue #3102); migrated here per maintainer's guidance.4. Checklist
5. Documentation Checklist
6. Privacy Protection Information
Data Collection
This plugin does not collect any user personal data on its own. It is a thin client for the OrcaRouter API that transmits only:
Authorization: Bearerheader to OrcaRouter)OrcaRouter's own data handling (request logging, billing data retention) is governed by the OrcaRouter privacy policy: https://www.orcarouter.ai/privacy.html
Privacy Policy
The plugin's
README.mdincludes a "Privacy" section linking to https://www.orcarouter.ai/privacy.htmlDisclosure
I'm an engineer on the OrcaRouter team.