Skip to content

Anthropic

/Custom Provider

Anthropic

Best reasoning for complex vulnerabilities. Use Claude 3.5 Sonnet for deep scans, Haiku for fast triage. Via OpenAI-compatible adapter.

Why Claude for security

  • Strongest at finding logic bugs — IDOR, authz bypass, SSRF chains.
  • 200k context handles large repos in one pass.
  • Conservative fix PRs — fewer hallucinations in patches.

Option 1: Via OpenRouter (recommended)

OpenRouter exposes Claude with OpenAI-compatible API. No adapter needed.

  1. Get key at openrouter.ai/keys
  2. Settings → Models → Add custom provider → OpenRouter preset
  3. Base URL: https://openrouter.ai/api/v1
  4. Model: anthropic/claude-3-5-sonnet
  5. Save → Preferred
{
  "baseURL": "https://openrouter.ai/api/v1",
  "apiKey": "sk-or-v1-...",
  "model": "anthropic/claude-3-5-sonnet",
  "headers": {
    "HTTP-Referer": "https://your-app.com",
    "X-Title": "Rixel"
  }
}

Option 2: Direct Anthropic via adapter

Rixel expects OpenAI format. To use Anthropic native API directly, run a small proxy that translates /chat/completions → /v1/messages.

Lightweight adapter example (Node):

// adapter.js - translate OpenAI -> Anthropic
import express from 'express'
const app = express()
app.use(express.json())

app.post('/v1/chat/completions', async (req, res) => {
  const anthropicRes = await fetch('https://api.anthropic.com/v1/messages', {
    method: 'POST',
    headers: {
      'x-api-key': process.env.ANTHROPIC_API_KEY,
      'anthropic-version': '2023-06-01',
      'content-type': 'application/json'
    },
    body: JSON.stringify({
      model: req.body.model,
      max_tokens: req.body.max_tokens ?? 4096,
      messages: req.body.messages.filter(m => m.role !== 'system'),
      system: req.body.messages.find(m => m.role === 'system')?.content
    })
  })
  // stream translation omitted for brevity — pipe SSE
  res.json(await anthropicRes.json())
})

app.listen(3001)

Or use hosted adapter like llm-proxy, one-api, litellm — they already expose Anthropic as OpenAI-compatible.

Recommended for production: Use LiteLLM proxy — pip install litellm then litellm --model anthropic/claude-3-5-sonnet — exposes OpenAI /v1 on :4000.

Claude models

claude-3-5-sonnet-20241022$$

Scans + fixes — best reasoning, 200k ctx

claude-3-5-haiku-20241022$

Fast triage, low cost, ~3x cheaper

claude-3-opus-20240229$$$

Heaviest reasoning, slow, for audit mode

Prompt tips for Claude

Claude benefits from explicit severity rubric. Rixel already sends system prompts optimized for Claude — no changes needed. Ensure system message is passed as top-level system via your cloud adapter.