Skip to content

feat(providers): add 7 free-tier providers (Wave 1)#2479

Merged
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.2from
oyi77:feat/free-providers-wave1
May 21, 2026
Merged

feat(providers): add 7 free-tier providers (Wave 1)#2479
diegosouzapw merged 1 commit into
diegosouzapw:release/v3.8.2from
oyi77:feat/free-providers-wave1

Conversation

@oyi77
Copy link
Copy Markdown
Contributor

@oyi77 oyi77 commented May 21, 2026

Summary

  • Added 7 new free-tier providers — no credit card required, no API key registration needed for free models
  • All providers are OpenAI-compatible (passthroughModels: true) with hasFree: true + descriptive freeNote
  • SVG icons created for all 7 providers
  • Lobe icon aliases added for Arcee AI and Liquid AI

New Providers

Provider ID Free Models Context Category
Poolside poolside Laguna XS.2, Laguna M.1 131K Code generation, tool calling
Arcee AI arcee-ai Trinity Large Thinking 262K Reasoning, agentic workloads
InclusionAI inclusionai Ling-2.6-flash (1T-param MoE) 262K Agent-focused, open-source
Liquid AI liquid LFM2.5-1.2B-Thinking/Instruct 32K MIT spinoff, hybrid architecture
Nomic nomic Nomic Embed N/A Open-source embeddings
Krutrim krutrim Krutrim models N/A India's first AI (Ola)
MonsterAPI monsterapi Free credits N/A Decentralized GPU inference

Files Modified

  • src/shared/constants/providers.ts — 7 provider definitions in APIKEY_PROVIDERS
  • src/shared/components/lobeProviderIcons.ts — Arcee + Liquid lobe icon aliases
  • src/shared/components/ProviderIcon.tsx — KNOWN_SVGS updated
  • public/providers/*.svg — 7 new SVG icons

Test plan

  • npm run lint — 0 errors (2073 warnings, all pre-existing)
  • npm run typecheck:core — clean
  • npm run build — production build succeeds
  • Security tests pass (23/23)
  • Plan3 tests pass (37/37)
  • All 7 SVG icons created and verified
  • Lobe icon aliases added for Arcee and Liquid

Related Issues

Closes #2478

Context

This is Wave 1 of a provider expansion effort. Research from LiteLLM, OpenRouter, Portkey, one-api, new-api, and Higress identified ~50 providers OmniRoute is missing. Free-tier providers are highest priority for OmniRoute's value proposition.

Wave 2 (major companies), Wave 3 (content/video), and Wave 4 (niche) will follow in separate PRs.

@oyi77 oyi77 requested a review from diegosouzapw as a code owner May 21, 2026 11:49
Comment thread public/providers/arcee-ai.svg Outdated
<circle cx="16" cy="16" r="14" fill="#8B5CF6" opacity="0.15"/>
<circle cx="16" cy="16" r="14" fill="none" stroke="#8B5CF6" stroke-width="2"/>
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#8B5CF6">AR</text>
</svg> No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Missing trailing newline at end of file

Add a newline character at the end of the file to conform with standard file conventions and prevent potential issues with diff tools or formatters.

Comment thread public/providers/inclusionai.svg Outdated
<circle cx="16" cy="16" r="14" fill="#10B981" opacity="0.15"/>
<circle cx="16" cy="16" r="14" fill="none" stroke="#10B981" stroke-width="2"/>
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#10B981">IA</text>
</svg> No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Missing trailing newline at end of file

Add a newline character at the end of the file to conform with standard file conventions and prevent potential issues with diff tools or formatters.

Comment thread public/providers/krutrim.svg Outdated
<circle cx="16" cy="16" r="14" fill="#F59E0B" opacity="0.15"/>
<circle cx="16" cy="16" r="14" fill="none" stroke="#F59E0B" stroke-width="2"/>
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#F59E0B">KR</text>
</svg> No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Missing trailing newline at end of file

Add a newline character at the end of the file to conform with standard file conventions and prevent potential issues with diff tools or formatters.

Comment thread public/providers/liquid.svg Outdated
<circle cx="16" cy="16" r="14" fill="#06B6D4" opacity="0.15"/>
<circle cx="16" cy="16" r="14" fill="none" stroke="#06B6D4" stroke-width="2"/>
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#06B6D4">LQ</text>
</svg> No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Missing trailing newline at end of file

Add a newline character at the end of the file to conform with standard file conventions and prevent potential issues with diff tools or formatters.

Comment thread public/providers/monsterapi.svg Outdated
<circle cx="16" cy="16" r="14" fill="#EF4444" opacity="0.15"/>
<circle cx="16" cy="16" r="14" fill="none" stroke="#EF4444" stroke-width="2"/>
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#EF4444">MA</text>
</svg> No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Missing trailing newline at end of file

Add a newline character at the end of the file to conform with standard file conventions and prevent potential issues with diff tools or formatters.

Comment thread public/providers/nomic.svg Outdated
<circle cx="16" cy="16" r="14" fill="#7C3AED" opacity="0.15"/>
<circle cx="16" cy="16" r="14" fill="none" stroke="#7C3AED" stroke-width="2"/>
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#7C3AED">NM</text>
</svg> No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Missing trailing newline at end of file

Add a newline character at the end of the file to conform with standard file conventions and prevent potential issues with diff tools or formatters.

Comment thread public/providers/poolside.svg Outdated
<circle cx="16" cy="16" r="14" fill="#3B82F6" opacity="0.15"/>
<circle cx="16" cy="16" r="14" fill="none" stroke="#3B82F6" stroke-width="2"/>
<text x="16" y="16" text-anchor="middle" dominant-baseline="central" font-family="system-ui,-apple-system,sans-serif" font-size="11" font-weight="600" fill="#3B82F6">PS</text>
</svg> No newline at end of file
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Missing trailing newline at end of file

Add a newline character at the end of the file to conform with standard file conventions and prevent potential issues with diff tools or formatters.

import KimiColorIcon from "@lobehub/icons/es/Kimi/components/Color";
import KimiMonoIcon from "@lobehub/icons/es/Kimi/components/Mono";
import LambdaMonoIcon from "@lobehub/icons/es/Lambda/components/Mono";
import ArceeColorIcon from "@lobehub/icons/es/Arcee/components/Color";
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: Import ordering is inconsistent

The Arcee imports are placed after Lambda (line 76), but alphabetically "Arcee" should appear much earlier in the import section (before IBM at line 70). The file appears to follow alphabetical ordering by component name throughout. Consider moving these imports to their correct alphabetical position to maintain consistency.

@kilo-code-bot
Copy link
Copy Markdown

kilo-code-bot Bot commented May 21, 2026

Code Review Summary

Status: 8 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 0
WARNING 0
SUGGESTION 8

Notes

The PR was force-pushed since the previous review (commit a2acd523a277eb). The diff is now reduced to 243 lines covering only the original provider additions. This review re-evaluates the current diff.

  • Resolved: lobeProviderIcons.ts import ordering — fixed in the force-push (Arcee now correctly placed after Antigravity)
  • Carried forward: 7 SVG files still missing trailing newlines
  • New: ProviderIcon.tsx KNOWN_SVGS entries not in alphabetical order
Issue Details (click to expand)

SUGGESTION

File Line Issue
public/providers/arcee-ai.svg N/A Missing trailing newline at end of file
public/providers/inclusionai.svg N/A Missing trailing newline at end of file
public/providers/krutrim.svg N/A Missing trailing newline at end of file
public/providers/liquid.svg N/A Missing trailing newline at end of file
public/providers/monsterapi.svg N/A Missing trailing newline at end of file
public/providers/nomic.svg N/A Missing trailing newline at end of file
public/providers/poolside.svg N/A Missing trailing newline at end of file
src/shared/components/ProviderIcon.tsx 79 KNOWN_SVGS entries not in alphabetical order — arcee-ai should appear before brave, poolside should appear much later
Other Observations (not in diff)

Issues found in unchanged code that cannot receive inline comments:

File Line Issue
src/shared/constants/providers.ts 1712-1806 All 7 new providers use passthroughModels: true — verify each provider has an OpenAI-compatible /v1/models endpoint before merge, otherwise users will see empty model lists
src/shared/constants/providers.ts 1720, 1733, 1746, 1760, 1773, 1786, 1799 freeNote claims are not validated by the schema — recommend verifying free tier availability at merge time to avoid stale documentation
Files Reviewed (10 files)
  • public/providers/arcee-ai.svg - 1 issue (missing trailing newline)
  • public/providers/inclusionai.svg - 1 issue (missing trailing newline)
  • public/providers/krutrim.svg - 1 issue (missing trailing newline)
  • public/providers/liquid.svg - 1 issue (missing trailing newline)
  • public/providers/monsterapi.svg - 1 issue (missing trailing newline)
  • public/providers/nomic.svg - 1 issue (missing trailing newline)
  • public/providers/poolside.svg - 1 issue (missing trailing newline)
  • src/shared/components/ProviderIcon.tsx - 1 issue (KNOWN_SVGS ordering)
  • src/shared/components/lobeProviderIcons.ts - 0 issues (import ordering fixed in force-push)
  • src/shared/constants/providers.ts - 0 inline issues, 2 observations outside diff

Reviewed by qwen3.6-plus · 1,869,234 tokens

Copy link
Copy Markdown
Contributor

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for seven new AI providers—Poolside, Arcee AI, InclusionAI, Liquid AI, Nomic, Krutrim, and MonsterAPI—by integrating their SVG icons, icon mappings, and provider configurations. The review feedback identifies several improvement opportunities, including the need to map provider aliases for consistent icon resolution, maintaining alphabetical order in imports and component definitions, and ensuring new providers are assigned to the correct functional categories for proper UI display.

Comment thread src/shared/components/ProviderIcon.tsx Outdated
Comment on lines +105 to +111
"poolside",
"arcee-ai",
"inclusionai",
"liquid",
"nomic",
"krutrim",
"monsterapi",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The providers arcee-ai, inclusionai, and monsterapi have aliases (arcee, inclusion, monster) defined in providers.ts. These aliases should also be included in KNOWN_SVGS to ensure that the fallback icons are correctly resolved when the alias is used instead of the full ID. I have also sorted the new entries alphabetically.

  "arcee",
  "arcee-ai",
  "inclusion",
  "inclusionai",
  "krutrim",
  "liquid",
  "monster",
  "monsterapi",
  "nomic",
  "poolside",

Comment on lines +360 to +361
"arcee-ai": "Arcee",
liquid: "Liquid",
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The provider arcee-ai has an alias arcee. This alias should be mapped here to ensure the Lobe icon is correctly resolved when the alias is used.

Suggested change
"arcee-ai": "Arcee",
liquid: "Liquid",
"arcee-ai": "Arcee",
arcee: "Arcee",
liquid: "Liquid",

Comment on lines +77 to +79
import ArceeColorIcon from "@lobehub/icons/es/Arcee/components/Color";
import ArceeMonoIcon from "@lobehub/icons/es/Arcee/components/Mono";
import LiquidMonoIcon from "@lobehub/icons/es/Liquid/components/Mono";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The imports in this file are maintained in alphabetical order. ArceeColorIcon and ArceeMonoIcon should be moved higher up (after Antigravity), and LiquidMonoIcon should be placed after LambdaMonoIcon to maintain consistency with the rest of the file.

KiloCode: { mono: KiloCodeMonoIcon },
Kimi: { mono: KimiMonoIcon, color: KimiColorIcon },
Lambda: { mono: LambdaMonoIcon },
Arcee: { mono: ArceeMonoIcon, color: ArceeColorIcon },
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The entry for Arcee in LOBE_ICON_COMPONENTS is out of alphabetical order. It should be moved after Antigravity to maintain the file's organizational structure.

passthroughModels: true,
authHint: "Get API key at monsterapi.ai",
},
};
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The new providers monsterapi and nomic should be added to the relevant category sets defined below to ensure they appear in the correct sections of the dashboard and catalog views. Specifically, monsterapi should be added to AGGREGATOR_PROVIDER_IDS and nomic to EMBEDDING_RERANK_PROVIDER_IDS.

@oyi77
Copy link
Copy Markdown
Contributor Author

oyi77 commented May 21, 2026

Thanks for the detailed review — will add the trailing newlines and fix the alias mappings and alphabetical ordering.

Co-Authored-By: OpenClaude (mimo-v2.5-pro) <openclaude@gitlawb.com>
@oyi77 oyi77 force-pushed the feat/free-providers-wave1 branch from 6236063 to 3a277eb Compare May 21, 2026 15:17
"brave",
"brave-search",
"cartesia",
"arcee-ai",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

SUGGESTION: KNOWN_SVGS entries not in alphabetical order

The 7 new provider names are inserted as a block between "cartesia" and "clarifai", but alphabetically "arcee-ai" should appear before "brave", and "poolside" should appear much later. While Sets are unordered at runtime, maintaining alphabetical order improves readability and reduces future merge conflicts. Consider splitting these entries into their correct alphabetical positions within the Set.

@diegosouzapw diegosouzapw changed the base branch from main to release/v3.8.2 May 21, 2026 18:46
@diegosouzapw diegosouzapw merged commit c78a267 into diegosouzapw:release/v3.8.2 May 21, 2026
55 of 72 checks passed
@diegosouzapw
Copy link
Copy Markdown
Owner

Thank you for this contribution! 🎉 Your fix has been integrated into the upcoming v3.8.2 release. Great work!

@diegosouzapw diegosouzapw mentioned this pull request May 21, 2026
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.

[Feature] Add 8 Free-Tier Providers (Wave 1)

2 participants