Provider integration

Use your OpenAI API key with every coding agent

Add OpenAI to AutoJev once. Every connected agent — Codex, Claude Code, Gemini CLI, OpenCode, Hermes — can then call your OpenAI models through one local gateway at http://127.0.0.1:9527/v1.

  • Built-in preset: https://api.openai.com/v1
  • Responses or Chat Completions, chosen per model
  • Claude Code reaches OpenAI via Messages conversion
  • Requests go straight from your machine to OpenAI

Providers

+ Providers

OpenRouter

https://openrouter.ai/api

DeepSeek

https://api.deepseek.com

OpenAI

https://api.openai.com/v1

Ollama

http://127.0.0.1:11434

One OpenAI key, every agent

Most coding agents want their own copy of your OpenAI key, their own base URL and their own model list. Change a model and you edit three config files. AutoJev keeps the provider in one place: you store the key once, add the models you want, and connect agents to the local gateway instead of to OpenAI directly.

Requests still go from your machine to api.openai.com with your own key. AutoJev has no account, no cloud relay and adds no markup. It only decides which model handles a request, converts the protocol when the agent and the model speak different APIs, and logs metadata such as tokens, latency and estimated cost locally.

Add OpenAI in AutoJev

Everything happens on the Providers and Models pages of the desktop app.

  1. 1

    Create the provider

    Open Providers → Add provider and choose OpenAI as the provider type. The base URL is filled in for you. The provider name (here `openai`) becomes the prefix of every model ID agents see.

    text
    Provider type: OpenAI Provider name: openai Base URL: https://api.openai.com/v1 API type: OpenAI Responses (or OpenAI Chat Completions) API key: sk-…
  2. 2

    Run the provider test

    Enter a test model ID and click Test. AutoJev sends one minimal text request in the selected API format and shows the exact test endpoint, for example https://api.openai.com/v1/responses. Upstream usage charges may apply. A passing test enables the provider.

  3. 3

    Add your models

    On Models, add each OpenAI model with its model ID exactly as OpenAI lists it, its upstream API type, input/output/cache prices per 1M tokens, a tier (Fast, Balanced or Strong), capability flags and context window. Prices drive the estimated cost in Logs and Usage and the Lower cost routing preference.

  4. 4

    Connect an agent

    On Agents, select one or more OpenAI models (or a route that contains them) and connect. AutoJev backs up the agent's config, points it at the gateway and restores it when you disconnect. Single models appear to agents as `openai/<model_id>`.

Which upstream API type to set

The API type describes what OpenAI serves for that model, not what the agent speaks. AutoJev converts between the three protocols in all six directions.

AgentAgent speaksModel API type: ResponsesModel API type: Chat Completions
CodexResponsesNative passthroughConverted
Claude CodeAnthropic MessagesConvertedConverted
OpenCode, Kimi, Grok Build, OpenClaw, OMPChat or MessagesConvertedNative when Chat
HermesChat CompletionsConvertedNative passthrough
Gemini CLIGemini bridge → ChatConvertedNative after bridge

Native requests keep provider-specific fields. Converted requests drop features that have no equivalent; see the limits below.

What Codex ends up with

When you connect Codex with OpenAI models selected, AutoJev writes an `autojev` provider into ~/.codex/config.toml and a model catalog next to it. Your original file is backed up first.

~/.codex/config.toml (excerpt)
model = "openai/<model_id>" model_provider = "autojev" model_catalog_json = "/Users/you/.codex/autojev-models.json" web_search = "disabled" [model_providers.autojev] name = "AutoJev" base_url = "http://127.0.0.1:9527/v1" wire_api = "responses" [model_providers.autojev.http_headers] x-autojev-agent = "codex"

What you get on top of a raw key

Routes, not hard-coded models

Put OpenAI models into a route such as `autojev/quality` with load balancing or intelligent selection, and mix them with models from other providers.

Failover before output

On connection errors or HTTP 401/402/403/408/429/5xx before output starts, AutoJev retries another candidate in the route and respects Retry-After.

Measured speed

Speed tests record first-content latency and output tokens/s for each OpenAI model so the Lower latency preference picks from real measurements.

Conversion has limits

When a request is converted, `previous_response_id`, hosted tools such as web search, and audio/file content are rejected, and thinking blocks are dropped. Conversion never adds vision, tools or reasoning to a model that lacks them. For Codex workflows that rely on hosted tools, keep the model on its native Responses API.

See every OpenAI call in Logs

Each request shows agent, model, provider, route ID, tokens, first byte, total time, estimated cost and status. Prompts and responses are not stored.

Logs

TimeModelStatus
14:02:31deepseek/deepseek-chat200
14:02:18openrouter/claude-sonnet200
14:01:55ollama/qwen3:14b200
14:01:40openai/gpt-5-mini429
14:01:12deepseek/deepseek-chat200

Frequently asked questions

Should I set OpenAI models to Responses or Chat Completions?

Use the API OpenAI actually serves for that model. If a model is available on both, Responses gives Codex a native passthrough, while Chat Completions is native for Chat-speaking agents such as Hermes. Either way AutoJev converts for the other agents.

Can Claude Code use OpenAI models through AutoJev?

Yes. Claude Code sends Anthropic Messages to the gateway, and AutoJev converts them to the OpenAI model's API type and converts the response back, including streaming and function tools.

Does AutoJev see or resell my OpenAI usage?

No. Requests go directly from your machine to OpenAI with your key. AutoJev adds no markup and has no cloud relay. Request logs keep metadata only, not prompts or responses.

Where is my OpenAI key stored?

Locally in ~/.autojev/autojev.db. Keys are currently stored unencrypted, so protect that file like any other local credential.

Why did my converted Codex request fail?

Codex features without an equivalent in the target API, such as hosted web search or previous_response_id, are rejected during conversion. Point Codex at a model whose API type is Responses to keep them.

Keep exploring

Updated 2026-10-14

Give every agent the right model.

Install AutoJev, add the providers you already pay for, and connect your agents in one click. Everything stays on your machine.

Free & open source · macOS · Windows · Linux