Blog ·

How to sync agent skills between ChatGPT and Codex

OpenAI doesn’t sync agent skills between ChatGPT and Codex. Codex shares one config across its own surfaces (CLI, IDE, Desktop), but there’s no bridge from ChatGPT chat to Codex. The fix is the same one that works for ChatGPT and Claude: connect both to a single Git-backed MCP skill library so they read the same governed, versioned skills — maintained once.

Why there’s no native sync

Codex keeps skills as folders (SKILL.md with YAML frontmatter) in .agents/skills/ (project) or ~/.codex/skills/ (user), and that config is shared across the Codex CLI, VS Code extension, and Desktop. ChatGPT chat is a different surface with no skills folder at all — it reads tools and skills through MCP custom connectors instead. So the two never see each other’s skills unless you give them a shared source they both connect to.

The fix: one library, two connections

Put your skills in a governed library where Git is the source of truth, then connect each side to its MCP endpoint. Update a skill once in Git; both ChatGPT and Codex pick up the new version on their next session.

Connect ChatGPT

  1. Open SettingsConnectors Advanced and enable Developer mode (requires a paid plan).
  2. Add new connector pointing at your library’s MCP URL — for Skills Manager, https://www.skillsmanager.uk/mcp — and authorise over OAuth.

Full walkthrough: add agent skills to ChatGPT.

Connect Codex

Codex connects to remote streaming-HTTP MCP servers and launches them automatically when a session starts. Add the same library either with the CLI:

codex mcp add skills-manager --url https://www.skillsmanager.uk/mcp

…or by editing ~/.codex/config.toml directly (Codex uses TOML, not JSON — a config.json is ignored):

[mcp_servers.skills-manager]
url = "https://www.skillsmanager.uk/mcp"
# auth: use a bearer token from the Configure MCP page

Generate a scoped token on the Configure MCP page and add it as the connector’s authorization header. Now Codex reads the exact same skills ChatGPT does.

Keep favourites loading on both

Connecting is step one; reliable loading is step two. Star the skills each agent should always have (admins can enforce team favourites), and add the one-line directive from the Enforce Skill Loading page to ChatGPT’s custom instructions and your Codex AGENTS.md, so both pull the favourites list at the start of every session.

Recap

SideHow it connectsConfig
ChatGPTDeveloper-mode custom connector (OAuth)Settings → Connectors
CodexStreaming-HTTP MCP server (bearer token)~/.codex/config.toml
Source of truthGit-backed skill libraryOne canonical, versioned copy

Related: sync skills between ChatGPT and Claude, create skills in Claude that work in ChatGPT, and how it works.

One library, every assistant. Start free and sync ChatGPT and Codex from Git.

Last updated: June 15, 2026

Share one skill library across every agent