Skip to content

provider: add Friendli - #486

Open
Lee-Si-Yoon wants to merge 7 commits into
charmbracelet:mainfrom
Lee-Si-Yoon:feat/friendli-provider
Open

provider: add Friendli#486
Lee-Si-Yoon wants to merge 7 commits into
charmbracelet:mainfrom
Lee-Si-Yoon:feat/friendli-provider

Conversation

@Lee-Si-Yoon

Copy link
Copy Markdown

What

Adds Friendli as an inference provider. Friendli serves open-source models through an OpenAI-compatible API at https://api.friendli.ai/serverless/v1.

Changes

  • New config: internal/providers/configs/friendli.json with six active models from the Friendli models endpoint
  • Registered in internal/providers/providers.go (embed, registry, provider function)
  • Added InferenceProviderFriendli constant in pkg/catwalk/provider.go and included in KnownProviders()

Models

Sourced from the live https://api.friendli.ai/serverless/v1/models endpoint. Deprecated models are excluded.

Model Context Reasoning Attachments
zai-org/GLM-5.2 1M yes (toggle) no
zai-org/GLM-5.1 202K yes (toggle) no
MiniMaxAI/MiniMax-M2.5 196K yes (always) no
deepseek-ai/DeepSeek-V3.2 163K yes (toggle) no
LGAI-EXAONE/K-EXAONE-236B-A23B 262K yes (toggle) no
google/gemma-4-31B-it 262K yes (toggle) yes

Defaults: large = zai-org/GLM-5.2, small = deepseek-ai/DeepSeek-V3.2.

Reasoning note

Friendli handles reasoning differently from most OpenAI-compatible providers. Instead of reasoning_effort, it uses chat_template_kwargs.enable_thinking (toggle) and parse_reasoning/include_reasoning to separate reasoning content into reasoning_content. The Crush-side coordinator support for this will follow in a separate PR once this catwalk version is released.

@Lee-Si-Yoon
Lee-Si-Yoon force-pushed the feat/friendli-provider branch from 70b1a8d to 2f10ccb Compare August 1, 2026 06:32
@Lee-Si-Yoon
Lee-Si-Yoon force-pushed the feat/friendli-provider branch from 2f10ccb to 133c466 Compare August 1, 2026 06:43
Only skip models whose deprecation_date has already passed (not just
any model with a deprecation_date), so upcoming deprecations remain
available until their actual sunset date.

Also drop stale reasoning_levels from DeepSeek-V3.2: its API
reasoning_options are toggle+budget_tokens (no effort), so it
correctly gets no levels per the fix in 62b279e.
The Friendli API now returns reasoning_options including effort,
so the step can run unconditionally like the other providers.
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