About role-creator
role-creator is a skill for authoring, updating, and troubleshooting custom Codex agents stored as standalone TOML files. It requires users to confirm role details before writing and validates the resulting configuration.
Key features
- 01Create or update standalone agent TOML
- 02Require confirmed role inputs
- 03Support global and project scopes
- 04Validate TOML and required keys
- 05Provide an example agent call
Use cases
- 01Defining a custom Codex agent role
- 02Updating an existing agent configuration
- 03Troubleshooting agent scope or TOML issues
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ am-will/ codex-skills --skill role-creatorAfter installing, type/role-creatorin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/role-config-reference.mdscripts/install_role.shvalidate_role.shwrite_role_config.shtemplates/frontend-architecture-role.tomlfull-role-config.tomlminimal-role-config.tomlrestricted-role-config.tomlDetails
From the project READMERole Creator
Overview
Use this skill to author, update, or troubleshoot custom Codex agents as standalone TOML files.
Current behavior:
- Each custom agent is defined by one file:
- Global:
~/.codex/agents/<agent-name>.toml - Project:
<project>/.codex/agents/<agent-name>.toml
- Global:
- The agent file is the role source of truth.
~/.codex/config.tomlis only for global/runtime settings (for example[agents]thread limits), not per-role registration.
Non-Negotiable Inputs
Step 1 is required before writing files:
name(role identifier used byagent_type)description(short, human-readable purpose)developer_instructionsmodel(recommendgpt-5.3-codexunless requested)model_reasoning_effort(none|minimal|low|medium|high|xhigh)- role scope (
globalorproject) - output TOML path (canonical absolute path preferred)
- whether to include
nickname_candidatesand exact values
Execution rule:
- Do not infer required values.
- Do not write until required inputs are explicitly confirmed.
Role file contract (current)
From Codex custom agent docs (/codex/subagents):
- Required keys:
name,description,developer_instructions. - Optional keys:
nickname_candidates,model,model_reasoning_effort,sandbox_mode,web_search,mcp_servers,skills.config, etc. nameis the spawn identifier and source of truth.description+developer_instructionsdefine behavior and usage boundaries.nickname_candidatesis optional and used only for display.
nickname_candidates requirements:
- Must be a non-empty list of unique values when present.
- Allowed characters: ASCII letters, digits, spaces, hyphens, underscores.
Default policy for optional settings
- Do not add sandboxing/MCP/web-search/model extras unless requested.
- Keep generated files minimal by default.
- If the user says "inherit defaults", omit optional keys instead of setting explicit values.
Workflow
- Collect and confirm required inputs.
- Resolve output path:
global→~/.codex/agents/<name>.tomlproject→<project>/.codex/agents/<name>.toml
- Create or update the file directly with required keys.
- Validate TOML parse and required keys.
- Return a ready-to-run example call:
{"agent_type":"<name>","message":"<task>"}
Commands
# 1) Write a standalone custom-agent file
/home/willr/Applications/skills/skills/role-creator/scripts/write_role_config.sh \
--output ~/.codex/agents/reviewer.toml \
--role-name reviewer \
--description "PR reviewer focused on correctness, security, and risk." \
--model gpt-5.4 \
--reasoning high \
--developer-instructions "Review code like an owner. Lead with concrete findings and residual risks."
# Optional: include nickname candidates for display
/home/willr/Applications/skills/skills/role-creator/scripts/write_role_config.sh \
--output ~/.codex/agents/reviewer.toml \
--role-name reviewer \
--description "PR reviewer focused on correctness, security, and risk." \
--model gpt-5.4 \
--reasoning high \
--developer-instructions "Review code like an owner. Lead with concrete findings and residual risks." \
--nickname-candidates "Atlas,Delta,Echo" \
--sandbox-mode read-only \
--web-search disabled
Guardrails
- If runtime returns
unknown agent_type, verify the active scope and confirm the file exists at the expected path. - Check syntax first with
tomlqortomlq -C. - Keep role instructions operational and narrowly scoped to avoid drift.
References
- Codex subagents docs:
https://developers.openai.com/codex/subagents - Display nicknames:
https://developers.openai.com/codex/subagents#display-nicknames - Reusable templates:
templates/
Comments
Markdown supported