Установка Codex на Linux Debian 12
Сначала обновим Node.js до последней версии (если установлен):
npm update -g npm
sudo npm install -g n
sudo n stable
hash -r
Установим Codex:
sudo npm install -g @openai/codex
Настройка
Создадим файл конфигурации в домашнем каталоге:
mkdir -p ~/.codex
nano ~/.codex/config.json
И поместим туда следующее содержимое:
{
"model": "/srv/models/DeepSeek-Coder-V2-Lite-Instruct-Q5_K_M.gguf",
"provider": "ollama",
"providers": {
"ollama": {
"name": "Ollama",
"baseURL": "http://address:port",
"envKey": "OPENAI_API_KEY"
}
},
"approvalMode": "full-auto",
"fullAutoErrorMode": "ask-user",
"notify": true,
"history": {
"maxSize": 1000,
"saveHistory": true,
"sensitivePatterns": []
}
}
Где:
model: полное имя файла модели (без пути), точно так, как оно задано при запуске llama-server
provider: ollama - и только ollama (и name у провайдера должно быть Ollama)*
baseURL: http://address:port своего сервера llama-server
“envKey”: “OPENAI_API_KEY” - обязательный параметр
Все остальные ключи - по необходимости, см. Configuration guide.
- Это не баг, а фича Codex: он всегда требует ввода OPENAI_API_KEY (и он должен быть правильной длинны), даже при использовании своего провайдера. Но, по многочисленным жалобам пользователей, для случая, когда у своего провайдера нет ключа, сделали исключение, но только для провайдера с именем ollama и name у провайдера должно быть Ollama.
В принципе, на этом можно и закончить настройку, но можно создать ещё файл ~/.codex/AGENTS.md:
nano ~/.codex/AGENTS.md
- Always respond with emojis
- Only use git commands when explicitly requested
Запуск llama-server для работы с codex
llama-server должне запускаться с ключём --jinja (либо нужно указать этот ключ в templates), например:
./llama-server --host 0.0.0.0 --port 8080 --ctx-size 8192 --gpu-layers 99 --parallel 4 --jinja --model /path/to/models/DeepSeek-Coder-V2-Lite-Instruct-Q5_K_M.gguf
Запуск Codex
export OPENAI_API_KEY="any"
codex
OPENAI_API_KEY="any" можно (как и другие константы для Codex, например DEBUG=true) записать в файл .env, находящейся в каталоге запуска Codex. Фразу “any” можно изменить на любую не пустую. Более подробно о настройках Codex читать тут.