Skip to content

How to Use ECC with OpenAI Codex: Skills, Agents, AGENTS.md and Plugin Setup

How to Use ECC with OpenAI Codex: Skills, Agents, AGENTS.md and Plugin Setup

Quick Answer

Everything Claude Code ECC integration with OpenAI Codex showing skills AGENTS.md MCP memory and partial feature mapping

Yes. Everything Claude Code (ECC) supports OpenAI Codex through a native plugin path. Register ECC’s plugin marketplace, install the ECC plugin, then verify with codex plugin list --json. ECC skills, rules, MCP and file-based memory map onto Codex skills, AGENTS.md instructions, MCP config and the plugin manifest. The key caveat: this is feature mapping, not feature parity. Claude Code-native behaviors such as lifecycle hooks and subagents do not transfer 1:1.

Quick Install

The current Codex plugin flow has three steps. Do not skip the middle one: registering a marketplace does not install a plugin.

Terminal window
# 1. Make the ECC marketplace known to Codex (register only)
codex plugin marketplace add affaan-m/ECC
# 2. Install the ECC plugin from that marketplace (this is the actual install)
codex plugin add ecc@ecc
# 3. Verify the plugin is installed and loaded
codex plugin list --json

ECC Codex plugin installation flow from marketplace registration to plugin install and verification

After installing, start a new Codex session (or reload the current one) so the plugin’s components are loaded, then confirm that ECC-provided skills and instruction assets are visible.

Command surface note: Codex plugin commands evolve between CLI releases. If a flag or identifier in this post differs from what your CLI accepts, treat codex plugin --help, codex plugin list --json, and the current OpenAI Codex plugin documentation as authoritative.

Does ECC Work with Codex?

ECC is a community project that centralizes the rules, skills, agents, MCP servers, security guardrails and memory you would otherwise configure per agent. Its README and cross-harness architecture documentation describe Codex as a supported cross-harness target, delivered through the native Codex plugin mechanism rather than through a Claude Code adapter.

Support level matters, so read it precisely:

  • “Supported” here means ECC ships a plugin that Codex can install and load through the official plugin interface.
  • It does not mean Codex behaves like Claude Code. The two harnesses expose different native mechanisms.
  • Avoid the phrase “first-class harness” unless the ECC repository itself uses that wording; in practice the docs describe a plugin path that is maintained and recommended, which is strong enough.

The single most important framing of this article is: feature mapping, not feature parity. Every ECC capability below is translated onto whatever Codex mechanism is the closest real match, and the degree of equivalence varies by capability.

Install ECC in Codex

Prerequisites

  • Codex CLI installed and authenticated (codex --version and codex login).
  • A project directory you are comfortable letting the plugin load instructions into.

Understand the four states

People get confused because they treat marketplace registration and plugin installation as one action. They are separate states, and each needs its own verification:

StateWhat it meansHow to confirm
Marketplace registeredCodex knows where ECC’s plugin catalog lives. Nothing is installed yet.codex plugin marketplace list
Plugin installedThe ECC plugin package has been pulled from the marketplace.codex plugin list --json
Plugin enabled / loadedA session actually loads the plugin’s components.Plugin appears as enabled/loaded in codex plugin list --json; or start a new session and observe the plugin’s instructions taking effect
Components visibleSkills, commands and instruction assets exposed by the plugin are usable.Inspect the plugin’s declared contents; try a plugin-provided skill/command in a fresh session

If a plugin is installed but you do not see its components, the usual cause is a stale session, not a broken install: restart the session first, then re-check.

Step-by-step install

Terminal window
# Register the ECC marketplace
codex plugin marketplace add affaan-m/ECC
# Confirm the marketplace is registered (and note the marketplace short name)
codex plugin marketplace list
# Install the ECC plugin from that marketplace
# Identifier format: <plugin>@<marketplace>. Confirm the exact identifier
# from your marketplace listing if "ecc@ecc" does not resolve.
codex plugin add ecc@ecc
# Verify installation state
codex plugin list --json

Then start a fresh Codex session and verify behavior, not just package state: ask Codex to list what project/plugin instructions it is following, and try one of the skills ECC exports.

Trust and security

ECC is a third-party community plugin. Before you add it, skim the repository so you know what the plugin declares (skills, instructions, MCP servers, commands). After install, keep Codex’s approval mode and sandbox settings at a level you are comfortable with. A plugin’s instructions and commands run inside your session’s existing permission model; they do not bypass approvals, and installing a plugin does not grant it rights beyond what your Codex configuration allows.

Current Plugin Path vs Legacy Sync

There are two historical ways to get ECC assets into Codex, and only one of them is the recommended install path.

Current path: the plugin

The plugin flow (marketplace add → plugin add → verify) is the maintained, recommended route. Plugin behavior is managed by Codex’s plugin loader: install, list, enable/disable, and update through the CLI.

Legacy path: the sync script

Older ECC documentation and scripts synchronized asset files directly into your project or home configuration: copying skill files, instruction text, MCP config entries, and AGENTS.md content into place.

Be careful about the status of that script:

  • Present (file exists in the repo) does not equal documented, supported, or recommended.
  • Treat the sync script as a compatibility/legacy mechanism. It is not the preferred install path, and assuming it “still works” is unsafe because its behavior is not guaranteed or tested against current Codex releases.
  • If you previously used the sync script, do not keep re-running it after you move to the plugin — that is exactly how duplicate and stale assets appear.

Repo-local tooling vs end-user tooling

Some commands you will see in the ECC repository are maintainer tooling, not user-facing install steps. For example, npm run harness:audit (and similar npm scripts) only run inside a clone of the ECC repository after npm install, and they audit the repository’s own harness matrix. They are not part of the Codex install flow and are not an end-user verification command. See the “Advanced” section below.

ECC Feature Mapping: Claude Code vs Codex

ECC feature mapping between Claude Code and OpenAI Codex showing skills rules agents hooks MCP and memory parity

This table is the heart of the article. Each row states the closest real Codex mechanism and an honest parity rating. Parity ratings are: Full (equivalent native behavior), Partial (works with format or enforcement differences), No (no equivalent), or Harness-dependent (depends on configuration or adapter).

ECC CapabilityClaude CodeCodex MappingParity?Notes
SkillsClaude Code skills (SKILL.md assets)Codex skills exposed through the plugin manifest / AGENTS.md skill referencesPartialAsset format and invocation differ; skill content is largely portable
Rules / instructionsAGENTS.md and CLAUDE.md instruction filesAGENTS.md instructions loaded per Codex instruction scopePartialSame file format family, but precedence and discovery scope follow Codex rules
AgentsClaude Code subagents (declared agent roles with scoped tools)Role/prompt-level specialization via instructions and skills; not an identical parallel subagent runtimeNo / PartialDo not assume native multi-agent parity; see the Agents section
HooksClaude Code lifecycle hooks (pre/post tool, stop, notification, session events)No Claude-style hook parity; Codex substitutes approvals, sandbox, and tool/command policiesNoECC hooks become policy/instruction text in Codex, not enforced lifecycle events
MCP serversMCP servers configured for Claude CodeMCP servers configured for Codex (plugin-provided or manual config)PartialServer config is portable in principle; permission and approval handling differ
Memory / knowledgeECC file-based knowledge and instinctsFile-based knowledge assets; automatic loading depends on the Codex adapter and AGENTS.md referencesHarness-dependentPortable in principle; continuous-learning hooks are Claude-side
Security (AgentShield)Guardrails enforced through hooks and permission promptsInstruction-based guardrails plus your approval/sandbox settingsPartial / NoInstruction text is advisory; not hook-enforced blocking

Keep this table conservative. Where a mapping is uncertain, prefer “Partial” or “Harness-dependent” over an enthusiastic “Full.”

AGENTS.md and ECC

What AGENTS.md actually does in Codex

In Codex, AGENTS.md files supply instructions that Codex reads and follows when working in a directory. Discovery is scoped: a global AGENTS.md (user-level), a project-root AGENTS.md, and nested AGENTS.md files in subdirectories all participate, each applying to work in its own scope.

Precedence

Instruction precedence in Codex is defined by the current official rules, and the practical summary is:

More specific project-level instructions may override broader or global instructions according to Codex’s current instruction-precedence rules.

Do not oversimplify this to “project wins over global.” The actual outcome can depend on whether an instruction is a hard rule, how specific and recent it is, and where it is declared (nested file, project root, plugin-provided instructions, or a direct user instruction in the session). If you need the exact ordering, consult the current Codex AGENTS.md documentation rather than guessing.

Does the ECC plugin rewrite your AGENTS.md?

No — not necessarily. This is a common misunderstanding, and it matters for migration safety.

  • The ECC plugin contributes instruction and skill assets through its plugin manifest. Those assets are loaded as plugin-provided instructions when Codex runs the plugin.
  • The plugin does not automatically rewrite the physical AGENTS.md in your repository, and it should not be expected to.
  • It was the legacy sync script that wrote physical files and appended content to AGENTS.md. If you are on the plugin path, there is no file-copying step that touches your project files.

If you want ECC rules to appear as a visible, versioned AGENTS.md in your repo, add references or copies yourself as part of your project setup. Do not assume the plugin does that for you.

ECC Skills in Codex

ECC ships skill assets, and through the Codex plugin path those assets are exposed to Codex. Skills are the closest Codex analog to Claude Code skills: self-contained, purpose-scoped instructions that an agent can load on demand.

Practical notes:

  • Skill content (the markdown body, usage guidance, and references) transfers across harnesses well because it is mostly prose and structured steps.
  • The envelope differs: Claude Code discovers skills through its skill directory conventions, while Codex discovers plugin-provided skills through the plugin manifest and any AGENTS.md skill references ECC contributes.
  • Invocation style may differ. Test one skill in a fresh Codex session instead of assuming identical command names.

ECC Agents / Role Specialization in Codex

Claude Code supports declared subagents: named roles with their own instructions and, in many configurations, scoped tool access and the ability to run delegated work.

Does Codex have the same thing? Not necessarily — and this is where overclaiming hurts.

  • Codex may expose role or task specialization primarily through instructions and skills: you give the model a role definition as part of its context and it behaves accordingly.
  • A prompt-level role is not the same as a native subagent with independent execution, guaranteed parallelism, or separate tool scopes.
  • ECC agent definitions therefore map best to role/prompt-level specialization in Codex rather than to “multi-agent roles.”

If a future Codex release adds native subagents that plugins can register, treat that as a new capability and update the mapping. Until then, describe ECC agents in Codex as specialized role prompts built from skills and instruction assets, and be explicit that execution characteristics follow Codex’s model, not Claude Code’s.

Hooks: Where Parity Breaks

Hooks are the biggest compatibility gap between the two harnesses, and the distinction matters:

  • Claude Code has native lifecycle hooks: scripts that run on events such as tool calls, session start/stop, and notifications. ECC uses them for enforcement and automation.
  • Codex does not currently provide Claude-style hook execution parity. Saying this is accurate. Saying Codex has “no hooks at all” is too strong, because Codex does have control mechanisms — just different ones.

The correct framing is no Claude-style hook parity, not no hooks:

Claude Code mechanismCodex substituteParity
Lifecycle hooks (event-driven scripts)No direct equivalentNo
Pre/post tool enforcementApproval prompts and tool/command policiesPartial
Permission promptsCodex approval and sandbox modesPartial
MCP access controlMCP permission/allowlist configurationPartial
ECC hook definitionsPolicy text and instructions loaded into contextPartial (advisory, not enforced events)

In practical terms: ECC treats hook definitions as policy text embedded in the instructions Codex loads. That text can steer behavior, but it is advisory. If your workflow depends on deterministic, event-triggered enforcement (for example, a pre-commit-style block before a destructive tool runs), verify that the equivalent Codex approval or sandbox setting actually provides it. Do not assume a Claude Code hook fires the same way in Codex.

MCP and Tool Configuration

ECC bundles or references MCP server configurations. In Codex, MCP servers are configured through Codex’s own MCP configuration (which may be populated by the plugin or set manually), not through Claude Code’s config format.

Two practical cautions:

  1. Config format differs. Port the server definitions and environment variables, then verify each tool shows up in Codex’s tool list. Do not copy a Claude Code MCP config file verbatim and expect Codex to read it.
  2. Context cost is real. Every MCP server you attach adds tool definitions to the context window. ECC can make it easy to attach many servers; attach only the ones the current project needs, and watch how much context the loaded tools consume.

Memory / Continuous Learning

ECC stores knowledge in files (notes, instincts, learnings) so that the underlying knowledge is portable across harnesses in principle. But portability of files is not the same as automatic loading or automatic learning.

Be precise about what is and is not true in Codex:

  • ECC’s file-based knowledge assets can be read by Codex if they are on disk and if instructions (for example, an AGENTS.md reference or an explicit user instruction) point Codex at them.
  • Whether the plugin auto-loads those files depends on the current ECC-for-Codex adapter and on the instruction assets the plugin contributes. Verify it rather than assuming it.
  • Automated continuous-learning hooks that run in Claude Code (capturing learnings at session end, promoting instincts) may not fire the same way in Codex, because that behavior in Claude Code is often hook-driven and Codex lacks hook parity.

Safest statement, and the one this article stands behind:

File-based knowledge assets are portable in principle, but the degree of automatic loading and of continuous learning depends on the current Codex adapter and on the instruction assets the plugin contributes.

AgentShield with Codex

ECC’s security layer, AgentShield, packages guardrails that restrict what an agent may do. In Claude Code those guardrails are enforced through hooks and permission prompts. In Codex the same rules travel as instruction-based policy text, and their effectiveness depends on how strongly Codex follows instructions plus the approval and sandbox settings you configure.

The result is a lower enforcement guarantee:

  • Claude Code AgentShield: hook-enforced, deterministic blocking in many cases.
  • Codex with ECC AgentShield content: guidance that biases the model, backed by Codex approvals/sandbox. Useful, but not equivalent enforcement.

If you use AgentShield for hard security boundaries, keep Codex’s own approval and sandbox mechanisms on and treat ECC’s shield text as a second layer, not the primary enforcement.

Practical ECC + Codex Workflow

A clean daily workflow separates Codex mechanisms from ECC concepts:

  1. Install once. Register the ECC marketplace, install the plugin, verify with codex plugin list --json (see Quick Install).
  2. Start a fresh session. Restart Codex after install so plugin components load.
  3. Confirm instructions. Ask Codex what instructions it is currently following, and confirm the ECC-provided instruction assets are in that set.
  4. Exercise skills. Run one ECC-provided skill to confirm discovery and invocation work in Codex.
  5. Attach MCP selectively. Add only the MCP servers the current task needs, then confirm their tools are visible.
  6. Keep AGENTS.md yours. If ECC guidance belongs in your project permanently, add your own AGENTS.md references or copies. Do not rely on the plugin to write files.
  7. Verify safety boundaries. Keep approvals/sandbox on; treat ECC security text as advisory on top of Codex’s own controls.

Advanced: ECC Repository Tooling (Not End-User Verification)

You will see commands like this in the ECC repository and in older guides:

Terminal window
npm run harness:audit -- --format json

Classify this correctly before running it:

  • It is repository-local tooling, not an end-user install or verification command.
  • It must be run from a clone of the ECC repository, after npm install, with the repository as the working directory.
  • It audits the repository’s cross-harness matrix and is aimed at ECC maintainers and contributors.

For a normal Codex user, this command is irrelevant to installing or verifying ECC. The only verification commands you need are Codex’s official plugin interfaces (codex plugin list --json and related codex plugin subcommands).

Migrating from Legacy Sync Safely

If you previously used the legacy sync script and now want to move to the plugin, do it in a way that never risks your own configuration. The sync script may have written or appended content to your AGENTS.md, and your AGENTS.md may also contain your own project instructions mixed in.

Never delete a project AGENTS.md solely because the old sync script touched it.

Follow this order:

  1. Inventory. List every file the sync script may have written or modified: AGENTS.md files, skill directories, MCP config entries, and any copied assets under your home or project config.
  2. Diff. Compare current files against your version control history (or a backup) to see exactly what the sync script added.
  3. Backup. Commit or copy everything before changing anything. A backup is non-negotiable.
  4. Identify ECC-managed content. Mark the blocks or files that are purely duplicated ECC content versus the parts that are your own instructions.
  5. Install the plugin (Quick Install) so ECC capabilities arrive through the supported path.
  6. Validate. Start a fresh Codex session and confirm the plugin’s instructions and skills are active.
  7. Remove duplicates only. Delete only the ECC-managed copies that the plugin now provides — and only the parts you positively identified as duplicated ECC content. Leave your own project instructions untouched.

If you are unsure whether a section is ECC-managed or yours, leave it in place. The cost of a duplicate is far lower than the cost of deleting your project’s instructions.

Troubleshooting by State

Fix problems by diagnosing the actual state first instead of blindly re-installing everything.

Marketplace missing

Codex does not know ECC’s catalog.

Terminal window
codex plugin marketplace add affaan-m/ECC
codex plugin marketplace list # confirm it now appears

Marketplace exists, plugin missing

The marketplace is registered but the plugin was never installed (or was removed).

Terminal window
codex plugin add ecc@ecc # confirm the exact plugin@marketplace identifier
codex plugin list --json # confirm the plugin now appears

Plugin installed but disabled / not loading

The plugin is on disk but not active in the current session.

  • Check its state in codex plugin list --json.
  • Enable it with the enable command shown by codex plugin --help, if your CLI version separates enable from install.
  • Start a new Codex session — a stale session often does not pick up newly installed plugins.

Plugin installed but components missing

The plugin loads, but skills or instruction assets are not visible.

  • Inspect the plugin’s declared contents (via codex plugin list --json and the CLI’s detail subcommands) and compare with what ECC’s release notes say it should export.
  • Restart the session.
  • Verify that ECC’s instruction assets are actually in the instruction set Codex reports it is following.
  • Check whether the installed plugin version matches the current ECC release; if not, update the plugin.

If a plugin is installed and enabled but its components still do not appear, that is a plugin-content or version mismatch — reinstalling the marketplace will not fix it.

Should Codex Users Install ECC?

Install ECC if you want a single, centralized source of rules, skills, memory and security guidance that follows you across harnesses, and you are comfortable with the plugin path and with the mapping table above. It is most valuable if you also use Claude Code (or plan to) and want consistent behavior between the two.

Skip it (or install it later) if:

  • You need Claude-Code-specific behavior — hooks, subagents, enforcement — in Codex today. Those do not have parity.
  • You only use Codex and prefer to configure skills and AGENTS.md yourself with minimal third-party surface.
  • You do not want to review and trust a community plugin’s instructions and commands.

The honest recommendation: ECC with Codex is useful for consistency and centralized assets, not for making Codex behave like Claude Code.

FAQ

Is ECC compatible with OpenAI Codex? Yes. ECC supports Codex through a native plugin path (marketplace registration plus plugin install), as documented in the ECC repository. Compatibility means ECC’s plugin loads in Codex and its assets map onto Codex mechanisms — it does not mean feature parity with Claude Code.

What is the difference between codex plugin marketplace add and codex plugin add? Registering a marketplace only tells Codex where a plugin catalog lives. Installing the plugin (codex plugin add <plugin>@<marketplace>) is the step that actually pulls the plugin. You need both, in that order, plus a fresh session for the plugin to load.

How do I confirm ECC is really installed and enabled? Run codex plugin list --json and check that the ECC plugin appears in an installed/enabled state, then start a new session and confirm ECC-provided instructions are among the instructions Codex reports it is following, and that an ECC skill is discoverable.

Does ECC reach Codex through AGENTS.md? Partly. ECC’s instruction and skill assets are contributed through the plugin and can surface in the instructions Codex loads. But not everything is AGENTS.md: skills go through the plugin’s skill assets, MCP goes through Codex MCP config, and security/approval behavior goes through Codex’s own controls. The precise role of AGENTS.md follows Codex’s current instruction rules.

Will the ECC plugin modify my repository’s AGENTS.md? No — not necessarily. The plugin contributes assets that Codex loads at runtime; it is not designed to rewrite the physical AGENTS.md in your repo. Physical file writes came from the legacy sync script, which is not the recommended path.

Does Codex support ECC hooks and agents the same way Claude Code does? No. Codex does not provide Claude-style hook parity, and ECC agents map to role/prompt-level specialization rather than identical native subagents. Treat those as the two biggest gaps in the mapping.

Key Takeaways

  • Plugin path is current. Register the ECC marketplace, then install the plugin — marketplace registration and plugin installation are two different actions.
  • Verify with Codex interfaces. codex plugin list --json and related codex plugin subcommands are the end-user verification tools; repository npm scripts are maintainer tooling.
  • Feature mapping, not parity. Skills, rules and memory port reasonably; hooks and subagents do not. Where uncertain, prefer “Partial” over “Full.”
  • AGENTS.md is not auto-edited by the plugin. The plugin contributes instructions at runtime; physical file writes were the legacy sync script’s job, and that path is not recommended.
  • Migrate safely. Inventory, diff, back up, install the plugin, validate, and only then remove ECC-managed duplicates — never delete a project AGENTS.md just because the old sync script touched it.

FinalWords

ECC is a genuinely useful cross-harness layer, and the Codex plugin path is the right way to consume it: it installs through Codex’s official plugin interface, keeps its assets manageable, and does not write into your project files the way the legacy sync script did. What ECC cannot do is make Codex into Claude Code. Hooks, subagent execution and deterministic security enforcement remain Claude-side strengths, and every Codex mapping in this article should be read through that lens.

Because both ECC and the Codex plugin surface move quickly, treat the command examples here as a starting point: confirm the current syntax with codex plugin --help and the official Codex plugin documentation, and check the ECC repository for the latest release notes and any changes to its Codex support. If you also use Claude Code, see our guide on installing ECC with Claude Code, and remember that the goal is a consistent workflow across harnesses — with honest expectations about where each harness ends.

Final Words + More Resources

My intention with this article was to help others share my knowledge and experience. If you want to contact me, you can contact by email: Email me

Here are also the most important links from this article along with some further resources that will help you in this scope:

Oh, and if you found these resources useful, don’t forget to support me by starring the repo on GitHub!

Comments