Docs

Codex CLI custom Responses provider

Use Codex CLI or the Codex TUI with abliteration.ai as a custom OpenAI Responses provider. Configure base_url, env_key, model_providers, and wire_api = responses.

Updated 2026-08-04

This guide shows how to use Codex CLI or the Codex TUI with abliteration.ai as a custom OpenAI Responses provider. Codex can target providers that implement the OpenAI Responses API, and abliteration.ai exposes /v1/responses as a first-class public endpoint.

Setup is entirely declarative: define a named provider block, point base_url at https://api.abliteration.ai/v1, set wire_api to responses, supply your ak_ API key through ABLITERATION_API_KEY, and select abliterated-model.

Disable native web search with -c 'tools.web_search=false', because abliteration.ai does not support Codex web search yet.

Use plain codex for an ongoing interactive TUI session. The initial prompt is optional, so the simplest start is just codex plus your provider flags. Use codex exec only for one-off automation.

# Start an interactive Codex session with no initial prompt
export ABLITERATION_API_KEY="ak_YOUR_API_KEY"

# If you are in a scratch directory, initialize Git once first.
git init

codex \
  -s workspace-write \
  -m abliterated-model \
  -c 'tools.web_search=false' \
  -c 'model_provider="abliteration"' \
  -c 'model_providers.abliteration.name="abliteration.ai"' \
  -c 'model_providers.abliteration.base_url="https://api.abliteration.ai/v1"' \
  -c 'model_providers.abliteration.wire_api="responses"' \
  -c 'model_providers.abliteration.env_key="ABLITERATION_API_KEY"' \
  -c 'model_providers.abliteration.supports_websockets=false'

# Then type your first prompt inside Codex, for example:
# Create a test html page

Prerequisites

Before you start, make sure the basics are in place.

Provider settings

Codex needs a named custom provider with the Responses wire format enabled.

SettingValuePurpose
model_providerabliterationSelects your custom provider block for this run.
model_providers.abliteration.nameabliteration.aiReadable provider label shown by Codex.
model_providers.abliteration.base_urlhttps://api.abliteration.ai/v1Targets the public abliteration.ai API domain.
model_providers.abliteration.wire_apiresponsesTells Codex to speak the OpenAI Responses API.
model_providers.abliteration.env_keyABLITERATION_API_KEYReads your bearer token from the shell environment.
model_providers.abliteration.supports_websocketsfalseUses the HTTP Responses path instead of websocket transport.
tools.web_searchfalseDisables Codex web search, which is not supported by abliteration.ai yet.

Migrating from chat_completions or mlx_lm configs

Some local or experimental Codex provider configs use wire_api = "chat_completions", including setups that point at local model servers.

For abliteration.ai, keep the custom-provider pattern but switch the provider fields together.

Start a session

Use plain codex to open the interactive session UI. That keeps the conversation alive so you can continue giving follow-up prompts in the same session.

Interactive codex does not support --skip-git-repo-check, so in a scratch directory you should run git init first.

You do not need to pass an initial prompt on the command line. Start the session first, then type your request in the TUI.

export ABLITERATION_API_KEY="ak_YOUR_API_KEY"

# In a scratch directory, do this once:
git init

codex \
  -s workspace-write \
  -m abliterated-model \
  -c 'tools.web_search=false' \
  -c 'model_provider="abliteration"' \
  -c 'model_providers.abliteration.name="abliteration.ai"' \
  -c 'model_providers.abliteration.base_url="https://api.abliteration.ai/v1"' \
  -c 'model_providers.abliteration.wire_api="responses"' \
  -c 'model_providers.abliteration.env_key="ABLITERATION_API_KEY"' \
  -c 'model_providers.abliteration.supports_websockets=false'

Optional initial prompt

If you prefer, you can still attach the first prompt directly on the command line. This starts the same interactive session, just with the first user message prefilled.

export ABLITERATION_API_KEY="ak_YOUR_API_KEY"

codex \
  -s workspace-write \
  -m abliterated-model \
  -c 'tools.web_search=false' \
  -c 'model_provider="abliteration"' \
  -c 'model_providers.abliteration.name="abliteration.ai"' \
  -c 'model_providers.abliteration.base_url="https://api.abliteration.ai/v1"' \
  -c 'model_providers.abliteration.wire_api="responses"' \
  -c 'model_providers.abliteration.env_key="ABLITERATION_API_KEY"' \
  -c 'model_providers.abliteration.supports_websockets=false' \
  "Create a test html page"

Resume later

Codex sessions can be reopened after you close the terminal. This is optional and not required to start a session.

# Resume the most recent Codex session
codex resume --last

# Or resume a specific session id
codex resume <session_id>

One-off commands

Use codex exec when you only want a single prompt-response run instead of an ongoing session.

export ABLITERATION_API_KEY="ak_YOUR_API_KEY"

codex exec --skip-git-repo-check \
  -m abliterated-model \
  -c 'tools.web_search=false' \
  -c 'model_provider="abliteration"' \
  -c 'model_providers.abliteration.name="abliteration.ai"' \
  -c 'model_providers.abliteration.base_url="https://api.abliteration.ai/v1"' \
  -c 'model_providers.abliteration.wire_api="responses"' \
  -c 'model_providers.abliteration.env_key="ABLITERATION_API_KEY"' \
  -c 'model_providers.abliteration.supports_websockets=false' \
  "Reply with OK only. Do not run any commands."

How it works

Codex sends OpenAI Responses-style requests to abliteration.ai, including follow-up tool-call turns during agent runs.

Scratch directories

Codex prefers to run in a trusted Git directory. Interactive codex and non-interactive codex exec behave differently here.

Troubleshooting

The most common setup issues are configuration or local sandboxing.

FAQ

Frequently asked questions.

Can I use Codex CLI with abliteration.ai?

Yes. Codex CLI can target custom providers that implement the OpenAI Responses API. Point Codex at https://api.abliteration.ai/v1, set wire_api to responses, and authenticate with your abliteration.ai ak_ API key.

Which endpoint does Codex use on abliteration.ai?

Codex uses POST /v1/responses. Set model_providers.abliteration.base_url to https://api.abliteration.ai/v1 so the CLI sends Responses API requests to the correct path.

What if my old Codex TUI config used wire_api = chat_completions or mlx_lm?

Treat that as a provider-specific setting. For abliteration.ai, set wire_api to responses, base_url to https://api.abliteration.ai/v1, and model to abliterated-model so Codex sends /v1/responses requests.

Should the Codex base URL include /v1?

Yes. For Codex, use https://api.abliteration.ai/v1 as the provider base URL. Codex appends the Responses route under that base.

Which model should I select in Codex?

Use abliterated-model unless you have published another model id on your abliteration.ai deployment. Do not assume Codex's default provider models will exist on a custom gateway.

Why is supports_websockets set to false?

Codex works against abliteration.ai over the HTTP Responses API, so websocket transport should be disabled for this provider configuration.

How do I let Codex create or edit files?

Use a writable sandbox such as -s workspace-write for prompts that should modify files. Read-only is fine for verification prompts that only need a text reply.

How do I start a continuous Codex session instead of a one-off prompt?

Run plain <code>codex</code> instead of <code>codex exec</code>. The prompt argument is optional, so you can start the interactive TUI with no initial prompt and then type your request once the session opens. If you are in a scratch directory, run <code>git init</code> first because interactive <code>codex</code> does not support <code>--skip-git-repo-check</code>.

Does Codex CLI support streaming responses from abliteration.ai?

Yes. Codex uses the OpenAI Responses streaming format, and abliteration.ai's <code>/v1/responses</code> endpoint supports native SSE streaming for interactive and agentic runs.

Can I use Codex CLI with an uncensored model via abliteration.ai?

Yes. Codex CLI does not impose provider-side refusal filters of its own &mdash; it forwards prompts to whichever provider you configure. Pointing Codex at abliteration.ai's <code>abliterated-model</code> gives you a less-censored backend for legitimate coding and research workflows.