fix(models): keep list additions-only, restore gpt-5.4 examples, make openrouter/z-ai/glm-5.3 the top pick

This commit is contained in:
Ahmed Allam 2026-09-02 13:17:25 +00:00 committed by Ahmed Allam
parent 0ab7244807
commit b438632e12
19 changed files with 69 additions and 58 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.6" # any LiteLLM model id
export STRIX_LLM="openai/gpt-5.4" # 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.6"
export STRIX_LLM="openai/gpt-5.4"
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.6"
export STRIX_LLM="openai/gpt-5.4"
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.6"
export STRIX_LLM="openai/gpt-5.4"
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.6" # chatgpt/<model> runs on the subscription
export STRIX_LLM="chatgpt/gpt-5.4" # chatgpt/<model> runs on the subscription
strix --target ./app-directory
strix auth status # show the active sign-in
@ -448,12 +448,12 @@ Each server's tools are namespaced by `name` (for example `local_fs_read_file`).
**Recommended models for best results:**
- [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`
- [Z.ai GLM-5.3 on OpenRouter](https://openrouter.ai/z-ai/glm-5.3) - `openrouter/z-ai/glm-5.3` (our top pick)
- [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`
- [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.6`, `anthropic/claude-sonnet-5`).
Model name in LiteLLM format (e.g., `openai/gpt-5.4`, `anthropic/claude-sonnet-4-6`).
</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.6",
"STRIX_LLM": "openai/gpt-5.4",
"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.6"
export STRIX_LLM="openai/gpt-5.4"
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.6"
export STRIX_LLM="openai/gpt-5.4"
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.6"
export STRIX_LLM="openai/gpt-5.4"
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.6`) |
| `STRIX_LLM` | Model name (e.g., `openai/gpt-5.4`) |
| `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-5"
export STRIX_LLM="anthropic/claude-sonnet-4-6"
export LLM_API_KEY="sk-ant-..."
```
@ -14,8 +14,8 @@ export LLM_API_KEY="sk-ant-..."
| Model | Description |
|-------|-------------|
| `anthropic/claude-sonnet-5` | Best balance of intelligence and speed |
| `anthropic/claude-opus-5` | Maximum capability for deep analysis |
| `anthropic/claude-sonnet-4-6` | Best balance of intelligence and speed |
| `anthropic/claude-opus-4-6` | 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.6-deployment"
export STRIX_LLM="azure/gpt-5.4-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 (for example GPT-5.6)
2. Deploy a model (e.g., GPT-5.4)
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-k3"
export STRIX_LLM="openai/moonshotai/kimi-k2.5"
export LLM_API_KEY="your-novita-api-key"
export LLM_API_BASE="https://api.novita.ai/openai"
```
@ -17,9 +17,11 @@ export LLM_API_BASE="https://api.novita.ai/openai"
| Model | Configuration |
|-------|---------------|
| Kimi K3 | `openai/moonshotai/kimi-k3` |
| GLM-5.3 | `openai/zai-org/glm-5.3` |
| Kimi K3 | `openai/moonshotai/kimi-k3` |
| DeepSeek V4 Pro | `openai/deepseek/deepseek-v4-pro` |
| Kimi K2.5 | `openai/moonshotai/kimi-k2.5` |
| GLM-5 | `openai/zai-org/glm-5` |
| 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.6"
export STRIX_LLM="openai/gpt-5.4"
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.6"
export STRIX_LLM="openai/gpt-5.4"
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.6-sol"
export STRIX_LLM="openrouter/openai/gpt-5.4"
export LLM_API_KEY="sk-or-..."
```
@ -18,12 +18,13 @@ Access any model on OpenRouter using the format `openrouter/<provider>/<model>`:
| Model | Configuration |
|-------|---------------|
| 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` |
| GLM-5.3 (top pick) | `openrouter/z-ai/glm-5.3` |
| 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` |
| DeepSeek V4 Pro | `openrouter/deepseek/deepseek-v4-pro` |
| Kimi K3 | `openrouter/moonshotai/kimi-k3` |
| GLM-5.3 | `openrouter/z-ai/glm-5.3` |
| GLM-4.7 | `openrouter/z-ai/glm-4.7` |
## Get API Key

View file

@ -9,17 +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.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` |
| Model | Provider | Configuration |
| -------------------- | ----------------- | -------------------------------- |
| GLM-5.3 (top pick) | Z.ai (OpenRouter) | `openrouter/z-ai/glm-5.3` |
| 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` |
| DeepSeek V4 Pro | DeepSeek | `deepseek/deepseek-v4-pro` |
| Kimi K3 | Moonshot | `moonshot/kimi-k3` |
```bash
export STRIX_LLM="openai/gpt-5.6"
export STRIX_LLM="openai/gpt-5.4"
export LLM_API_KEY="your-api-key"
```
@ -38,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.6 models.
GPT-5.4 models.
</Card>
<Card title="Anthropic" href="/llm-providers/anthropic">
Claude Opus, Sonnet, and Haiku.
@ -53,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.6 through Azure.
GPT-5.4 via Azure.
</Card>
<Card title="Local Models" href="/llm-providers/local">
Llama 4, Mistral, and self-hosted models.
@ -65,9 +65,10 @@ See the [Local Models guide](/llm-providers/local) for setup instructions and re
Use LiteLLM's `provider/model-name` format:
```
openai/gpt-5.6
anthropic/claude-sonnet-5
vertex_ai/gemini-3.1-pro-preview
openrouter/z-ai/glm-5.3
openai/gpt-5.4
anthropic/claude-sonnet-4-6
vertex_ai/gemini-3-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.1-pro-preview"
export STRIX_LLM="vertex_ai/gemini-3-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.1-pro-preview` | Best overall performance for security testing |
| `vertex_ai/gemini-3.7-flash` | Faster and cheaper |
| `vertex_ai/gemini-3-pro-preview` | Best overall performance for security testing |
| `vertex_ai/gemini-3-flash-preview` | 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.6"
export STRIX_LLM="openai/gpt-5.4"
export LLM_API_KEY="your-api-key"
```
<Tip>
For best results, use `openai/gpt-5.6`, `anthropic/claude-opus-5`, or `deepseek/deepseek-v4-pro`.
For best results, use `openrouter/z-ai/glm-5.3` (our top pick), `openai/gpt-5.4`, `anthropic/claude-opus-4-6`, or `openai/gpt-5.2`.
</Tip>
## Run Your First Scan

View file

@ -562,27 +562,34 @@ DEFAULT_MODEL_RETRY = ModelRetrySettings(
)
RECOMMENDED_MODEL_NAMES = (
"openrouter/z-ai/glm-5.3",
"zai/glm-5.3",
"zai/glm-5.3-flash",
"openai/gpt-5.6-sol",
"openai/gpt-5.6-terra",
"openai/gpt-5.6-luna",
"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",
"vertex_ai/gemini-3.7-flash",
"gemini/gemini-3.7-flash",
"gemini/gemini-3.6-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)

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.6[/] "
" [yellow]Note:[/] set [cyan]STRIX_LLM[/] to e.g. [cyan]chatgpt/gpt-5.4[/] "
"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.6", style="bold cyan")
text.append("chatgpt/gpt-5.4", 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 (for example 'openai/gpt-5.6' or "
"'anthropic/claude-opus-5')\n",
" - Model name to use (e.g., 'openai/gpt-5.4' or "
"'anthropic/claude-opus-4-7')\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.6'\n", style="dim white")
error_text.append("export STRIX_LLM='openai/gpt-5.4'\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 is not available on your ChatGPT subscription. "
"Set STRIX_LLM to a model your plan includes (for example chatgpt/gpt-5.6)."
"This model isn't available on your ChatGPT subscription. "
"Set STRIX_LLM to a model your plan includes (e.g. chatgpt/gpt-5.4)."
)
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, for example 'anthropic/claude-opus-5' or 'deepseek/deepseek-v4-pro'.",
"' form, e.g. 'anthropic/claude-opus-4-7', 'deepseek/deepseek-v4-pro'.",
style="white",
)
console.print(