OpenAI compatible API. Attested gateway. Public status.

Agent Setup For TrustedRouter

Base URLs, env vars, smoke tests, and model aliases for coding agents.

Verify gateway
1 URLbase_url migration
100smodels and routes
0prompt logs by default

Agent setup

OpenAI compatible

Use this when a coding agent needs to switch a project to TrustedRouter without changing the app architecture.

export TRUSTEDROUTER_API_KEY="sk-tr-v1-..."
export OPENAI_API_KEY="$TRUSTEDROUTER_API_KEY"
export OPENAI_BASE_URL="https://api.trustedrouter.com/v1"
# Anthropic SDKs use the non-/v1 base URL.
export ANTHROPIC_API_KEY="$TRUSTEDROUTER_API_KEY"
export ANTHROPIC_BASE_URL="https://api.trustedrouter.com"

Already integrated against api.quillrouter.com? It stays a permanent working alias — no migration needed. Both hostnames terminate inside the same attested gateway.

Smoke test

before editing code
curl https://api.trustedrouter.com/v1/chat/completions \
  -H "Authorization: Bearer $TRUSTEDROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "trustedrouter/zdr",
    "messages": [{"role": "user", "content": "Reply with PONG only."}],
    "max_tokens": 4
  }'

The response should contain PONG. Use this check before moving evals or production traffic.

Model aliases

recommended
  • trustedrouter/zdr: zero-data-retention routes first. Good default for legal and sensitive work.
  • trustedrouter/e2e: end-to-end encrypted route pool, currently centered on confidential providers.
  • trustedrouter/eu: EU-focused routing. Use with https://api-europe-west4.quillrouter.com/v1 for the EU regional gateway.
  • trustedrouter/auto: broad provider fallback when availability matters more than the strictest privacy filter.
  • trustedrouter/cheap: low-cost paid route pool for cost-sensitive tests.
  • trustedrouter/socrates: rolling named advisor model. Use trustedrouter/socrates-1.1 for the current pinned version; trustedrouter/socrates-1.0 remains available only for old pinned integrations.
  • trustedrouter/subagent: primitive for OpenRouter-compatible subtask delegation. Use a concrete parent model with a trustedrouter:subagent or openrouter:subagent tool.
  • trustedrouter/iris-1.0, trustedrouter/prometheus-1.0, trustedrouter/zeus-1.0: versioned budget, open, and frontier Synth presets inside the attested gateway.
  • trustedrouter/iris-code-1.0, trustedrouter/prometheus-code-1.0, trustedrouter/zeus-code-1.0: versioned code-tuned Synth presets for implementation-heavy agent turns.

Agent prompt

copy
Migrate this project to TrustedRouter.
Use base_url "https://api.trustedrouter.com/v1".
Read the API key from TRUSTEDROUTER_API_KEY.
Use trustedrouter/zdr by default unless the user asks for broad fallback.
For Europe-focused workloads, use base_url "https://api-europe-west4.quillrouter.com/v1" and model trustedrouter/eu.
Use trustedrouter/prometheus-1.0 for hard prompts, evals, or synthesis where multiple model calls are worth the cost.
Use trustedrouter/prometheus-code-1.0 for implementation-heavy agent turns.
Use trustedrouter/socrates for the current rolling advisor model, or trustedrouter/socrates-1.1 when you need the current pinned version.
Run a PONG smoke test before editing app code.

Socrates prompt

advisor orchestration

trustedrouter/socrates is the rolling named advisor model, currently pointing at trustedrouter/socrates-1.1. The worker gets one private zero-argument tool, _trustedrouter_get_advice, and should call it only when stuck, uncertain, or facing a high-stakes decision. Use the generic trustedrouter/advisor primitive only when you provide explicit worker and advisor models yourself.

{
  "model": "trustedrouter/socrates-1.1",
  "messages": [{"role": "user", "content": "Review this migration plan for production risk."}],
  "tools": [{
    "type": "trustedrouter:advisor",
    "parameters": {
      "depth": 2,
      "advisor_models": ["anthropic/claude-opus-4.8"],
      "max_get_advice_calls": 1,
      "advisor_max_tokens": 4096,
      "advisor_timeout_ms": 90000
    }
  }]
}

The advisor sees the same prompt context as the worker. Use provider.data_collection = "deny", trustedrouter/zdr, trustedrouter/e2e, or EU routing when those privacy requirements matter. If the advisor is itself a Synth model such as trustedrouter/zeus-1.0, TrustedRouter decrements orchestration depth automatically.

Subagent prompt

server tool

trustedrouter/subagent lets a parent model delegate self-contained subtasks to a worker model during the same generation. The worker sees only the task description that the parent model writes.

{
  "model": "anthropic/claude-sonnet-5",
  "messages": [{"role": "user", "content": "Research the options, then propose one implementation."}],
  "tools": [{
    "type": "openrouter:subagent",
    "parameters": {
      "model": "deepseek/deepseek-v4-flash",
      "instructions": "Be concise. Return only useful findings.",
      "max_tool_calls": 4,
      "max_completion_tokens": 800
    }
  }]
}

The private function exposed to the parent model is _trustedrouter_subagent with task_name and task_description. Function tools inside the subagent worker are rejected; recursive subagents are blocked.

Agent skill

model advisor

Use the trustedrouter-model-advisor playbook when Codex, Claude Code, Hermes, Cursor, or another coding agent needs to choose a model, estimate cost and speed, weigh privacy tiers, connect MCP, or decide whether prompt caching makes one stable model cheaper than broad routing.

# Codex native skill
Use $trustedrouter-model-advisor to choose the best TrustedRouter model for this task.

# Claude Code, Hermes, Cursor, or any agent that can read a URL
Read https://raw.githubusercontent.com/Lore-Hex/LLM-advisor/main/SKILL.md and follow it.
Consider speed, cost, AI IQ, privacy, context length, prompt caching, and recent provider health before making calls.

Skill source: GitHub folder. Raw instructions for any agent: SKILL.md.

Synth prompt

hard prompts
For a hard prompt, use model trustedrouter/synth.
Attach one tool:
{
  "type": "trustedrouter:synth",
  "parameters": {
    "preset": "quality",
    "selection_strategy": "synthesize_non_refusals",
    "fallback_judges": ["~anthropic/claude-latest", "~google/gemini-pro-latest", "~zai/glm-latest"],
    "fallback_final_models": ["~anthropic/claude-latest", "~google/gemini-pro-latest", "~kimi/latest"],
    "max_completion_tokens": 800
  }
}
Read the full behavior at https://trustedrouter.com/docs/synth.

Useful references

Agents should read the compact context first, then use the full context when choosing models or providers.

Sign in

Choose a sign in method.