feat(models): refresh the recommended model list and docs examples

Add Claude Fable 5.1, Gemini 3.7 Flash, and Z.ai GLM-5.3 / GLM-5.3-Flash
to RECOMMENDED_MODEL_NAMES, add a Z.ai GLM frontier family so GLM-5.x is
accepted through OpenRouter and Novita routes, and drop the superseded
GPT-5.4, GPT-5.3-codex, Opus 4.8, Sonnet 4.6, Gemini 3.6 Flash, and
Qwen3.7 entries. Update the README, docs provider pages, quickstart, and
CLI hint strings to the same current models, including DeepSeek V4,
Kimi K3, and GLM-5.3.
This commit is contained in:
Ahmed Allam 2026-09-02 12:34:25 +00:00 committed by Ahmed Allam
parent c514f712f4
commit 0ab7244807
20 changed files with 78 additions and 59 deletions

View file

@ -28,7 +28,7 @@ Target-specific workflows built on the same engine:
- **Open-source CLI (self-hosted):** free, fully local, BYO LLM key, needs Docker. Best for local dev loops, air-gapped/offline, and full control.
```bash
curl -sSL https://strix.ai/install | bash # install
export STRIX_LLM="openai/gpt-5.4" # any LiteLLM model id
export STRIX_LLM="openai/gpt-5.6" # any LiteLLM model id
export LLM_API_KEY="<key>"
strix -n -t ./ --scan-mode quick --max-budget 10 # headless scan; always use -n
```

View file

@ -31,7 +31,7 @@ Thank you for your interest in contributing to Strix! This guide will help you g
3. **Configure your LLM provider**
```bash
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="your-api-key"
```

View file

@ -82,7 +82,7 @@ Strix are autonomous AI penetration testing agents that act just like real hacke
curl -sSL https://strix.ai/install | bash
# Configure your AI provider
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="your-api-key"
# Run your first security assessment
@ -294,7 +294,7 @@ jobs:
### Configuration
```bash
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="your-api-key"
# Optional
@ -313,7 +313,7 @@ Instead of a metered API key, you can run Strix on your ChatGPT Plus/Pro subscri
```bash
strix auth login chatgpt # sign in with your ChatGPT account
export STRIX_LLM="chatgpt/gpt-5.4" # chatgpt/<model> runs on the subscription
export STRIX_LLM="chatgpt/gpt-5.6" # chatgpt/<model> runs on the subscription
strix --target ./app-directory
strix auth status # show the active sign-in
@ -448,9 +448,12 @@ Each server's tools are namespaced by `name` (for example `local_fs_read_file`).
**Recommended models for best results:**
- [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`
- [OpenAI GPT-5.6](https://openai.com/api/) - `openai/gpt-5.6`
- [Anthropic Claude Opus 5](https://claude.com/platform/api) - `anthropic/claude-opus-5`
- [Google Gemini 3.1 Pro Preview](https://cloud.google.com/vertex-ai) - `vertex_ai/gemini-3.1-pro-preview`
- [DeepSeek V4 Pro](https://platform.deepseek.com) - `deepseek/deepseek-v4-pro`
- [Moonshot Kimi K3](https://platform.kimi.ai) - `moonshot/kimi-k3`
- [Z.ai GLM-5.3](https://z.ai) - `zai/glm-5.3`
See the [LLM Providers documentation](https://docs.strix.ai/llm-providers/overview) for all supported providers including Vertex AI, Bedrock, Azure, and local models.

View file

@ -8,7 +8,7 @@ Configure Strix using environment variables or a config file.
## LLM Configuration
<ParamField path="STRIX_LLM" type="string" required>
Model name in LiteLLM format (e.g., `openai/gpt-5.4`, `anthropic/claude-sonnet-4-6`).
Model name in LiteLLM format (e.g., `openai/gpt-5.6`, `anthropic/claude-sonnet-5`).
</ParamField>
<ParamField path="LLM_API_KEY" type="string">
@ -145,7 +145,7 @@ strix --target ./app --config /path/to/config.json
```json
{
"env": {
"STRIX_LLM": "openai/gpt-5.4",
"STRIX_LLM": "openai/gpt-5.6",
"LLM_API_KEY": "sk-...",
"STRIX_REASONING_EFFORT": "high"
}
@ -156,7 +156,7 @@ strix --target ./app --config /path/to/config.json
```bash
# Required
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="sk-..."
# Optional: Enable web search

View file

@ -33,7 +33,7 @@ description: "Contribute to Strix development"
</Step>
<Step title="Configure LLM">
```bash
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="your-api-key"
```
</Step>

View file

@ -78,7 +78,7 @@ Strix uses a graph of specialized agents for comprehensive security testing:
curl -sSL https://strix.ai/install | bash
# Configure
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="your-api-key"
# Scan

View file

@ -37,7 +37,7 @@ Add these secrets to your repository:
| Secret | Description |
|--------|-------------|
| `STRIX_LLM` | Model name (e.g., `openai/gpt-5.4`) |
| `STRIX_LLM` | Model name (e.g., `openai/gpt-5.6`) |
| `LLM_API_KEY` | API key for your LLM provider |
## Exit Codes

View file

@ -6,7 +6,7 @@ description: "Configure Strix with Claude models"
## Setup
```bash
export STRIX_LLM="anthropic/claude-sonnet-4-6"
export STRIX_LLM="anthropic/claude-sonnet-5"
export LLM_API_KEY="sk-ant-..."
```
@ -14,8 +14,8 @@ export LLM_API_KEY="sk-ant-..."
| Model | Description |
|-------|-------------|
| `anthropic/claude-sonnet-4-6` | Best balance of intelligence and speed |
| `anthropic/claude-opus-4-6` | Maximum capability for deep analysis |
| `anthropic/claude-sonnet-5` | Best balance of intelligence and speed |
| `anthropic/claude-opus-5` | Maximum capability for deep analysis |
## Get API Key

View file

@ -24,7 +24,7 @@ export AZURE_API_VERSION="2025-11-01-preview"
## Example
```bash
export STRIX_LLM="azure/gpt-5.4-deployment"
export STRIX_LLM="azure/gpt-5.6-deployment"
export AZURE_API_KEY="abc123..."
export AZURE_API_BASE="https://mycompany.openai.azure.com"
export AZURE_API_VERSION="2025-11-01-preview"
@ -33,5 +33,5 @@ export AZURE_API_VERSION="2025-11-01-preview"
## Prerequisites
1. Create an Azure OpenAI resource
2. Deploy a model (e.g., GPT-5.4)
2. Deploy a model (for example GPT-5.6)
3. Get the endpoint URL and API key from the Azure portal

View file

@ -8,7 +8,7 @@ description: "Configure Strix with Novita AI models"
## Setup
```bash
export STRIX_LLM="openai/moonshotai/kimi-k2.5"
export STRIX_LLM="openai/moonshotai/kimi-k3"
export LLM_API_KEY="your-novita-api-key"
export LLM_API_BASE="https://api.novita.ai/openai"
```
@ -17,8 +17,9 @@ export LLM_API_BASE="https://api.novita.ai/openai"
| Model | Configuration |
|-------|---------------|
| Kimi K2.5 | `openai/moonshotai/kimi-k2.5` |
| GLM-5 | `openai/zai-org/glm-5` |
| Kimi K3 | `openai/moonshotai/kimi-k3` |
| GLM-5.3 | `openai/zai-org/glm-5.3` |
| DeepSeek V4 Pro | `openai/deepseek/deepseek-v4-pro` |
| MiniMax M2.5 | `openai/minimax/minimax-m2.5` |
## Get API Key

View file

@ -6,7 +6,7 @@ description: "Configure Strix with OpenAI models"
## Setup
```bash
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="sk-..."
```
@ -25,7 +25,7 @@ See [OpenAI Models Documentation](https://platform.openai.com/docs/models) for t
For OpenAI-compatible APIs:
```bash
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="your-key"
export LLM_API_BASE="https://your-proxy.com/v1"
```

View file

@ -8,7 +8,7 @@ description: "Configure Strix with models via OpenRouter"
## Setup
```bash
export STRIX_LLM="openrouter/openai/gpt-5.4"
export STRIX_LLM="openrouter/openai/gpt-5.6-sol"
export LLM_API_KEY="sk-or-..."
```
@ -18,10 +18,12 @@ Access any model on OpenRouter using the format `openrouter/<provider>/<model>`:
| Model | Configuration |
|-------|---------------|
| GPT-5.4 | `openrouter/openai/gpt-5.4` |
| Claude Sonnet 4.6 | `openrouter/anthropic/claude-sonnet-4.6` |
| Gemini 3 Pro | `openrouter/google/gemini-3-pro-preview` |
| GLM-4.7 | `openrouter/z-ai/glm-4.7` |
| GPT-5.6 Sol | `openrouter/openai/gpt-5.6-sol` |
| Claude Opus 5 | `openrouter/anthropic/claude-opus-5` |
| Gemini 3.1 Pro | `openrouter/google/gemini-3.1-pro-preview` |
| DeepSeek V4 Pro | `openrouter/deepseek/deepseek-v4-pro` |
| Kimi K3 | `openrouter/moonshotai/kimi-k3` |
| GLM-5.3 | `openrouter/z-ai/glm-5.3` |
## Get API Key

View file

@ -9,14 +9,17 @@ Strix uses [LiteLLM](https://docs.litellm.ai/docs/providers) for model compatibi
Set your model and API key:
| Model | Provider | Configuration |
| ----------------- | ------------- | -------------------------------- |
| 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` |
| Model | Provider | Configuration |
| -------------- | ------------- | ---------------------------------- |
| GPT-5.6 | OpenAI | `openai/gpt-5.6` |
| Claude Opus 5 | Anthropic | `anthropic/claude-opus-5` |
| Gemini 3.1 Pro | Google Vertex | `vertex_ai/gemini-3.1-pro-preview` |
| DeepSeek V4 | DeepSeek | `deepseek/deepseek-v4-pro` |
| Kimi K3 | Moonshot | `moonshot/kimi-k3` |
| GLM-5.3 | Z.ai | `zai/glm-5.3` |
```bash
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="your-api-key"
```
@ -35,7 +38,7 @@ See the [Local Models guide](/llm-providers/local) for setup instructions and re
<CardGroup cols={2}>
<Card title="OpenAI" href="/llm-providers/openai">
GPT-5.4 models.
GPT-5.6 models.
</Card>
<Card title="Anthropic" href="/llm-providers/anthropic">
Claude Opus, Sonnet, and Haiku.
@ -50,7 +53,7 @@ See the [Local Models guide](/llm-providers/local) for setup instructions and re
Claude and Titan models via AWS.
</Card>
<Card title="Azure OpenAI" href="/llm-providers/azure">
GPT-5.4 via Azure.
GPT-5.6 through Azure.
</Card>
<Card title="Local Models" href="/llm-providers/local">
Llama 4, Mistral, and self-hosted models.
@ -62,9 +65,9 @@ See the [Local Models guide](/llm-providers/local) for setup instructions and re
Use LiteLLM's `provider/model-name` format:
```
openai/gpt-5.4
anthropic/claude-sonnet-4-6
vertex_ai/gemini-3-pro-preview
openai/gpt-5.6
anthropic/claude-sonnet-5
vertex_ai/gemini-3.1-pro-preview
bedrock/anthropic.claude-4-5-sonnet-20251022-v1:0
ollama/llama4
```

View file

@ -14,7 +14,7 @@ pipx install "strix-agent[vertex]"
## Setup
```bash
export STRIX_LLM="vertex_ai/gemini-3-pro-preview"
export STRIX_LLM="vertex_ai/gemini-3.1-pro-preview"
```
No API key required—uses Google Cloud Application Default Credentials.
@ -37,8 +37,8 @@ export GOOGLE_APPLICATION_CREDENTIALS="/path/to/service-account.json"
| Model | Description |
|-------|-------------|
| `vertex_ai/gemini-3-pro-preview` | Best overall performance for security testing |
| `vertex_ai/gemini-3-flash-preview` | Faster and cheaper |
| `vertex_ai/gemini-3.1-pro-preview` | Best overall performance for security testing |
| `vertex_ai/gemini-3.7-flash` | Faster and cheaper |
## Project Configuration

View file

@ -28,12 +28,12 @@ description: "Install Strix and run your first security scan"
Set your LLM provider:
```bash
export STRIX_LLM="openai/gpt-5.4"
export STRIX_LLM="openai/gpt-5.6"
export LLM_API_KEY="your-api-key"
```
<Tip>
For best results, use `openai/gpt-5.4`, `anthropic/claude-opus-4-6`, or `openai/gpt-5.2`.
For best results, use `openai/gpt-5.6`, `anthropic/claude-opus-5`, or `deepseek/deepseek-v4-pro`.
</Tip>
## Run Your First Scan

View file

@ -568,22 +568,21 @@ RECOMMENDED_MODEL_NAMES = (
"openai/gpt-5.6",
"openai/gpt-5.5-pro",
"openai/gpt-5.5",
"openai/gpt-5.4",
"openai/gpt-5.3-codex",
"anthropic/claude-fable-5-1",
"anthropic/claude-fable-5",
"anthropic/claude-opus-5",
"anthropic/claude-opus-4-8",
"anthropic/claude-sonnet-5",
"anthropic/claude-sonnet-4-6",
"vertex_ai/gemini-3.1-pro-preview",
"gemini/gemini-3.1-pro-preview",
"gemini/gemini-3.6-flash",
"vertex_ai/gemini-3.7-flash",
"gemini/gemini-3.7-flash",
"deepseek/deepseek-v4-pro",
"deepseek/deepseek-v4-flash",
"dashscope/qwen3.8-max",
"dashscope/qwen3.7-max-2026-06-08",
"moonshot/kimi-k3",
"moonshot/kimi-k2.7-code",
"zai/glm-5.3",
"zai/glm-5.3-flash",
)
_RECOMMENDED_MODEL_NAME_SET = frozenset(name.lower() for name in RECOMMENDED_MODEL_NAMES)
@ -598,6 +597,7 @@ FRONTIER_MODEL_FAMILIES = (
(("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")),
(("zai", "z-ai", "zai-org", "zhipuai"), ("glm-5.3", "glm-5.2")),
)

View file

@ -254,7 +254,7 @@ def _status(console: Console) -> int:
console.print(f" Runs use the subscription (STRIX_LLM=[bold]{settings.llm.model}[/]).")
else:
console.print(
" [yellow]Note:[/] set [cyan]STRIX_LLM[/] to e.g. [cyan]chatgpt/gpt-5.4[/] "
" [yellow]Note:[/] set [cyan]STRIX_LLM[/] to e.g. [cyan]chatgpt/gpt-5.6[/] "
"to run on the subscription."
)
return 0
@ -293,7 +293,7 @@ def _print_success(console: Console) -> None:
text.append(" to a ", style="white")
text.append("chatgpt/", style="bold cyan")
text.append(" model (e.g. ", style="white")
text.append("chatgpt/gpt-5.4", style="bold cyan")
text.append("chatgpt/gpt-5.6", style="bold cyan")
text.append(") — runs are billed to your ChatGPT plan.", style="white")
text.append("\n\n", style="white")
text.append("Run a scan as usual, e.g. ", style="white")

View file

@ -70,8 +70,8 @@ def validate_environment() -> None:
error_text.append("", style="white")
error_text.append("STRIX_LLM", style="bold cyan")
error_text.append(
" - Model name to use (e.g., 'openai/gpt-5.4' or "
"'anthropic/claude-opus-4-7')\n",
" - Model name to use (for example 'openai/gpt-5.6' or "
"'anthropic/claude-opus-5')\n",
style="white",
)
@ -102,7 +102,7 @@ def validate_environment() -> None:
)
error_text.append("\nExample setup:\n", style="white")
error_text.append("export STRIX_LLM='openai/gpt-5.4'\n", style="dim white")
error_text.append("export STRIX_LLM='openai/gpt-5.6'\n", style="dim white")
if missing_optional_vars:
for var in missing_optional_vars:

View file

@ -118,8 +118,8 @@ def _subscription_error_hint(exc: BaseException) -> str | None:
joined = " ".join(_exception_messages(exc)).lower()
if "not supported when using codex with a chatgpt account" in joined:
return (
"This model isn't available on your ChatGPT subscription. "
"Set STRIX_LLM to a model your plan includes (e.g. chatgpt/gpt-5.4)."
"This model is not available on your ChatGPT subscription. "
"Set STRIX_LLM to a model your plan includes (for example chatgpt/gpt-5.6)."
)
if (
"error code: 401" in joined
@ -171,7 +171,7 @@ async def warm_up_llm(show_model_warning: bool = True) -> None:
)
warn_text.append("<provider>/<model>", style="bold cyan")
warn_text.append(
"' form, e.g. 'anthropic/claude-opus-4-7', 'deepseek/deepseek-v4-pro'.",
"' form, for example 'anthropic/claude-opus-5' or 'deepseek/deepseek-v4-pro'.",
style="white",
)
console.print(

View file

@ -72,6 +72,13 @@ def test_recommended_models_are_matched_case_insensitively() -> None:
"moonshot/kimi-k2.6",
"kimi-k2.7-code",
"moonshot/kimi-k3",
"anthropic/claude-fable-5-1",
"vertex_ai/claude-fable-5-1@default",
"gemini/gemini-3.7-flash",
"glm-5.3",
"zai/glm-5.3-flash",
"openrouter/z-ai/glm-5.3",
"novita/zai-org/glm-5.2",
],
)
def test_frontier_model_families_are_accepted(model_name: str) -> None:
@ -92,6 +99,9 @@ def test_frontier_model_families_are_accepted(model_name: str) -> None:
"openrouter/x-ai/grok-4",
"mistral/mistral-medium-3-5",
"mistral/magistral-medium-latest",
"zai/glm-4.7",
"openrouter/z-ai/glm-5",
"custom-provider/glm-5.3-local",
],
)
def test_non_frontier_models_are_rejected(model_name: str) -> None: