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
Protocol
Proxy Support
Tool Call Gov.
Session Track
Claude Code
Anthropic wire format
Anthropic SSE
✓ Full
✓ Full
✓ Full
Codex CLI
OpenAI wire format
Chat Completions
✓ Full
✓ Full
✓ Full
Gemini CLI
Google wire format
Gemini JSON
✓ Full
~ Partial
✓ Full
Ollama / DeepSeek
local OAI-compat
OpenAI-compat
✓ Full
✓ Full
✓ Full
Qwen / any local
OAI-compat endpoint
OpenAI-compat
✓ Full
✓ Full
~ Session only
Custom CLI
Any HTTP
~ Via adapter
~ Depends
~ Via SDK

✓ Full complete support with all ARF features  ·  ~ Partial core functionality, some features limited  ·  ✗ No 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. All governance features, all audit trail features, all steering capabilities 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"