hzhang 724075a8d6 refactor: import shared Plexum-anthropic-compat-client lib
internal/anthropic and internal/translate moved to the new
Plexum-anthropic-compat-client repo (extracted from MiniMax + Kimi
duplicates). cmd/plexum-minimax-provider-plugin imports them from
the shared module instead.

No behavioral change — same wire client, same translator.
Live re-verified after refactor: plexum say → "ready".
2026-05-31 20:35:09 +01:00

Plexum-minimax-provider

Plexum ProviderPlugin that serves MiniMax models via MiniMax's Anthropic-compatible HTTP endpoint.

Status

v0.1 — current: API key auth, streaming SSE, declared models MiniMax-M2.7 + MiniMax-M2.7-highspeed. Backend fixed to api (global https://api.minimax.io/anthropic or CN https://api.minimaxi.com/anthropic).

Deferred: OAuth (Code Plan portal), MiniMax Portal provider, image / TTS / video / music providers (separate plugins later if wanted).

API key + model matrix

MiniMax issues two key types from the same Anthropic-compatible endpoint; this plugin sends both with Authorization: Bearer <key> and lets the server decide. The key prefix tells you which billing model you're on:

key prefix billing MiniMax-M2.7 MiniMax-M2.7-highspeed
sk-cp-... Token Plan (per-plan quota) included Token Plan Starter (0/0 used) — highspeed is NOT in the base Token Plan
sk-api-... pay-per-token (per-request billed) if balance > 0; else insufficient_balance (1008) if balance > 0

Takeaway: if you only have a Token Plan key, set the agent's model to MiniMax-M2.7 (base). For the highspeed variant you need a funded sk-api- key. The plugin doesn't reject highspeed at startup — the error surfaces in the agent's response when the model is invoked.

Install

cd ~/Plexum-minimax-provider
./scripts/install.sh

Then:

  1. Write API key to ~/.plexum/plugins/plexum-minimax-provider/config.json:

    {
      "api_key": "sk-cp-..."
    }
    

    (chmod 600 it.)

  2. Allow the plugin in ~/.plexum/plexum.json:

    {"plugins": {"allow": ["plexum-minimax-provider"]}}
    
  3. Point an agent at a MiniMax model:

    plexum agent-add --model MiniMax-M2.7 my-agent
    
  4. Restart the gateway and talk:

    systemctl --user restart plexum
    plexum say --agent-id my-agent --session-id $(plexum new-session --agent-id my-agent) "hello"
    

Config options

Field Default Notes
api_key (required) sk-cp-... style key from MiniMax
region global cn switches to api.minimaxi.com
base_url override either region's default
max_tokens_default 4096 used when TurnRequest.MaxTokens is unset

Architecture

  • internal/anthropic/ — minimal HTTP+SSE Anthropic Messages client
  • internal/translate/canonical.TurnRequest ↔ Anthropic Messages, SSE Event → canonical.TurnEvent per-block state machine
  • cmd/plexum-minimax-provider-plugin/ — Plexum SDK ProviderPlugin entry

Both text, thinking, and tool_use content blocks round-trip losslessly (signatures preserved for thinking blocks).

License

Same as Plexum.

Description
Plexum ProviderPlugin for MiniMax via Anthropic-compat endpoint
Readme 5 MiB
Languages
Go 65.7%
Shell 34.3%