Skip to the content.

Agent harnesses and frameworks fak supports

fak serve speaks the wires your stack already speaks: OpenAI Chat Completions, Anthropic Messages, and MCP. So any harness that lets you set a base URL drops the gate in front with no code change. You point the tool at fak, the kernel adjudicates every tool call the agent proposes, and your agent, model, and prompts stay the same.

This page lists the coding agents, IDEs, and frameworks that work this way. Every row is drawn from the compatibility matrix, which surveyed 47 targets and found that 41 of them expose a custom base URL outright (4 more do so partially). The matrix is the master source — it carries the exact repoint key and a source link for each row, so this page links there rather than duplicating long config strings.

For the copy-paste recipe and the 60-second offline proof, start at the integration index.


First-class guides

These five have a dedicated walkthrough. Each guide names the wire, the repoint key, and a worked end-to-end setup.

Harness Wire Repoint key Guide
Claude Code Anthropic Messages ANTHROPIC_BASE_URL (or fak guard -- claude) claude.md
Cursor MCP, or OpenAI Chat Completions proxy MCP server entry, or a custom OpenAI-compatible endpoint cursor.md
OpenAI Codex OpenAI Chat Completions OPENAI_BASE_URL openai-codex.md
OpenCode OpenAI Chat Completions OPENAI_BASE_URL (or fak guard --provider openai -- opencode) claude.md#opencode
Hermes Agent (NousResearch) OpenAI Chat Completions OPENAI_BASE_URL / ~/.hermes/config.yaml model.base_url (or fak guard -- hermes) hermes.md

The one-command front door for Claude Code is fak guard -- claude: it starts the gateway in-process, injects the base URL into the child only, and proxies the real Anthropic API in passthrough. OpenCode fronts the same way over --provider openai. Both are covered in the Claude Code guide.


Coding agents and CLIs

Interactive coding agents and CLIs, sourced row-by-row from the matrix. Each speaks a wire fak serve exposes, so the gate sits in front of whichever model serves the tool. The exact env var, flag, or config field for every row is in the compatibility matrix.

Harness Wire Custom base URL
Aider OpenAI Chat Completions (and others via LiteLLM); Anthropic Messages for Claude models Yes
Hermes Agent (NousResearch) OpenAI Chat Completions (custom provider; OpenAI tools[] function-calling) Yes
Cline (VS Code) OpenAI Chat Completions and Anthropic Messages Yes
Roo Code OpenAI Chat Completions (OpenAI-native tool-calling); also an Anthropic provider Yes
Kilo Code OpenAI Chat Completions (OpenAI Compatible provider) Yes
Goose (Block) OpenAI Chat Completions and Anthropic Messages (pluggable provider layer) Yes
Zed editor OpenAI Chat Completions (native + openai_compatible) and Anthropic Messages Yes
Continue.dev OpenAI Chat Completions; also an anthropic provider for Claude Yes
Qwen Code OpenAI Chat Completions (official OpenAI Node.js SDK) Yes
Gemini CLI (Google) Gemini (native Generative Language API) Partial
OpenHands Whatever LiteLLM normalizes to (OpenAI, Anthropic, etc.) Yes
Windsurf (Codeium / Devin Desktop) Native/proprietary backend (Codeium / Cognition) No

Two rows are honestly less than a clean repoint, exactly as the matrix grades them:


Agent frameworks and SDKs

Libraries you build agents with. Each repoints its OpenAI-compatible client at the gate; several also speak Anthropic or Gemini natively, which fak serve can front too. The exact constructor arg, env var, or config field for each is in the compatibility matrix.

Framework Wire Custom base URL
LangChain (ChatOpenAI) OpenAI Chat Completions Yes
LangGraph OpenAI Chat Completions (via the underlying LangChain model) Yes
LlamaIndex OpenAI Chat Completions Yes
CrewAI OpenAI Chat Completions (routed through LiteLLM) Yes
AutoGen / AG2 OpenAI Chat Completions Yes
OpenAI Agents SDK (Python) OpenAI Responses API (default) / OpenAI Chat Completions Yes
Pydantic AI OpenAI Chat Completions / Responses; also native Anthropic, Gemini Yes
smolagents (HuggingFace) OpenAI Chat Completions (OpenAIServerModel); also LiteLLM, InferenceClient Yes
Google ADK Gemini natively; OpenAI Chat Completions and others via the LiteLlm wrapper Yes
AWS Strands Agents Bedrock Converse natively; OpenAI Chat Completions via OpenAIModel; LiteLLM Yes
Microsoft Semantic Kernel OpenAI Chat Completions / Azure OpenAI; native Anthropic, Gemini Partial
Vercel AI SDK Provider-abstracted; OpenAI and OpenAI-compatible; native Anthropic, Google Yes
Mastra (TypeScript) Built on the Vercel AI SDK; OpenAI / OpenAI-compatible plus its own gateways Yes
DSPy LiteLLM-backed; OpenAI Chat/Text Completions via openai/<model> Yes

One row is Partial, as the matrix grades it:

For any framework not in the table, the rule still holds: if it lets you set the model’s base URL, fak fronts it via the OpenAI-compatible wire. The universal recipe in the integration index is the one-paste pattern, and the compatibility matrix is the sourced list.


Reference (the witnessed sources behind this page)