model_catalog_json para alternar a qualquer momento pela lista /model).
Instalação
Download Oficial (Versão macOS)
https://openai.com/en/codex/Instalar via Linha de Comando
Configuração de Variáveis de Ambiente
Configurar Usando Arquivos de Configuração
- Modifique o arquivo de configuração
~/.codex/config.tomlpara adicionar as seguintes configurações:
- Modifique o arquivo de configuração
~/.codex/auth.jsonpara alterar as seguintes configurações:
Configurar via cc-switch
- Execute o CC-Switch e adicione o provider.

- Selecione “AiHubMix” da lista predefinida.

- Insira sua chave no campo “chave de API” e clique em “Adicionar” para salvar as configurações.

- Retorne à página inicial, selecione “AiHubMix” da lista de providers e clique em “Habilitar” para começar a usá-lo.

Usando o Codex
Usando no Terminal
- Abra o terminal, navegue até o diretório do seu projeto e execute o comando
codex.
- Configure as permissões conforme necessário.

- Selecione o modelo de que precisa com base nos seus requisitos.

- Insira linguagem natural; se receber uma resposta normal, a configuração foi bem-sucedida.

Usando no Aplicativo Desktop do Codex
- Abra o aplicativo desktop do Codex e selecione o diretório de trabalho.
- Insira a tarefa na caixa de entrada; se receber uma resposta normal, a configuração foi bem-sucedida.

Referências de Comandos Úteis
Comando de Ajuda
Opções de Comando Completas
Usar modelos personalizados no Codex
Por padrão, o Codex exibe na lista/model apenas os modelos oficiais da OpenAI. Se você quiser selecionar diretamente na lista qualquer modelo disponível na AIHubMix (GLM, Claude, Gemini, DeepSeek, Kimi, Qwen…), pode usar o mecanismo de “modelos personalizados” oficialmente suportado: declare os modelos disponíveis por meio de um arquivo JSON local (model_catalog_json) e direcione as requisições para a AIHubMix usando [model_providers.aihubmix].
Documentação oficial: Advanced Configuration · OSS mode / local providers
Duas formas de integração
A seção “Configuração de Variáveis de Ambiente” anterior nesta página descreve a forma básica; esta seção descreve a forma com modelos personalizados. As diferenças estão abaixo; escolha conforme a sua necessidade:
O fluxo completo tem apenas 4 etapas: gerar o arquivo de catálogo → editar o
config.toml → definir a variável de ambiente → reiniciar e escolher o modelo.
Etapa 1: Gerar o arquivo de catálogo de modelos
O arquivo de catálogo é uma estrutura{ "models": [ ... ] }, em que cada elemento do array descreve um modelo que pode ser selecionado em /model. A seguir, explicamos os campos usando um modelo fixo e, depois, fornecemos um script para gerar em lote os 30 primeiros.
1.1 Entenda primeiro o formato: fixar um modelo
Abaixo está um catálogo mínimo completo comprovadamente analisável pelo Codex (contendo apenas o modeloglm-5.2). Basta salvá-lo como ~/.codex/model-catalogs/custom-models.json para usá-lo; para ter mais modelos, continue adicionando entradas com a mesma estrutura ao array models.
Sobre
base_instructions: é o prompt de sistema desse modelo. No exemplo, usamos uma frase como placeholder, e o modelo funciona normalmente; para obter o desempenho de codificação mais próximo do Codex nativo, substitua-o pelo base_instructions completo de qualquer modelo interno listado em codex debug models --bundled (é exatamente o que faz o script de geração em lote da próxima seção).
O catálogo oficial usa campos em snake_case (
display_name, supported_in_api, visibility). Dois tipos de erro fazem com que todo o catálogo seja descartado e os modelos não apareçam em /model: a falta de um campo obrigatório gera missing field ...; o uso de formatos antigos em camelCase como displayName, hidden ou de valores não reconhecidos gera unknown variant .... Basta seguir o conjunto de campos deste artigo para evitar esses problemas.1.2 Gerar em lote os 30 primeiros
Escrever manualmente várias entradas é propenso à omissão de campos. Para gravar de uma só vez no catálogo os 30 primeiros LLMs da API de lista de modelos da AIHubMix, use o script abaixo — ele clona a partir de um modelo interno usado como template, de modo que os campos obrigatórios (incluindo obase_instructions correto) já vêm completos por natureza e não faltam em nenhuma versão do Codex. Requer curl, python3 e a CLI codex já instalada:
slug, display_name, description, context_window etc.); todos os demais campos obrigatórios são clonados do template interno — exatamente o conjunto de campos da seção 1.1, apenas com base_instructions usando o prompt oficial completo.
O arquivo gerado é relativamente grande (cada entrada contém obase_instructionscompleto, cerca de 1 a 2 MB), o que é normal. Depois de executá-lo, usecodex debug modelspara verificar se ele é analisado corretamente (veja a Etapa 5).
A linha de filtroimage_generationno script foi mantida de propósito: dentre os retornos detype=llm, há pouquíssimos modelos que também trazem a tagimage_generation(comogpt-image-2), inadequados para conversação; o script os ignora automaticamente antes de pegar os 30 primeiros.
Etapa 2: Modificar o config.toml
Edite ~/.codex/config.toml, adicione model_catalog_json no nível raiz e defina o provider aihubmix:
wire_api = "responses" é fundamental: omiti-lo ou defini-lo como chat impede a conexão. As versões recentes do Codex usam apenas a Responses API da OpenAI (/v1/responses); a AIHubMix já é nativamente compatível com a Responses API, então basta apontar para https://aihubmix.com/v1, sem necessidade de criar um proxy de conversão próprio.config.toml deve ficar parecido com o abaixo (os retângulos vermelhos são os itens-chave desta etapa: model / model_provider / model_catalog_json no nível raiz, além da seção [model_providers.aihubmix]):

Etapa 3: Definir a variável de ambiente
Configure a variável de ambiente indicada acima emenv_key (atenção para não deixar espaços ao redor do =):
~/.zshrc / ~/.bashrc para persistência. Obtenha sua chave no console da AIHubMix.
Etapa 4: Reiniciar e escolher o modelo
Reinicie o app / TUI do Codex para que o arquivo de catálogo tenha efeito e, em seguida:/model, são listados todos os modelos declarados no catálogo; use as setas para selecionar e Enter para confirmar:

/model também permite escolher o nível de raciocínio (effort); escolha low / medium / high conforme a necessidade.
Etapa 5: Verificar se está funcionando
- No Codex, digite
/model, confirme que você consegue ver os modelos declarados no catálogo e troque para um deles (por exemplo,glm-5.2). - Faça uma pergunta qualquer para verificar se o caminho está funcionando. Atenção: não confie em “qual modelo você é?” para julgar — em
base_instructionsestá escrito “You are Codex… based on GPT-5”, de modo que todos os modelos se identificarão como GPT-5, e perguntar não revela o modelo real. Para confirmar o modelo efetivamente chamado, faça login no console da AIHubMix, acesse a página “Logs” e veja omodel_iddaquele registro de requisição — essa é a verdade.
Model changed to ..., e a barra de status na parte inferior também mostrará o modelo atual e a janela de contexto (na imagem abaixo, trocou-se para glm-5.2, janela de 258K):

Perguntas frequentes sobre modelos personalizados
-
Os modelos personalizados não aparecem em
/model? Verifique nesta ordem:- Primeiro, execute
codex debug models. Se aparecermissing field ...(o mais comum, falta um campo obrigatório) ouunknown variant ...(nome/valor de campo incorreto), significa que todo o catálogo falhou na análise e foi descartado — basta regerá-lo com o script “clonar template interno” da Etapa 1. - Confirme que
model_catalog_jsonestá no nível raiz doconfig.toml, e não dentro de uma seção[model_providers.*]; - Confirme que o JSON usa os campos oficiais em snake_case e que
visibilityestá comolist; - Se
codex debug modelsjá mostra todos os modelos, mas no aplicativo desktop (Desktop App) restam apenas um ou dois e o modelo atual aparece como “personalizado” — esse é um bug conhecido do aplicativo desktop: ele aplica, sobre o catálogo local, mais uma camada de filtro por uma lista de permissões de slugs oficiais, removendo do seletor os modelos não oficiais (veja as GitHub Issues #19694, #15138). Nesse caso, o modelo ainda é chamado normalmente conforme omodel = "..."noconfig.toml(é possível confirmar nos logs da AIHubMix), apenas o nome não é exibido. Para exibi-lo corretamente, use a CLI / TUIcodexno terminal; no aplicativo desktop, só resta definir explicitamentemodel = "o modelo que você quer"noconfig.tomle aguardar a correção oficial.
- Primeiro, execute
-
O catálogo “substitui”, não “mescla”. O
model_catalog_jsonsubstitui toda a lista de modelos, em vez de acrescentar (comprovado na prática: com apenas 2 modelos no catálogo,codex debug modelsmostra somente esses 2, e todos osgpt-5.xinternos desaparecem). Se você quiser os dois tipos, inclua-os juntos no catálogo personalizado. -
A requisição retorna erro de protocolo / não conecta. Na maioria das vezes, o
base_urlou owire_apido provider não foi configurado corretamente. Para a AIHubMix, é obrigatóriowire_api = "responses"+base_url = "https://aihubmix.com/v1". Se você estiver integrando um terceiro que só suporta Chat Completions, será necessário um proxy de conversão local; usuários da AIHubMix não precisam dessa etapa. -
Reconexões frequentes (“Reconnecting”). Em alguns ambientes de rede/proxy, o WebSocket (WSS) não funciona; é possível adicionar
supports_websockets = falsena seção do provider para forçar o uso de HTTP. -
A análise retorna
missing field ...(por exemplo,missing field base_instructions). A entrada está sem um campo obrigatório. As versões recentes do Codex fazem uma análise rigorosa:base_instructions,availability_nux,upgrade,supports_reasoning_summaries,support_verbosity,default_verbosity,apply_patch_tool_type,truncation_policy,supports_parallel_tool_calls,experimental_supported_toolsetc. devem todos existir. O script “clonar template interno” da Etapa 1 preenche tudo de uma só vez. -
A análise retorna
unknown variant. O JSON do catálogo contém um nome de campo ou valor que o Codex não reconhece (comum em formatos antigos em camelCase comodisplayName/hidden). Basta usar o conjunto de campos em snake_case deste artigo.
Artigos de referência
- Documentação oficial: Advanced Configuration | Configuration Reference
- Referência do formato do catálogo interno oficial: codex-rs/models-manager/models.json
- Guia da comunidade: config.toml do Codex: integre qualquer provider personalizado em 6 linhas
Última atualização: 2026-06-25