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: