DEV Community

UplinkSwitch
UplinkSwitch

Posted on Originally published at uplinkswitch.ai

Pointing Strix, HackingBuddyGPT and CAI at one OpenAI-compatible URL

Every setup guide for the open-source pentest agents starts with an OpenAI key. The agents do not care whose key it is. Each one takes a base URL, and the base URL decides who bills the tokens and which models answer.

The tables and per-model checks are in the original write-up, pentest agents API setup. Disclosure: it is our gateway, and the examples below use it. Run all of this only against systems you are authorized to test.

Why change the base URL

The complaint in the security threads is that stock frontier models decline the question. A September 2026 r/cybersecurity thread, "Best LLM for security professionals" (100+ comments), has a top comment saying Anthropic puts security work behind its Cyber Verification Program, announced 2026-10-06, and that OpenAI does the same. We ran no exploit-quality benchmark, so this post makes no claim about which model finds more bugs. It covers wiring.

Smoke test before the agent

A wrong path should fail here, not twenty turns into a run. Copy a model id from the Uplink Red Team rows on /red-teaming into MODEL.

export MODEL="<id from the Red Team table>"
curl https://api.uplinkswitch.com/v1/chat/completions \
  -H "Authorization: Bearer $UPLINK_API_KEY" \
  -H "Content-Type: application/json" \
  -d "{\"model\":\"$MODEL\",\"max_tokens\":400,\"messages\":[{\"role\":\"user\",\"content\":\"Write a Sigma rule that detects CVE-2024-3094 exploitation attempts and explain the detection logic.\"}]}"
Enter fullscreen mode Exit fullscreen mode

The variables, per each README

Read from the repositories on 2026-10-22. Base URL is https://api.uplinkswitch.com/v1 in all of them.

  • Strix: STRIX_LLM in litellm format, so openai/<id>, plus LLM_API_KEY and LLM_API_BASE.
  • HackingBuddyGPT: --llm.api_base, --llm.api_key, --llm.model (litellm format) and --llm.context_size. Set the context size below the model's window, so the harness trims the transcript before the API refuses it.
  • CAI: CAI_MODEL and OPENAI_API_KEY. The base URL variable, OPENAI_BASE_URL, is documented in its docs/models.md. The README says the open-source line is frozen at 0.5.10 and the repository is archived. It still runs.
  • PentestGPT: the autonomous mode runs on Claude Code or Codex, so the key is theirs. Point Claude Code at the gateway with ANTHROPIC_BASE_URL and ANTHROPIC_AUTH_TOKEN and it bills Claude models there. The Red Team ids speak the OpenAI format, so for those use Strix or HackingBuddyGPT.

Mistakes that cost a run

  • The base URL ends in /v1. The three agents above append /chat/completions themselves, and a URL that already has it returns 404 on every turn.
  • Strix, HackingBuddyGPT and CAI want the litellm prefix, openai/<id>. The bare id belongs in the SDK and in curl.
  • Ids are exact and lowercase. GET /v1/models lists what your key can call.
  • Keep the key in a .env that is in .gitignore, or in the shell environment.

Which model id

The Uplink Red Team ids, Pro and Flash, are our own security-focused builds. A short security-analyst instruction goes ahead of your messages: deliverable first, real tool invocations, CVE, CWE and ATT&CK ids, evidence separated from inference, proof-of-concept code with the fix. The instruction is not charged and never appears in the answer. Your own system prompt follows it and wins on conflicts.

So the rule is simple. A bare prompt, as in triage and report writing, suits a Red Team id. An agent that sends its own long system prompt suits a general uncensored build from the hub, so your prompt is the whole prompt.

What one engagement costs

An agent resends the transcript on every turn, so input dominates. Take 300 turns at 8,000 input and 500 output tokens: 2,400,000 tokens in, 150,000 out. If a build lists a cached-input rate, a repeated prefix earns it, and that matters more here than in a chat app. Multiply by the rates on the model page.

Give each agent its own key with a monthly spend limit, so a loop that never ends stops at the number you set. Failed requests are not charged.

If you were looking for WhiteRabbitNeo

WhiteRabbitNeo is now Deep Hat, from Kindo. The pages we read on 2026-10-22 show a free chat and a contact-sales route, and no API price. Your options split by access:

  • Chat: Deep Hat.
  • Hosted per-token APIs from other vendors: Venice and abliteration.ai. Prices change, so read their pages.
  • Open weights on your hardware: the WhiteRabbitNeo-2-70B card is about 140 GB at 16-bit. DeepHat-V1-7B fits one 24 GB GPU. Both licences add a usage-restriction list.
  • Aligned by design: Cisco's Foundation-Sec-8B-Reasoning suits classification and analysis more than exploit work.

Get a key: prepaid, no subscription, 30-day price lock, at uplinkswitch.ai/console.

Top comments (0)