From 0ab7244807199b2a1acd02728dd1584eefaa563a Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Wed, 2 Sep 2026 12:34:25 +0000 Subject: [PATCH] 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. --- AGENTS.md | 2 +- CONTRIBUTING.md | 2 +- README.md | 15 +++++++++------ docs/advanced/configuration.mdx | 6 +++--- docs/contributing.mdx | 2 +- docs/index.mdx | 2 +- docs/integrations/github-actions.mdx | 2 +- docs/llm-providers/anthropic.mdx | 6 +++--- docs/llm-providers/azure.mdx | 4 ++-- docs/llm-providers/novita.mdx | 7 ++++--- docs/llm-providers/openai.mdx | 4 ++-- docs/llm-providers/openrouter.mdx | 12 +++++++----- docs/llm-providers/overview.mdx | 25 ++++++++++++++----------- docs/llm-providers/vertex.mdx | 6 +++--- docs/quickstart.mdx | 4 ++-- strix/config/models.py | 12 ++++++------ strix/interface/auth_cli.py | 4 ++-- strix/interface/environment.py | 6 +++--- strix/interface/main.py | 6 +++--- tests/test_models.py | 10 ++++++++++ 20 files changed, 78 insertions(+), 59 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index e9039195..8630c12b 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -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="" strix -n -t ./ --scan-mode quick --max-budget 10 # headless scan; always use -n ``` diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 23028d3e..265943d4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -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" ``` diff --git a/README.md b/README.md index 6cb6aaac..451ef370 100644 --- a/README.md +++ b/README.md @@ -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/ runs on the subscription +export STRIX_LLM="chatgpt/gpt-5.6" # chatgpt/ 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. diff --git a/docs/advanced/configuration.mdx b/docs/advanced/configuration.mdx index f1542b75..c2f8edd0 100644 --- a/docs/advanced/configuration.mdx +++ b/docs/advanced/configuration.mdx @@ -8,7 +8,7 @@ Configure Strix using environment variables or a config file. ## LLM Configuration - 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`). @@ -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 diff --git a/docs/contributing.mdx b/docs/contributing.mdx index 4d7f8fb2..4b61c8d0 100644 --- a/docs/contributing.mdx +++ b/docs/contributing.mdx @@ -33,7 +33,7 @@ description: "Contribute to Strix development" ```bash - export STRIX_LLM="openai/gpt-5.4" + export STRIX_LLM="openai/gpt-5.6" export LLM_API_KEY="your-api-key" ``` diff --git a/docs/index.mdx b/docs/index.mdx index 2d401489..15e81ecf 100644 --- a/docs/index.mdx +++ b/docs/index.mdx @@ -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 diff --git a/docs/integrations/github-actions.mdx b/docs/integrations/github-actions.mdx index 5952c3a0..7c5bf3fd 100644 --- a/docs/integrations/github-actions.mdx +++ b/docs/integrations/github-actions.mdx @@ -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 diff --git a/docs/llm-providers/anthropic.mdx b/docs/llm-providers/anthropic.mdx index da32b13a..0b5b389e 100644 --- a/docs/llm-providers/anthropic.mdx +++ b/docs/llm-providers/anthropic.mdx @@ -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 diff --git a/docs/llm-providers/azure.mdx b/docs/llm-providers/azure.mdx index 1a9be008..35f5f711 100644 --- a/docs/llm-providers/azure.mdx +++ b/docs/llm-providers/azure.mdx @@ -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 diff --git a/docs/llm-providers/novita.mdx b/docs/llm-providers/novita.mdx index e7e35b67..45eed351 100644 --- a/docs/llm-providers/novita.mdx +++ b/docs/llm-providers/novita.mdx @@ -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 diff --git a/docs/llm-providers/openai.mdx b/docs/llm-providers/openai.mdx index c8a48677..ecec6948 100644 --- a/docs/llm-providers/openai.mdx +++ b/docs/llm-providers/openai.mdx @@ -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" ``` diff --git a/docs/llm-providers/openrouter.mdx b/docs/llm-providers/openrouter.mdx index 2b816e90..05fd009a 100644 --- a/docs/llm-providers/openrouter.mdx +++ b/docs/llm-providers/openrouter.mdx @@ -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//`: | 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 diff --git a/docs/llm-providers/overview.mdx b/docs/llm-providers/overview.mdx index 8c0d5002..77c08a40 100644 --- a/docs/llm-providers/overview.mdx +++ b/docs/llm-providers/overview.mdx @@ -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 - GPT-5.4 models. + GPT-5.6 models. 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. - GPT-5.4 via Azure. + GPT-5.6 through Azure. 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 ``` diff --git a/docs/llm-providers/vertex.mdx b/docs/llm-providers/vertex.mdx index d7ed9710..5c4efe2b 100644 --- a/docs/llm-providers/vertex.mdx +++ b/docs/llm-providers/vertex.mdx @@ -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 diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index ea9ddd89..f336e8ca 100644 --- a/docs/quickstart.mdx +++ b/docs/quickstart.mdx @@ -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" ``` -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`. ## Run Your First Scan diff --git a/strix/config/models.py b/strix/config/models.py index 88349ad6..002eadfc 100644 --- a/strix/config/models.py +++ b/strix/config/models.py @@ -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")), ) diff --git a/strix/interface/auth_cli.py b/strix/interface/auth_cli.py index 51e6b9fe..09354e54 100644 --- a/strix/interface/auth_cli.py +++ b/strix/interface/auth_cli.py @@ -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") diff --git a/strix/interface/environment.py b/strix/interface/environment.py index 5589a1fe..2ace227f 100644 --- a/strix/interface/environment.py +++ b/strix/interface/environment.py @@ -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: diff --git a/strix/interface/main.py b/strix/interface/main.py index 297c4838..1f933cd8 100644 --- a/strix/interface/main.py +++ b/strix/interface/main.py @@ -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("/", 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( diff --git a/tests/test_models.py b/tests/test_models.py index 0f3b8c95..f65135fc 100644 --- a/tests/test_models.py +++ b/tests/test_models.py @@ -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: