From b438632e1265789ea24674bad9bcce7c6ba8278d Mon Sep 17 00:00:00 2001 From: Ahmed Allam Date: Wed, 2 Sep 2026 13:17:25 +0000 Subject: [PATCH] fix(models): keep list additions-only, restore gpt-5.4 examples, make openrouter/z-ai/glm-5.3 the top pick --- AGENTS.md | 2 +- CONTRIBUTING.md | 2 +- README.md | 14 +++++++------- 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 | 6 ++++-- docs/llm-providers/openai.mdx | 4 ++-- docs/llm-providers/openrouter.mdx | 11 ++++++----- docs/llm-providers/overview.mdx | 29 ++++++++++++++-------------- docs/llm-providers/vertex.mdx | 6 +++--- docs/quickstart.mdx | 4 ++-- strix/config/models.py | 11 +++++++++-- strix/interface/auth_cli.py | 4 ++-- strix/interface/environment.py | 6 +++--- strix/interface/main.py | 6 +++--- 19 files changed, 69 insertions(+), 58 deletions(-) diff --git a/AGENTS.md b/AGENTS.md index 8630c12b..e9039195 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.6" # any LiteLLM model id + export STRIX_LLM="openai/gpt-5.4" # 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 265943d4..23028d3e 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.6" + export STRIX_LLM="openai/gpt-5.4" export LLM_API_KEY="your-api-key" ``` diff --git a/README.md b/README.md index 451ef370..ecf57d0f 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.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/ runs on the subscription +export STRIX_LLM="chatgpt/gpt-5.4" # chatgpt/ 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. diff --git a/docs/advanced/configuration.mdx b/docs/advanced/configuration.mdx index c2f8edd0..f1542b75 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.6`, `anthropic/claude-sonnet-5`). + Model name in LiteLLM format (e.g., `openai/gpt-5.4`, `anthropic/claude-sonnet-4-6`). @@ -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 diff --git a/docs/contributing.mdx b/docs/contributing.mdx index 4b61c8d0..4d7f8fb2 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.6" + export STRIX_LLM="openai/gpt-5.4" export LLM_API_KEY="your-api-key" ``` diff --git a/docs/index.mdx b/docs/index.mdx index 15e81ecf..2d401489 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.6" +export STRIX_LLM="openai/gpt-5.4" export LLM_API_KEY="your-api-key" # Scan diff --git a/docs/integrations/github-actions.mdx b/docs/integrations/github-actions.mdx index 7c5bf3fd..5952c3a0 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.6`) | +| `STRIX_LLM` | Model name (e.g., `openai/gpt-5.4`) | | `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 0b5b389e..da32b13a 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-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 diff --git a/docs/llm-providers/azure.mdx b/docs/llm-providers/azure.mdx index 35f5f711..1a9be008 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.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 diff --git a/docs/llm-providers/novita.mdx b/docs/llm-providers/novita.mdx index 45eed351..8ae514d4 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-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 diff --git a/docs/llm-providers/openai.mdx b/docs/llm-providers/openai.mdx index ecec6948..c8a48677 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.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" ``` diff --git a/docs/llm-providers/openrouter.mdx b/docs/llm-providers/openrouter.mdx index 05fd009a..2bcf6e74 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.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//`: | 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 diff --git a/docs/llm-providers/overview.mdx b/docs/llm-providers/overview.mdx index 77c08a40..bfeec62a 100644 --- a/docs/llm-providers/overview.mdx +++ b/docs/llm-providers/overview.mdx @@ -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 - GPT-5.6 models. + GPT-5.4 models. 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. - GPT-5.6 through Azure. + GPT-5.4 via Azure. 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 ``` diff --git a/docs/llm-providers/vertex.mdx b/docs/llm-providers/vertex.mdx index 5c4efe2b..d7ed9710 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.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 diff --git a/docs/quickstart.mdx b/docs/quickstart.mdx index f336e8ca..9e13d69f 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.6" +export STRIX_LLM="openai/gpt-5.4" export LLM_API_KEY="your-api-key" ``` -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`. ## Run Your First Scan diff --git a/strix/config/models.py b/strix/config/models.py index 002eadfc..15fa2546 100644 --- a/strix/config/models.py +++ b/strix/config/models.py @@ -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) diff --git a/strix/interface/auth_cli.py b/strix/interface/auth_cli.py index 09354e54..51e6b9fe 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.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") diff --git a/strix/interface/environment.py b/strix/interface/environment.py index 2ace227f..5589a1fe 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 (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: diff --git a/strix/interface/main.py b/strix/interface/main.py index 1f933cd8..297c4838 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 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("/", 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(