Skip to content

feat: add Melious provider - #5221

Open
sahil-melious wants to merge 1 commit into
anomalyco:devfrom
MeliousAI:melious-provider
Open

feat: add Melious provider#5221
sahil-melious wants to merge 1 commit into
anomalyco:devfrom
MeliousAI:melious-provider

Conversation

@sahil-melious

@sahil-melious sahil-melious commented Aug 21, 2026

Copy link
Copy Markdown

Adds Melious — a European OpenAI-compatible inference host
that serves open-weight models only — as a provider.

providers/melious/: provider.toml, logo.svg, and 53 chat models.

Data provenance

  • Models, capabilities, context windows: GET https://api.melious.ai/v1/models?include_meta=true
  • Prices: https://melious.ai/hub/models — listed in EUR, converted at 1.17 USD/EUR
    (ECB reference rate, captured 2026-08-20). Each file's leading comment records the
    rate, the date and the source.
  • Provider docs: https://melious.ai/docs/reference/models

Model files

48 of 53 use base_model against existing models/ lab metadata and are
override-only — cost, reasoning_options, interleaved, plus real deltas such as
a narrower limit.context.

Five have no lab entry upstream and are defined inline: gemma-3-27b-it,
holo2-30b-a3b, llama-3.1-405b-instruct, hermes-4-405b, hermes-4-70b. Every
other host of those same models does the same (greenpt, stackit, nebius,
cortecs), and their names and descriptions reuse the strings already normalised
across those entries.

Reasoning

reasoning_options = [{ type = "effort", values = ["low", "medium", "high"] }] on every
reasoner — that is this host's documented control
(docs). No toggle: an explicit
reasoning_effort: "none" still returns reasoning, so there is no reachable off state.

interleaved.field = "reasoning_content" was set per model from live responses, not
assumed. Both Hermes 4 models are classified as reasoners by the catalog but inline
their thinking into content, so they deliberately carry no interleaved. Conversely
devstral-2-123b-instruct-2512, gemma-3-27b-it and holo2-30b-a3b are classified
non_reasoning yet return chain-of-thought in reasoning_content, so they are
recorded as reasoners; each file notes the discrepancy.

Limits

limit.output is measured, not inherited: the catalog reports max_output_tokens as
null for 51 of 53 models. Values come from descending a ladder from the context
window and bisecting to ±1024. Where the host accepts max_tokens equal to the full
window, limit.output is the window; where output shares a smaller window with the
prompt, that window is published; each file says which case applies.

Verification

  • bun validate — passes
  • bun run test in packages/sdk — passes
  • OpenCode, per the README's manual-testing flow:
 cd packages/web && bun run build
 OPENCODE_MODELS_PATH="dist/_api.json" MELIOUS_API_KEY=… opencode 

opencode auth list picks the key up from MELIOUS_API_KEY, opencode models lists
all 53 as melious/*, and opencode run completes with tool calls and reasoning
parts against a real key with no opencode.json present.

Checklist

  • Compliant logo.svg — square viewBox, currentColor, no fixed width/height
  • Non-lab hosts use base_model; inline entries follow existing precedent
  • base_model files are override-only, no restated identical fields
  • reasoning = truereasoning_options set
  • Costs are USD/MTok, with conversion rate and date in a top-of-file comment
  • bun validate passes

Melious is a European OpenAI-compatible inference host serving
open-weight models only. This adds provider.toml, logo.svg and 53 chat
models, 48 of which use base_model against existing lab metadata.

Melious lists prices in EUR; costs here are converted at 1.17 USD/EUR
(ECB reference rate, 2026-08-20) and every file records the rate, the
date and the source endpoint in a leading comment.

limit.output is measured against the live API rather than inherited,
because the catalog reports max_output_tokens as null for 51 of 53
models and the inherited values are wrong in places -- pixtral-12b
inherits 128_000 and actually accepts 4_096.

reasoning_options follow this host's documented control surface,
reasoning_effort = low|medium|high, with no toggle: an explicit
"none" still returns reasoning, so claiming one would be false.
@github-actions

Copy link
Copy Markdown
Contributor

Action items

  • [high] [violation] providers/melious/models/gemma-3-27b-it.toml:13 - Check: Non-lab hosts must use base_model; missing lab metadata must be added under models/. Why: Melious did not create these models, and each has a nameable lab identity (google/gemma-3-27b-it, H Company Holo2, meta/llama-3.1-405b-instruct, NousResearch Hermes 4 405B/70B). Full inline third-party definitions are only allowed for unique-to-host/private aliases; peer hosts defining them inline does not create an exception. Action: Add complete lab files under models/<lab>/… for all five, then rewrite the Melious entries as override-only base_model files (cost, reasoning_options, interleaved, and real host deltas only). Same applies to holo2-30b-a3b.toml, llama-3.1-405b-instruct.toml, hermes-4-405b.toml, and hermes-4-70b.toml.
  • [high] [possible mistake] providers/melious/models/qwen3.5-122b-a10b.toml:18 - Check: Cache pricing should be a discounted read rate relative to input. Why: cache_read = 0.1404 is higher than input = 0.117 (about 120% of input). Other Melious cache rows are ~20–40% of input; 0.1404 is also identical to kimi-k2.5’s cache_read, which looks like a copy-paste error. Action: Re-check Melious EUR cache pricing for this model, reconvert at 1.17 USD/EUR, and correct cache_read (or remove it if cache is not billed).

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