Integrations
Use FullsendAI with Codex CLI
Set it up#
The one-command way is npx fullsendai connect, which writes the settings below for you and keeps your own values aside so disconnect puts them back. Doing it by hand takes the same settings:
model = "nef-4.0"model_provider = "fullsend"[model_providers.fullsend]name = "FullsendAI"base_url = "https://fullsendai.com/v1"env_key = "FULLSEND_API_KEY"wire_api = "responses"export FULLSEND_API_KEY=fs_live_...codex| Setting | Why |
|---|---|
base_url | FullsendAI's OpenAI-compatible address, ending in /v1. |
env_key | The environment variable Codex reads the key from; the key never goes in the file. |
wire_api = "responses" | Tells Codex to use OpenAI’s Responses API, which FullsendAI serves at /v1/responses. Current Codex releases take only this. |
config.toml. Everything else in it — your other settings, your own profiles, your comments — is left exactly as it is, and disconnect puts back the values FullsendAI replaced.Replacing Codex's own prompt#
Codex sends its own instructions to the model on every call, alongside FullsendAI's system prompt. If you'd rather the model were steered only by FullsendAI's, connect with --bare-prompt — or pick Replace it with FullsendAI's when the CLI asks:
npx fullsendai connect --tools codex --bare-promptThis adds model_instructions_file to your config, pointing at a prompt FullsendAI keeps in ~/.fullsendai/agent-prompt.md. Codex treats that setting as a replacement for its built-in instructions, so its own prompt no longer reaches the model.
The replacement isn't empty. Codex's instructions are what tell the model that edits go through apply_patch, that it should keep going until the task is done, and how to search — leaving those out gives you a model with tools attached rather than a working agent. What the replacement leaves out is the part that steers answers: the identity, and any policy about what to decline.
model_instructions_file you set yourself is left alone unless you pass --bare-prompt, and it comes back exactly as it was on disconnect.FullsendAI's models in the picker#
Codex builds its model menu, with each model's reasoning levels, from a catalog. On macOS and Windows, npx fullsendai connect adds FullsendAI's models to it: the catalog is checked against the Codex you have installed before Codex is pointed at it, and a background job checks it again when Codex or its app updates, so an update doesn't leave Codex unable to start. On macOS that happens the moment Codex changes; on Windows a hidden scheduled task looks every two minutes. Restart Codex, or reopen the ChatGPT app (macOS) or the Codex app (Windows), to see them.
On Linux nothing would keep the catalog current through updates, so the picker keeps listing OpenAI's models. What runs is model in config.toml, which connecting sets; change it with the CLI and start a new session:
fullsendai model glm-5.3-flashBack to ChatGPT's models#
One command switches Codex back to your ChatGPT plan or OpenAI key, and another brings FullsendAI back. Your FullsendAI key and model are kept in between, and FullsendAI stays defined as an inactive provider so a chat you started on it still opens — a full disconnect takes everything out. If the Codex app is open, its engine restarts so the switch shows there at once (its windows stay open); a task Codex is running there stops. ChatGPT's models need your own ChatGPT sign-in or an OpenAI key.
npx fullsendai codex chatgpt # ChatGPT's modelsnpx fullsendai codex fullsendai # FullsendAI's againRecommended models#
| Model ID | Use it for | Price / 1M in / out |
|---|---|---|
nef-4.0 | Security research: code review, exploit analysis, CTFs and pentest tooling. | $0.60 / $2.40 |
Switching models#
- Every connected tool at once:
fullsendai model glm-5.3-flash. This rewrites the window settings too, which Codex won't recompute on its own. - For one run:
codex -m glm-5.3-flash, or with the window:codex -c model="glm-5.3-flash" -c model_context_window=1048575. - In a session:
/model. - For good: change
modelat the top of~/.codex/config.toml.
Troubleshooting#
| Symptom | Fix |
|---|---|
wire_api = "chat" is no longer supported | An older setup: set wire_api = "responses" in config.toml. |
401 invalid_api_key | FULLSEND_API_KEY isn't set in the shell that runs Codex, or the key was revoked. |
404 model_not_found | The model isn't a FullsendAI ID (an OpenAI name like gpt-…, say). Use one from Models. |
402 insufficient_quota | Add credit or turn on auto top-up. |
Every call Codex makes shows in Logs with its status and reason.
Stuck? Email [email protected]System statusChangelog