Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -286,8 +286,9 @@ strix auth logout # forget the sign-in
- [OpenAI GPT-5.4](https://openai.com/api/) - `openai/gpt-5.4`
- [Anthropic Claude Sonnet 4.6](https://claude.com/platform/api) - `anthropic/claude-sonnet-4-6`
- [Google Gemini 3 Pro Preview](https://cloud.google.com/vertex-ai) - `vertex_ai/gemini-3-pro-preview`
- [MiniMax-M3](https://platform.minimax.io) - `openai/MiniMax-M3` (set `LLM_API_BASE=https://api.minimax.io/v1`)

See the [LLM Providers documentation](https://docs.strix.ai/llm-providers/overview) for all supported providers including Vertex AI, Bedrock, Azure, and local models.
See the [LLM Providers documentation](https://docs.strix.ai/llm-providers/overview) for all supported providers including Vertex AI, Bedrock, Azure, MiniMax, and local models.

## Enterprise Pentesting

Expand Down
1 change: 1 addition & 0 deletions docs/docs.json
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@
"llm-providers/bedrock",
"llm-providers/azure",
"llm-providers/novita",
"llm-providers/minimax",
"llm-providers/local"
]
},
Expand Down
54 changes: 54 additions & 0 deletions docs/llm-providers/minimax.mdx
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
---
title: "MiniMax"
description: "Configure Strix with MiniMax models"
---

[MiniMax](https://www.minimax.io) provides large language models with large context windows through an OpenAI-compatible API. MiniMax operates two regional endpoints: the global endpoint (`api.minimax.io`) and the China endpoint (`api.minimaxi.com`).

## Setup

Global endpoint:

```bash
export STRIX_LLM="openai/MiniMax-M3"
export LLM_API_KEY="your-minimax-api-key"
export LLM_API_BASE="https://api.minimax.io/v1"
```

China endpoint:

```bash
export STRIX_LLM="openai/MiniMax-M3"
export LLM_API_KEY="your-minimax-api-key"
export LLM_API_BASE="https://api.minimaxi.com/v1"
```

## Available Models

| Model | Configuration | Context Window |
|-------|---------------|----------------|
| MiniMax-M3 (default) | `openai/MiniMax-M3` | 1,000,000 tokens |
| MiniMax-M2.7 | `openai/MiniMax-M2.7` | 204,800 tokens |

**MiniMax-M3** is the latest flagship model with a 1,000,000-token context window and image input support.
**MiniMax-M2.7** is the previous generation flagship with strong reasoning and coding capabilities and a 204,800-token context window.

## Regional Endpoints

MiniMax exposes separate endpoints for global and China users. Both are OpenAI-compatible; only the base URL differs.

| Region | Base URL |
|--------|---------|
| Global | `https://api.minimax.io/v1` |
| China | `https://api.minimaxi.com/v1` |

## Get API Key

1. Go to [platform.minimax.io](https://platform.minimax.io) (global) or [platform.minimaxi.com](https://platform.minimaxi.com) (China)
2. Sign up or sign in
3. Navigate to API Keys and create a new key

## Notes

- MiniMax API is fully OpenAI-compatible, so it works via the `openai/` LiteLLM prefix with `LLM_API_BASE`

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.

P2 Correct the provider routing description

The openai/ prefix routes this configuration through Strix's native OpenAI provider, not its LiteLLM fallback. Calling it a LiteLLM prefix misdirects users troubleshooting the documented MiniMax setup.

Suggested change
- MiniMax API is fully OpenAI-compatible, so it works via the `openai/` LiteLLM prefix with `LLM_API_BASE`
- MiniMax API is fully OpenAI-compatible, so it works via the native `openai/` provider prefix with `LLM_API_BASE`

Knowledge Base Used: Configuration and Telemetry

Prompt To Fix With AI
This is a comment left during a code review.
Path: docs/llm-providers/minimax.mdx
Line: 53

Comment:
**Correct the provider routing description**

The `openai/` prefix routes this configuration through Strix's native OpenAI provider, not its LiteLLM fallback. Calling it a LiteLLM prefix misdirects users troubleshooting the documented MiniMax setup.

```suggestion
- MiniMax API is fully OpenAI-compatible, so it works via the native `openai/` provider prefix with `LLM_API_BASE`
```

**Knowledge Base Used:** [Configuration and Telemetry](https://app.greptile.com/strix-org-3/-/custom-context/knowledge-base/usestrix/strix/-/docs/telemetry-and-config.md)

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

- Use the China endpoint (`api.minimaxi.com`) only when your account is registered on the China platform
4 changes: 4 additions & 0 deletions docs/llm-providers/overview.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ Set your model and API key:
| GPT-5.4 | OpenAI | `openai/gpt-5.4` |
| Claude Sonnet 4.6 | Anthropic | `anthropic/claude-sonnet-4-6` |
| Gemini 3 Pro | Google Vertex | `vertex_ai/gemini-3-pro-preview` |
| MiniMax-M3 | MiniMax | `openai/MiniMax-M3` |

```bash
export STRIX_LLM="openai/gpt-5.4"
Expand Down Expand Up @@ -55,6 +56,9 @@ See the [Local Models guide](/llm-providers/local) for setup instructions and re
<Card title="Local Models" href="/llm-providers/local">
Llama 4, Mistral, and self-hosted models.
</Card>
<Card title="MiniMax" href="/llm-providers/minimax">
MiniMax-M3 with 1M context and image input.
</Card>
</CardGroup>

## Model Format
Expand Down
3 changes: 3 additions & 0 deletions strix/config/models.py
Original file line number Diff line number Diff line change
Expand Up @@ -208,6 +208,8 @@ def get_model(self, model_name: str | None) -> Model:
"dashscope/qwen3.7-max-2026-06-08",
"moonshot/kimi-k3",
"moonshot/kimi-k2.7-code",
"openai/MiniMax-M3",
"openai/MiniMax-M2.7",
)

_RECOMMENDED_MODEL_NAME_SET = frozenset(name.lower() for name in RECOMMENDED_MODEL_NAMES)
Expand All @@ -222,6 +224,7 @@ def get_model(self, model_name: str | None) -> Model:
(("deepseek",), ("deepseek-v4", "deepseek-r1", "deepseek-reasoner")),
(("alibaba", "dashscope", "qwen"), ("qwen3.8", "qwen3.7", "qwen3-max")),
(("moonshot", "moonshotai", "kimi"), ("kimi-k3", "kimi-k2.7", "kimi-k2.6")),
(("minimax",), ("minimax-m3", "minimax-m2.7")),
)


Expand Down
4 changes: 4 additions & 0 deletions tests/test_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,10 @@ def test_recommended_models_are_matched_case_insensitively() -> None:
"moonshot/kimi-k2.6",
"kimi-k2.7-code",
"moonshot/kimi-k3",
"openai/MiniMax-M3",
"openai/MiniMax-M2.7",
"minimax-m3",
"minimax-m2.7",
],
)
def test_frontier_model_families_are_accepted(model_name: str) -> None:
Expand Down