Docs

Using Codex CLI with abliteration.ai

Use Codex CLI with abliteration.ai as a custom OpenAI Responses provider. Set ABLITERATION_API_KEY, point base_url at api.abliteration.ai/v1.

Updated 2026-04-16

This guide shows how to use Codex CLI with abliteration.ai as a custom OpenAI Responses provider. Codex CLI can target any provider that implements 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.

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.