Research agents (repo-research-analyst, git-history-analyzer, best-practices-researcher, framework-docs-researcher) were using shell commands like find, rg, cat, and chained pipelines for routine codebase exploration. This triggers permission prompts in Claude Code and degrades the user experience when these agents run as sub-agents. Updated all research agents with platform-agnostic tool selection guidance that prefers native file-search/glob, content-search/grep, and file-read tools over shell equivalents. Shell is now reserved for commands with no native equivalent (ast-grep, bundle show, git). Git-history-analyzer additionally limits shell to one simple git command per call with no chaining or piping. Added tool selection rules to AGENTS.md so future agents follow the same pattern by default.
4.2 KiB
4.2 KiB
Codex Spec (Config, Prompts, Skills, MCP)
Last verified: 2026-01-21
Primary sources
https://developers.openai.com/codex/config-basic
https://developers.openai.com/codex/config-advanced
https://developers.openai.com/codex/custom-prompts
https://developers.openai.com/codex/skills
https://developers.openai.com/codex/skills/create-skill
https://developers.openai.com/codex/guides/agents-md
https://developers.openai.com/codex/mcp
Config location and precedence
- Codex reads local settings from
~/.codex/config.toml, shared by the CLI and IDE extension. citeturn2view0 - Configuration precedence is: CLI flags → profile values → root-level values in
config.toml→ built-in defaults. citeturn2view0 - Codex stores local state under
CODEX_HOME(defaults to~/.codex) and includesconfig.tomlthere. citeturn4view0
Profiles and providers
- Profiles are defined under
[profiles.<name>]and selected withcodex --profile <name>. citeturn4view0 - A top-level
profile = "<name>"sets the default profile; CLI flags can override it. citeturn4view0 - Profiles are experimental and not supported in the IDE extension. citeturn4view0
- Custom model providers can be defined with base URL, wire API, and optional headers, then referenced via
model_provider. citeturn4view0
Custom prompts (slash commands)
- Custom prompts are Markdown files stored under
~/.codex/prompts/. citeturn3view0 - Custom prompts require explicit invocation and aren’t shared through the repository; use skills to share or auto-invoke. citeturn3view0
- Prompts are invoked as
/prompts:<name>in the slash command UI. citeturn3view0 - Prompt front matter supports
description:andargument-hint:. citeturn3view0turn2view3 - Prompt arguments support
$1–$9,$ARGUMENTS, and named placeholders like$FILEprovided asKEY=value. citeturn2view3 - Codex ignores non-Markdown files in the prompts directory. citeturn2view3
AGENTS.md instructions
- Codex reads
AGENTS.mdfiles before doing any work and builds a combined instruction chain. citeturn3view1 - Discovery order: global (
~/.codex, usingAGENTS.override.mdthenAGENTS.md) then project directory traversal from repo root to CWD, with override > AGENTS > fallback names. citeturn3view1 - Codex concatenates files from root down; files closer to the working directory appear later and override earlier guidance. citeturn3view1
Skills (Agent Skills)
- A skill is a folder containing
SKILL.mdplus optionalscripts/,references/, andassets/. citeturn3view3turn3view4 SKILL.mduses YAML front matter and requiresnameanddescription. citeturn3view3turn3view4- Required fields are single-line with length limits (name ≤ 100 chars, description ≤ 500 chars). citeturn3view4
- At startup, Codex loads only each skill’s name/description; full content is injected when invoked. citeturn3view3turn3view4
- Skills can be repo-scoped in
.agents/skills/and are discovered from the current working directory up to the repository root. User-scoped skills live in~/.agents/skills/. citeturn1view1turn1view4 - Inference: some existing tooling and user setups still use
.codex/skills/and~/.codex/skills/as legacy compatibility paths, but those locations are not documented in the current OpenAI Codex skills docs linked above. - Codex also supports admin-scoped skills in
/etc/codex/skillsplus built-in system skills bundled with Codex. citeturn1view4 - Skills can be invoked explicitly using
/skillsor$skill-name. citeturn3view3
MCP (Model Context Protocol)
- MCP configuration lives in
~/.codex/config.tomland is shared by the CLI and IDE extension. citeturn3view2turn3view5 - Each server is configured under
[mcp_servers.<server-name>]. citeturn3view5 - STDIO servers support
command(required),args,env,env_vars, andcwd. citeturn3view5 - Streamable HTTP servers support
url(required),bearer_token_env_var,http_headers, andenv_http_headers. citeturn3view5