From 852c2f97769d422f2c5ad530d53d0209d4518b6e Mon Sep 17 00:00:00 2001 From: rarebuffalo Date: Mon, 15 Jun 2026 02:58:09 +0530 Subject: [PATCH] use codex_cli_rs headers to bypass agentrouter client verification --- app/services/ai.py | 4 +++- cli/securelens/ai/__init__.py | 4 +++- tests/test_cli_api_base.py | 6 +++++- 3 files changed, 11 insertions(+), 3 deletions(-) diff --git a/app/services/ai.py b/app/services/ai.py index 32eeabc..b93dcbd 100644 --- a/app/services/ai.py +++ b/app/services/ai.py @@ -78,7 +78,9 @@ async def call_ai( kwargs["api_base"] = settings.ai_api_base if "agentrouter.org" in settings.ai_api_base.lower(): kwargs["extra_headers"] = { - "User-Agent": "claude-code/0.2.9", + "Originator": "codex_cli_rs", + "User-Agent": "codex_cli_rs/0.101.0 (Mac OS 26.0.1; arm64) Apple_Terminal/464", + "Version": "0.101.0", } # JSON mode: supported natively by OpenAI and LiteLLM proxied Gemini. diff --git a/cli/securelens/ai/__init__.py b/cli/securelens/ai/__init__.py index 4d7b724..5e52d4e 100644 --- a/cli/securelens/ai/__init__.py +++ b/cli/securelens/ai/__init__.py @@ -55,7 +55,9 @@ async def call_ai( kwargs["api_base"] = api_base if "agentrouter.org" in api_base.lower(): kwargs["extra_headers"] = { - "User-Agent": "claude-code/0.2.9", + "Originator": "codex_cli_rs", + "User-Agent": "codex_cli_rs/0.101.0 (Mac OS 26.0.1; arm64) Apple_Terminal/464", + "Version": "0.101.0", } if json_mode: diff --git a/tests/test_cli_api_base.py b/tests/test_cli_api_base.py index cd66c67..23e594e 100644 --- a/tests/test_cli_api_base.py +++ b/tests/test_cli_api_base.py @@ -111,4 +111,8 @@ async def test_call_ai_injects_agentrouter_headers(): mock_acompletion.assert_called_once() called_kwargs = mock_acompletion.call_args[1] - assert called_kwargs["extra_headers"] == {"User-Agent": "claude-code/0.2.9"} + assert called_kwargs["extra_headers"] == { + "Originator": "codex_cli_rs", + "User-Agent": "codex_cli_rs/0.101.0 (Mac OS 26.0.1; arm64) Apple_Terminal/464", + "Version": "0.101.0", + }