Skills DirectorySkills Directory
SkillsLearnSecurityCategoriesDocsCommunityBlog
Sign InSubmit Skill
Skills Directory

Security-tested agent skills for Claude, coding agents, and AI workflows.

Directory

  • Browse Skills
  • All Skills A–Z
  • Claude Skills
  • Claude Code Skills
  • Agent Skills
  • Categories
  • Authors
  • Submit a Skill

Learn

  • Learn Hub
  • Install Claude Skills
  • Write SKILL.md
  • Skills vs MCP
  • Directories Compared

Security

  • Security
  • Methodology
  • Secure Claude Skills
  • Security Badges

Company

  • About
  • Community
  • Blog
  • API Docs
  • Advertise

2026 Skills Directory. All rights reserved.

ProTermsPrivacyRefunds
Back to skills

Codex Cli

CSecurity

Запуск внешнего агента OpenAI Codex CLI (`codex exec`) из текущей сессии. Используй, когда пользователь прямо называет исполнителем внешнюю модель — «сделай это через ChatGPT», «пусть напишет GPT», «отправь в чатжпт», «спроси у кодекса», «прогони через codex»; когда просит второе мнение или проверку решения у другой модели — «что скажет другая модель», «second opinion»; когда просит сгенерировать растровое изображение — иконку, картинку, логотип, мокап, фон, текстуру; когда просит отдать code...

12 stars
0 votes
0 copies
0 views
Added 9/28/2026
ai-agentsrustbashgitapi

Works with

claude codecliapimcp

Security Analysis

C67/100
criticalPipes output to a shell interpreter
mediumInstalls packages at runtime which could introduce malicious dependencies

Scanned 9/28/2026

Install to Claude Code

$npx -y skills add mr-ske1r/1c-ai-devstart --skill codex-cli --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Codex Cli?

Add the live security badge to your README — it updates automatically with every re-scan.

Security grade badge for Codex Cli
[![Security: C — Skills Directory](https://www.skillsdirectory.com/api/skills/mr-ske1r-codex-cli/badge)](https://www.skillsdirectory.com/skills/mr-ske1r-codex-cli)

More formats (shields.io, HTML) on the badges page.

Files
SKILL.md
---
name: codex-cli
description: "Запуск внешнего агента OpenAI Codex CLI (`codex exec`) из текущей сессии. Используй, когда пользователь прямо называет исполнителем внешнюю модель — «сделай это через ChatGPT», «пусть напишет GPT», «отправь в чатжпт», «спроси у кодекса», «прогони через codex»; когда просит второе мнение или проверку решения у другой модели — «что скажет другая модель», «second opinion»; когда просит сгенерировать растровое изображение — иконку, картинку, логотип, мокап, фон, текстуру; когда просит отдать codex'у правку, рефакторинг или генерацию кода; когда просит внешнее ревью изменений репозитория, коммита или ветки. Разбирает запуск целиком: поиск бинарника, выбор песочницы, чтение ответа, разбор отказов и то, что уходит наружу. Не для ревью и правок силами самой сессии и не для схем и диаграмм, которые рисуются в SVG или HTML."
---

# Codex CLI

`codex` — агент OpenAI, живущий отдельным процессом: получает промпт, сам ходит по файлам,
сам запускает команды и возвращает финальный текст. Из сессии он вызывается пакетно,
подкомандой `exec`.

**Скилл требует того, чего в проекте может не быть.** Codex CLI ставится отдельно и работает
по платной подписке OpenAI (ChatGPT-аккаунт либо ключ API) — это не часть Claude Code и не часть
поставки 1С. Нет ни того, ни другого — скажи об этом и делай задачу силами самой сессии,
а не подбирай обходной путь.

## Перед запуском

```bash
codex --version
```

Команды нет — остановись и скажи пользователю поставить: `npm i -g @openai/codex`. **Путь
к бинарнику не зашивай и не ищи по диску:** на каждой машине он свой, а npm-глобал кладёт
`codex` в PATH. Нет авторизации — `codex login`; браузерный вход недоступен — `codex login --device-auth` либо `codex login --with-api-key`. Общая диагностика установки, конфига
и аутентификации — `codex doctor`.

## Единый шаблон запуска

```bash
codex exec -s read-only --skip-git-repo-check -C "$PWD" -o "$ОТВЕТ" - <<'EOF'
<промпт>
EOF
```

- Промпт передаётся **только** через heredoc, а на месте аргумента стоит `-`. Дашь промпт
  и аргументом, и на stdin — codex склеит их: аргумент станет промптом, stdin приедет
  отдельным блоком `<stdin>`.
- Heredoc обязательно `<<'EOF'` в одинарных кавычках, иначе bash развернёт `$` внутри промпта.
- `$ОТВЕТ` — файл во временном каталоге сессии, а при его отсутствии в системном temp.
  **В каталог проекта не писать:** файл ответа попадёт в git.
- Timeout в Bash-тулзе — от 180000 (3 мин), тяжёлые задачи — до 600000.
- Русский текст проходит в обе стороны: промпт и файл ответа — UTF-8.
- Промпт пишется по контракту из `references/prompting.md`: одна задача на запуск, форма ответа
  названа, политика по умолчанию задана. «Посмотри и скажи, что думаешь» — не промпт.

## Модель не передаётся

`-m` по умолчанию **не ставится**. Модель берётся из `~/.codex/config.toml` пользователя — там
его текущий выбор, и он новее любого списка, который можно записать в скилл. Список доступных
моделей CLI не отдаёт, поэтому таблицы моделей здесь нет намеренно.

`-m` появляется, только когда пользователь назвал модель сам. Устаревшее или недоступное имя
не деградирует молча, а валит запуск:

```
ERROR: {"type":"error","status":400,…"The 'X' model is not supported when using Codex with a ChatGPT account."}
```

Какая модель отработала — видно в шапке stdout (`model:`) рядом с режимом песочницы и уровнем
рассуждений. Уровень рассуждений тоже берётся из конфига; перебить разово —
`-c model_reasoning_effort="high"` (либо `minimal`, `low`, `xhigh`).

## Что уходит наружу

Всё, что попало в промпт, и всё, что codex прочитал на диске, уходит в OpenAI. Для проекта 1С
это код конфигурации заказчика, а иногда и данные из выгрузок.

- Не отправляй того, чего пользователь не называл сам: пароли, строки подключения, содержимое
  локальных настроек, выгрузки с персональными данными.
- Промпт собирай из минимума — конкретный вопрос и нужные фрагменты, а не «посмотри проект».
- Сомневаешься, можно ли отдавать этот кусок, — спроси до запуска. Отправка необратима.
- Результаты MCP-инструментов уходят туда же: то, что сервер вернул Codex'у, — это данные проекта.
- Всё это остаётся и на диске: `~/.codex/sessions/*.jsonl` хранит промпт, вывод команд и ответы
  MCP открытым текстом. Разовый запуск на коде заказчика — с `--ephemeral`: файл сессии не пишется,
  но и `resume` для неё невозможен.

## Песочница

Дефолт — `-s read-only`: codex читает и рассуждает, но не пишет. Повышение уровня — отдельное
решение, названное вслух и разрешённое пользователем, а не «заодно».

| Режим | Когда | Чем платим |
|---|---|---|
| `-s read-only` | вопрос, разбор, второе мнение | ничего не изменится |
| `-s workspace-write` | правка файлов, **и генерация изображения тоже** | правки прилетают молча |
| `--dangerously-bypass-approvals-and-sandbox` | не применять | снимает песочницу целиком |

Запись вне рабочего каталога решается флагом `--add-dir <КАТАЛОГ>`, а не снятием песочницы.

Перед `-s workspace-write` в каталоге проекта рабочее дерево должно быть чистым или изменения
закоммичены — иначе правки codex'а и свои потом не разделить.

## Сценарии

| Задача | Команда |
|---|---|
| второе мнение, разбор кода или текста | шаблон выше как есть |
| ревью незакоммиченных изменений | `codex exec review --uncommitted` |
| ревью против ветки | `codex exec review --base <ветка>` |
| ревью коммита | `codex exec review --commit <sha>` |
| оспорить изменение: «разнеси», «найди дыры», «что сломается в бою» | `references/adversarial-review.md` — шаблон под 1С и схема JSON |
| правка или рефакторинг кода | шаблон + `-s workspace-write` |
| уточнить, продолжить разговор той же сессией | `codex exec resume --last`, раздел «Продолжение диалога» |
| независимый разбор механизма второй моделью | раздел «Паттерн: независимый разбор» |
| генерация изображения | `references/image-gen.md` — открой перед запуском |

**`review` — не `exec` с другим промптом, а отдельная подкоманда с другим набором флагов:**
`-s` и `-C` она не принимает вовсе. Значит запускать её надо из каталога самого репозитория,
а режим песочницы она возьмёт из конфига пользователя. Свои указания ревьюеру передаются
позиционным промптом или тем же `- ` с heredoc.

Цель ревью: рабочее дерево грязное — `--uncommitted`; чистое — `--base` против ветки по умолчанию
(`git symbolic-ref refs/remotes/origin/HEAD`, иначе `main`/`master`/`trunk`). Ответ `review` — текст:
вводный абзац, затем `Full review comments:` со строками `[P1]`/`[P2]` и адресом `файл:строки`.
`--output-schema` подкоманда `review` игнорирует молча — структурированный результат даёт только
`exec` со схемой, см. `references/adversarial-review.md`. Длинное ревью запускай в фоне
(`run_in_background`) и забирай ответ из `-o`, когда придёт уведомление.

## Продолжение диалога

```bash
codex exec resume --last --skip-git-repo-check -o "$ОТВЕТ" - <<'EOF'
<следующий вопрос>
EOF
```

Сессия продолжается с полным контекстом: Codex помнит и вопрос, и свой ответ. `--last` берёт
последнюю сессию **этого каталога** — сессии фильтруются по cwd; конкретную задаёт её id из шапки
stdout (`session id:`). `--skip-git-repo-check` нужен так же, как при первом запуске: без него
в нетрастовом каталоге `resume` падает. Ни `-s`, ни `-C` у `resume` нет — песочницу и каталог
на ходу не сменить.

## MCP у Codex — свой

Codex **не читает** `.mcp.json` проекта. Его серверы описаны в `~/.codex/config.toml`, список —
`codex mcp list`. Видеть инструмент и мочь его вызвать — разное:

- **В пакетном режиме проходят только инструменты, разрешённые поимённо** в файле конфига
  (`[mcp_servers.<сервер>.tools."<инструмент>"]` с `approval_mode = "approve"`; у серверов
  из плагинов путь начинается с `plugins."<плагин>".`). Остальные отклоняются с текстом
  `MCP tool call requires approval, but approval policy is never`. `-c` из командной строки до
  этих ключей не достаёт. Режим `default_tools_approval_mode = "writes"` различает чтение
  и запись по аннотациям инструментов — у сервера без аннотаций он не работает.
- **MCP-серверы работают вне песочницы.** `-s read-only` не остановит пишущий инструмент, если
  тот разрешён. Разрешать — только читающие.
- **Рабочий каталог сервера — не каталог проекта.** Сервер из плагина стартует в каталоге
  плагина; если инструмент принимает путь к корню проекта параметром, передавать его в каждом
  вызове и писать это в промпт явно.
- Самоотчёт Codex о своих инструментах ненадёжен: на один и тот же вопрос он отвечал по-разному
  в разных запусках. Доказательство доступности — только фактический вызов.

## Паттерн: независимый разбор второй моделью

Цель — проверить **свой** вывод о механизме, а не получить «мнение вообще».

1. Сначала свой разбор; вывод записан до запуска Codex — иначе второй ответ подстроится под первый.
2. Codex получает ту же постановку и те же инструменты (`-s read-only`, те же MCP-серверы), но
   не твой вывод и не наводящие формулировки.
3. Сравнить два вывода. Расхождение — факт для пользователя, а не повод выбрать удобный ответ.

## Чтение ответа

`-o <файл>` кладёт туда финальное сообщение — только его. Читай ответ из файла: в stdout, кроме
него, идут шапка, ход рассуждений и вывод всех запущенных codex'ом команд. Файл пишет сам CLI,
поэтому `-s read-only` его не блокирует.

Нужен машинный разбор — `--json` (JSONL событий) либо `--output-schema <файл.json>`
(JSON Schema, задаёт форму финального ответа). В JSONL: `thread.started` несёт `thread_id` — id сессии
для `resume`; `item.completed` с `item.type` = `agent_message` (текст), `command_execution` (команда
и её вывод), `mcp_tool_call` (сервер, инструмент, результат, статус); `turn.completed` — `usage`
с расходом токенов.

Как подавать ответ Codex пользователю: находки — дословно и в порядке серьёзности, его пометки
«это предположение» сохранять; после ревью ничего не чинить, пока пользователь не назвал, что именно;
Codex упал или не запустился — доложить отказ, а не подменить его ответ своим. Подменённое «второе
мнение» — уже не второе мнение.

## После делегирования правки

`git status` и `git diff` — обязательно. Codex правит файлы напрямую, его изменения ничем
не помечены, и отчёт в ответе не заменяет диф.

## Отказ вместо результата

| Симптом | Причина и что делать |
|---|---|
| `codex: command not found` | не установлен — `npm i -g @openai/codex` |
| 400 «model is not supported» | снять `-m`, отдать выбор модели конфигу пользователя |
| промпт склеился, в логе «Reading additional input from stdin» | промпт задан и аргументом, и на stdin — оставить только heredoc |
| запуск висит на подтверждении | в пакетном режиме подтверждать некому — смотреть `approval_policy` в конфиге |
| правка не записалась | остался `-s read-only` либо цель вне рабочего каталога — `--add-dir` |
| `Not inside a trusted directory and --skip-git-repo-check was not specified` | добавить флаг — и к `exec`, и к `resume` |
| `MCP tool call requires approval, but approval policy is never` | инструмент не разрешён поимённо в `~/.codex/config.toml` |
| «Tool … is not available», хотя в прошлом запуске был | MCP-сервер не поднялся: `codex mcp list`, затем сам сервер и то, через что он стартует |
| bash: `fatal error - add_item … failed` | несколько bash стартуют одновременно — гонка таблицы монтирования MSYS; запускать по одному, снять осиротевшие `codex` |

Отказ не заглаживай пересказом: покажи пользователю строку ошибки из stdout.

Attribution

mr-ske1rmr-ske1r
View sourceMore from mr-ske1r →
SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments (0)

No comments yet. Be the first to comment!

SSkills DirectorySkills Directory

Ship a skill? Prove it's safe.

Free 120-pattern security scan, letter grade, and an embeddable README badge.

Submit a skill

Related Skills

Caveman

Ultra-compressed communication mode that cuts output tokens while keeping technical accuracy. Levels: lite, full, ultra and the wenyan variants. Use for /caveman, "caveman mode", "talk like caveman", "be brief" or "less tokens".

1074701 votes

Hyperplan

Adversarial multi-agent planning skill. Self-orchestrates 5 hostile category members (unspecified-low, unspecified-high, deep, ultrabrain, artistry) via team-mode for ruthless cross-critique debate, distills only the defensible insights, then MANDATORILY hands the distilled insight bundle to the `plan` agent for executable plan formalization. Use when planning needs maximum rigor and surfacing of weak assumptions, blind spots, and over-engineering. Triggers: 'hyperplan', 'hpp', '/hyperplan', ...

695601 votes

Mcp Code Execution

Routes multi-tool workflows through MCP servers for large datasets and pipelines. Use when Bash tool overhead is limiting throughput on data-heavy tasks.

3351 votes

catchup

Recovers the conversation and failed tool calls of a previous Codex, Claude Code, Antigravity, Cline, Copilot CLI, Cursor, DeepSeek Harness, Kimi, OpenCode, Pi Agent, or ZCode session. Use when the user says "catch up", "what did the last session do", "get me up to speed", "I switched agents", asks to recover/summarize a previous session before continuing, or asks to diagnose or report a catchup failure. Do NOT use for the current conversation, git history, or any non-agent log.

691 votes

math-skill

A comprehensive mathematical reasoning skill for AI assistants — handles arithmetic to research-level problems with rigorous step-by-step reasoning, systematic verification, and transparent uncertainty handling

381 votes
View all in ai-agents →