Что понадобится
- Терминал - тот, что уже стоит в системе. Отдельный ставить не нужно.
- Аккаунт хотя бы у одного из двух: у Claude Code это аккаунт Anthropic, у Codex - аккаунт OpenAI.
- Одна своя маленькая задача, на которой будешь сравнивать. Не выдуманная, а настоящая.
Если слова «агент» и «скилл» пока не оформились, загляни в словарь: что такое агент и что такое скилл.
Главное, что надо понять сразу
Это две программы одного вида, а не два места, за которые они дерутся.
Обе живут в терминале. Обе видят папку проекта целиком, сами читают и правят файлы, сами запускают команды. Обе подключают внешние источники через MCP. Обе понимают скиллы - папку с файлом SKILL.md внутри. Обе умеют работать без человека, одной строкой в скрипте.
Поэтому «кто победил» - вопрос не туда. Рабочий вопрос звучит иначе: что из моего списка задач кому отдать.
Дальше я сравниваю не по обзорам, а по тому, что видно в терминале на машине, где стоят обе. Версии, на которых проверял: Claude Code 2.1.259 и Codex CLI 0.152.1. Обновляются они часто, так что смотри не на мои цифры, а на свои - claude --version и codex --version.
Первое, что стоит сделать самому
Открой справку каждой и прочитай список команд:
claude --help
codex --help
Это не формальность. Список команд и есть характер инструмента - по нему видно, что авторы считали главным.
У Codex в списке команд есть exec (работа без диалога), review (ревью кода отдельной командой), sandbox (прогнать любую команду в песочнице), apply (наложить последний диф на рабочую копию), resume и fork (вернуться в прошлый разговор или ответвиться от него), queue (положить сообщение в идущую сессию).
У Claude Code - agents, attach, logs, stop, respawn (фоновые сессии: запустил, ушёл, вернулся), ultrareview (ревью ветки), import (перенос настроек из другого агента), doctor, install.
Общего тоже много: doctor, update, mcp, plugin, вход и выход из аккаунта есть у обеих.
Где они устроены одинаково
- Скилл - это папка с файлом
SKILL.md. Формат общий: сверху имя и описание, ниже инструкция. Файл, написанный под одну программу, читается и второй. - Плагины и маркетплейсы. И там, и там сначала подключается источник (
claude plugin marketplace add,codex plugin marketplace add), потом ставится сам плагин. - MCP. Ветка
mcpесть у обоих: добавить сервер, посмотреть список, убрать, войти по OAuth. И обратный режим тоже: программа сама становится MCP-сервером для другой -claude mcp serve,codex mcp-server. - Работа без человека.
claude -p "задача"иcodex exec "задача"печатают ответ и выходят. Из этого собираются ночные прогоны и автоматические проверки. - Возврат в прошлый разговор.
claude --resumeиcodex resume, ответвление ---fork-sessionиcodex fork.
Где расходятся - и это чувствуется в работе
Разрешения: две разные логики
Самая заметная разница, и именно на ней новички спотыкаются.
У Codex два независимых регулятора. Первый - песочница: -s read-only, -s workspace-write, -s danger-full-access. Второй - политика одобрений: -a on-request (агент сам решает, когда спросить) или -a never. Плюс отдельная команда codex sandbox, которой можно прогнать в песочнице свою команду, даже без агента.
У Claude Code регулятор один, зато с именованными режимами: --permission-mode со значениями manual, acceptEdits, auto, plan, dontAsk, bypassPermissions. Режим plan стоит отдельно: агент сначала пишет план и ничего не трогает, пока ты не согласишься.
Коротко: Codex думает категориями «куда ему можно писать», Claude Code - категориями «о чём меня спрашивать».
Файл правил проекта называется по-разному
Claude Code сам ищет в проекте файл CLAUDE.md. Codex ищет AGENTS.md, и у него есть старший брат - AGENTS.override.md, который перебивает обычный.
Это первая причина жалобы «поставил второго агента, а он меня не слушается». Правила лежат в папке, но под чужим именем. Лечится за минуту: положи оба файла с одинаковым текстом.
Настройки: JSON против TOML
Claude Code держит настройки в ~/.claude/settings.json. Внутри - модель, разрешения, переменные окружения, хуки, статусная строка, включённые плагины.
Codex держит их в ~/.codex/config.toml. Внутри - модель, глубина рассуждения ключом model_reasoning_effort, политика одобрений, доверие к конкретным папкам. Хуки у Codex вынесены в отдельный файл, ~/.codex/hooks.json.
Разница не косметическая. В JSON лишняя запятая ломает весь файл, в TOML строки живут независимо. Если правишь настройки руками - TOML прощает больше.
Скиллы: папка против плагина
Claude Code кладёт скиллы в ~/.claude/skills. Туда же команда claude plugin init создаёт заготовку нового.
У Codex своя служебная подборка скиллов приезжает вместе с программой, а стороннее принято ставить плагином: codex plugin add. Это отдельная тема, по шагам разобрана здесь: как поставить скиллы в Codex.
Модель и глубина мышления
Claude Code: флаг --model с коротким именем модели и флаг --effort со значениями от low до max.
Codex: флаг -m для модели, глубина - ключом в конфиге. И одна вещь, которой у Claude Code в справке нет: флаги --oss и --local-provider - Codex умеет работать с локальной моделью через LM Studio или Ollama.
Фоновая работа
Claude Code сделан под «запустил и ушёл»: --bg стартует сессию в фоне, claude agents показывает список, attach возвращает в неё, logs печатает вывод, stop гасит. Плюс --worktree - завести отдельную копию репозитория под задачу одной строкой.
Codex тоже держит несколько сессий, но обращается с ними иначе: codex agents - это просмотр сессий, queue - положить сообщение в ту, что уже идёт.
Ловушка на ровном месте живёт внутри Claude Code: команда claude agents - это список фоновых сессий, а флаг --agents совсем про другое, им ты описываешь подчинённых агентов. У Codex слово одно и значит одно - просмотр сессий.
Ревью кода
codex review - отдельная команда: --uncommitted берёт незакоммиченное, --base <ветка> сравнивает с веткой.
claude ultrareview - ревью ветки, которое считается в облаке.
Здесь как раз тот случай, когда держать оба выгодно: пусть код пишет один, а смотрит на него второй. Свежий взгляд ловит то, что автор уже не видит.
Что видишь / что это значит
| Что видишь | Что это значит |
|---|---|
command not found на claude или codex |
программа не установлена или не в PATH; проверь which claude и which codex |
unrecognized subcommand |
команда из другой ветки; открой --help и найди её в списке |
| спрашивает разрешение на каждый шаг | у Codex это -a on-request, у Claude Code - режим manual |
| правит файлы, ничего не спросив | доступ шире, чем ты думал: -s danger-full-access или bypassPermissions |
| не помнит правила проекта | файл назван не так: Claude Code ищет CLAUDE.md, Codex - AGENTS.md |
| флаг из одной программы не работает в другой | наборы флагов почти не совпадают, а совпавшее написание может значить разное: -c у Claude Code продолжает прошлый разговор, у Codex подставляет настройку |
Кому что отдавать
Победителя не будет, будет разделение.
Codex удобнее, когда работа идёт короткими вызовами из скриптов (codex exec), когда важно жёстко очертить, куда агенту можно писать, когда нужно ревью отдельной командой без диалога и когда хочется попробовать локальную модель без облака.
Claude Code удобнее, когда задача длинная и её хочется отпустить в фон и вернуться, когда нужен режим «сначала план, потом руки», когда работа идёт в нескольких ветках сразу через --worktree, и когда у тебя большая полка скиллов - она лежит одной папкой и не требует упаковки.
Оба сразу разумны, когда есть на чём сравнивать: один пишет, второй смотрит. Только не в одной папке одновременно - две сессии, правящие один файл, затрут друг друга, и виноватого не найдёшь.
Пять ошибок при выборе
- Выбирать по чужому списку задач. У автора обзора другая работа. Твой единственный честный тест - твоя задача в твоей папке.
- Копировать флаги из статьи про другой инструмент. Наборы флагов разные.
--helpбыстрее любой статьи, включая эту. - Ставить оба и работать в одной папке одновременно. Файл затрут, разбираться будешь долго.
- Судить по первой задаче в незнакомом проекте. Оба сильно зависят от того, есть ли в папке файл правил. Пустой проект показывает не программу, а её угадайку.
- Ждать «того самого» и не начинать. Обе обновляются постоянно, свежую версию покажет только
--versionна твоей машине. Любой вывод статьи, включая мой, стареет быстрее, чем ты дочитаешь.
Что дальше
- Что такое Codex - если нужно определение, а не сравнение.
- Что такое Claude Code - то же самое по второму.
- Вайб-кодинг: с чего начать - первый вечер по шагам, инструмент любой.
- Как поставить скиллы в Codex - когда выбор сделан и пора наполнять.
- Каталог скиллов - что можно поставить себе прямо сейчас.
Сам я держу оба и не жалею: пишет один, проверяет второй. А всё, что накопилось за время работы с ними - правила, скиллы, готовые куски настройки, - лежит в ClaudeBase: файлы добавляются в проект по инструкции, и агент читает их прямо в работе, какой бы из двух у тебя ни стоял.