arf.io / ARF / Compatibility / ARF — Autonomous Request Filter · Agent Router & Filter
ARF · Adaptive Runtime Framework

Your runner.
Your model.
Your choice.

The Adaptive Runtime Framework works with Claude, Codex, Gemini CLI, Ollama, DeepSeek, Qwen, and every major model API. Mix, match, and recombine without touching a governance rule. The fence works for all of them.

Runner Compatibility

Every CLI.
Zero code changes.

Runner
Status
Protocol
Notes
Claude Code
✓ Full
Anthropic SSE
stream-json, OAuth. Best-supported runner.
Codex CLI
✓ Full
Chat Completions
NDJSON, OAuth. Full tool call governance.
Gemini CLI
✓ Full
Gemini JSON
--yolo mode. Governance via CIR translation.
Antigravity
✓ Full
OAI-compat
First-class support. Used in ARF's own CI.
Aider
✓ Full
OAI-compat
Set OPENAI_BASE_URL=http://localhost:4554
gptme
✓ Full
OAI-compat
Set OPENAI_BASE_URL. Full tool governance.
Goose
✓ Full
OAI-compat
Set OPENAI_BASE_URL. Full tool governance.
OpenCode
✓ Full
OAI-compat
Set OPENAI_BASE_URL.
Amazon Q
✓ Full
OAI-compat
Proxy intercepts OAI-compat API calls.
Cline
✓ Full
OAI-compat
VS Code extension. Set base URL in Cline settings.
Ollama
✓ Full
OAI-compat
Local models. ARF routes to Ollama as backend.
Hermes
✓ Full
OAI-compat
Full governance and session tracking.
Any OAI-compat CLI
~ Via config
OAI-compat
Set OPENAI_BASE_URL=http://localhost:4554

✓ Full — complete support with all ARF features  ·  ~ Via config — works with manual base URL configuration  ·  ✗ Not supported

Engine Compatibility

Every model API.
One governance layer.

Engine / API
Wire Protocol
Streaming
Tool Calls
Translation
Anthropic API
SSE streaming format
Anthropic SSE
✓ SSE
✓ Full
✓ Native
OpenAI API
Chat Completions format
Chat Completions
✓ SSE chunks
✓ Full
✓ Native
Google Gemini API
Gemini JSON format
Gemini JSON
✓ Server-push
~ Function calls
✓ Via CIR
Ollama / DeepSeek / Qwen
OAI-compat local
OpenAI-compat
✓ SSE chunks
~ Model-dep.
✓ Via OAI
Any OAI-compat
vLLM, llama.cpp, etc.
OpenAI-compat
✓ SSE chunks
~ If supported
✓ Via OAI
Protocol Translation

Canonical IR:
the bridge between worlds.

The Canonical Intermediate Representation (CIR) is ARF's internal message format. Every supported protocol is translated to CIR on ingress and from CIR on egress. The CIR captures the full semantic content of any supported message: role, content blocks (text, code, image, tool call, tool result), metadata, and streaming state.

Translation is bidirectional and lossless for governance-relevant fields. You can run Claude Code against the Gemini API, and ARF will translate the messages correctly, including system prompts, tool definitions, function call formats, and streaming response chunks.

The translation pipeline is the Adaptive Runtime Framework: it adapts the message format to whatever the downstream engine expects, without the runner knowing or caring.

SSE
Streaming
-> CIR ->
Chat
Completions
Chat
Completions
-> CIR ->
Gemini
JSON
SSE
Streaming
-> CIR ->
OAI-compat
Local
All translations bidirectional through Canonical IR
Local Model Support

Sensitive work stays
on your machine.

Ollama, DeepSeek, Qwen, llama.cpp, vLLM, text-generation-webui: any model served via an OAI-compatible API connects to ARF as a first-class engine. Governance, audit trail, and steering all work identically for local models. Route your most sensitive tasks to a model that never phones home.

# Route sensitive work to a local model # arf-routing.toml [[dispatch.rules]] match_tags = ["proprietary", "confidential", "pii"] engine = "local/ollama" # Served by any OAI-compat local inference server engine_url = "http://localhost:11434/v1" # Never leaves the machine. No cloud API call. require_local = true [[dispatch.rules]] # Everything else goes to the cloud match_all = true engine = "anthropic/claude"