SpyBara
Go Premium Account
2026
27 Mar 2026, 18:23
19 May 2026, 11:58 18 May 2026, 22:01 14 May 2026, 21:00 14 May 2026, 07:00 13 May 2026, 00:57 12 May 2026, 01:59 11 May 2026, 18:00 7 May 2026, 20:02 7 May 2026, 17:08 5 May 2026, 23:00 2 May 2026, 06:45 2 May 2026, 00:48 1 May 2026, 18:29 30 Apr 2026, 18:36 29 Apr 2026, 12:40 29 Apr 2026, 00:50 25 Apr 2026, 06:37 25 Apr 2026, 00:42 24 Apr 2026, 18:20 24 Apr 2026, 12:28 23 Apr 2026, 18:31 23 Apr 2026, 12:28 23 Apr 2026, 00:46 22 Apr 2026, 18:29 22 Apr 2026, 00:42 21 Apr 2026, 18:29 21 Apr 2026, 12:30 21 Apr 2026, 06:45 20 Apr 2026, 18:26 20 Apr 2026, 06:53 18 Apr 2026, 18:18 17 Apr 2026, 00:44 16 Apr 2026, 18:31 16 Apr 2026, 00:46 15 Apr 2026, 18:31 15 Apr 2026, 06:44 14 Apr 2026, 18:31 14 Apr 2026, 12:29 13 Apr 2026, 18:37 13 Apr 2026, 00:44 12 Apr 2026, 06:38 10 Apr 2026, 18:23 9 Apr 2026, 00:33 8 Apr 2026, 18:32 8 Apr 2026, 00:40 7 Apr 2026, 00:40 2 Apr 2026, 18:23 31 Mar 2026, 06:35 31 Mar 2026, 00:39 28 Mar 2026, 06:26 28 Mar 2026, 00:36 27 Mar 2026, 18:23 27 Mar 2026, 00:39 26 Mar 2026, 18:27 25 Mar 2026, 18:24 23 Mar 2026, 18:22 20 Mar 2026, 00:35 18 Mar 2026, 12:23 18 Mar 2026, 00:36 17 Mar 2026, 18:24 17 Mar 2026, 00:33 16 Mar 2026, 18:25 16 Mar 2026, 12:23 14 Mar 2026, 00:32 13 Mar 2026, 18:15 13 Mar 2026, 00:34 11 Mar 2026, 00:31 9 Mar 2026, 00:34 8 Mar 2026, 18:10 8 Mar 2026, 00:35 7 Mar 2026, 18:10 7 Mar 2026, 06:14 7 Mar 2026, 00:33 6 Mar 2026, 00:38 5 Mar 2026, 18:41 5 Mar 2026, 06:22 5 Mar 2026, 00:34 4 Mar 2026, 18:18 4 Mar 2026, 06:20 3 Mar 2026, 18:20 3 Mar 2026, 00:35 27 Feb 2026, 18:15 24 Feb 2026, 06:27 24 Feb 2026, 00:33 23 Feb 2026, 18:27 21 Feb 2026, 00:33 20 Feb 2026, 12:16 19 Feb 2026, 20:53 19 Feb 2026, 20:37
8 Apr 2026, 18:32
19 May 2026, 11:58 18 May 2026, 22:01 14 May 2026, 21:00 14 May 2026, 07:00 13 May 2026, 00:57 12 May 2026, 01:59 11 May 2026, 18:00 7 May 2026, 20:02 7 May 2026, 17:08 5 May 2026, 23:00 2 May 2026, 06:45 2 May 2026, 00:48 1 May 2026, 18:29 30 Apr 2026, 18:36 29 Apr 2026, 12:40 29 Apr 2026, 00:50 25 Apr 2026, 06:37 25 Apr 2026, 00:42 24 Apr 2026, 18:20 24 Apr 2026, 12:28 23 Apr 2026, 18:31 23 Apr 2026, 12:28 23 Apr 2026, 00:46 22 Apr 2026, 18:29 22 Apr 2026, 00:42 21 Apr 2026, 18:29 21 Apr 2026, 12:30 21 Apr 2026, 06:45 20 Apr 2026, 18:26 20 Apr 2026, 06:53 18 Apr 2026, 18:18 17 Apr 2026, 00:44 16 Apr 2026, 18:31 16 Apr 2026, 00:46 15 Apr 2026, 18:31 15 Apr 2026, 06:44 14 Apr 2026, 18:31 14 Apr 2026, 12:29 13 Apr 2026, 18:37 13 Apr 2026, 00:44 12 Apr 2026, 06:38 10 Apr 2026, 18:23 9 Apr 2026, 00:33 8 Apr 2026, 18:32 8 Apr 2026, 00:40 7 Apr 2026, 00:40 2 Apr 2026, 18:23 31 Mar 2026, 06:35 31 Mar 2026, 00:39 28 Mar 2026, 06:26 28 Mar 2026, 00:36 27 Mar 2026, 18:23 27 Mar 2026, 00:39 26 Mar 2026, 18:27 25 Mar 2026, 18:24 23 Mar 2026, 18:22 20 Mar 2026, 00:35 18 Mar 2026, 12:23 18 Mar 2026, 00:36 17 Mar 2026, 18:24 17 Mar 2026, 00:33 16 Mar 2026, 18:25 16 Mar 2026, 12:23 14 Mar 2026, 00:32 13 Mar 2026, 18:15 13 Mar 2026, 00:34 11 Mar 2026, 00:31 9 Mar 2026, 00:34 8 Mar 2026, 18:10 8 Mar 2026, 00:35 7 Mar 2026, 18:10 7 Mar 2026, 06:14 7 Mar 2026, 00:33 6 Mar 2026, 00:38 5 Mar 2026, 18:41 5 Mar 2026, 06:22 5 Mar 2026, 00:34 4 Mar 2026, 18:18 4 Mar 2026, 06:20 3 Mar 2026, 18:20 3 Mar 2026, 00:35 27 Feb 2026, 18:15 24 Feb 2026, 06:27 24 Feb 2026, 00:33 23 Feb 2026, 18:27 21 Feb 2026, 00:33 20 Feb 2026, 12:16 19 Feb 2026, 20:53 19 Feb 2026, 20:37
Thu 2 18:23 Tue 7 00:40 Wed 8 00:40 Wed 8 18:32 Thu 9 00:33 Fri 10 18:23 Sun 12 06:38 Mon 13 00:44 Mon 13 18:37 Tue 14 12:29 Tue 14 18:31 Wed 15 06:44 Wed 15 18:31 Thu 16 00:46 Thu 16 18:31 Fri 17 00:44 Sat 18 18:18 Mon 20 06:53 Mon 20 18:26 Tue 21 06:45 Tue 21 12:30 Tue 21 18:29 Wed 22 00:42 Wed 22 18:29 Thu 23 00:46 Thu 23 12:28 Thu 23 18:31 Fri 24 12:28 Fri 24 18:20 Sat 25 00:42 Sat 25 06:37 Wed 29 00:50 Wed 29 12:40 Thu 30 18:36

app/windows.md +2 −2

Details

1# Windows1# Windows

2 2 

3The [Codex app for Windows](https://apps.microsoft.com/detail/9plm9xgg6vks?hl=en-US&gl=US) gives you one interface for3The [Codex app for Windows](https://get.microsoft.com/installer/download/9PLM9XGG6VKS?cid=website_cta_psi) gives you one interface for

4working across projects, running parallel agent threads, and reviewing results.4working across projects, running parallel agent threads, and reviewing results.

5It runs natively on Windows using PowerShell and the5It runs natively on Windows using PowerShell and the

6[Windows sandbox](https://developers.openai.com/codex/windows#windows-sandbox), or you can configure it to6[Windows sandbox](https://developers.openai.com/codex/windows#windows-sandbox), or you can configure it to


11## Download and update the Codex app11## Download and update the Codex app

12 12 

13Download the Codex app from the13Download the Codex app from the

14[Microsoft Store](https://apps.microsoft.com/detail/9plm9xgg6vks?hl=en-US&gl=US).14[Microsoft Store](https://get.microsoft.com/installer/download/9PLM9XGG6VKS?cid=website_cta_psi).

15 15 

16Then follow the [quickstart](https://developers.openai.com/codex/quickstart?setup=app) to get started.16Then follow the [quickstart](https://developers.openai.com/codex/quickstart?setup=app) to get started.

17 17 

cli.md +1 −1

Details

69 69 

70Launch a Codex Cloud task, choose environments, and apply the resulting diffs without leaving your terminal.](https://developers.openai.com/codex/cli/features#working-with-codex-cloud)[### Scripting Codex70Launch a Codex Cloud task, choose environments, and apply the resulting diffs without leaving your terminal.](https://developers.openai.com/codex/cli/features#working-with-codex-cloud)[### Scripting Codex

71 71 

72Automate repeatable workflows by scripting Codex with the `exec` command.](https://developers.openai.com/codex/sdk#using-codex-cli-programmatically)[### Model Context Protocol72Automate repeatable workflows by scripting Codex with the `exec` command.](https://developers.openai.com/codex/noninteractive)[### Model Context Protocol

73 73 

74Give Codex access to additional third-party tools and context with Model Context Protocol (MCP).](https://developers.openai.com/codex/mcp)[### Approval modes74Give Codex access to additional third-party tools and context with Model Context Protocol (MCP).](https://developers.openai.com/codex/mcp)[### Approval modes

75 75 

Details

22| `--enable` | `feature` | Force-enable a feature flag (translates to `-c features.<name>=true`). Repeatable. |22| `--enable` | `feature` | Force-enable a feature flag (translates to `-c features.<name>=true`). Repeatable. |

23| `--full-auto` | `boolean` | Shortcut for low-friction local work: sets `--ask-for-approval on-request` and `--sandbox workspace-write`. |23| `--full-auto` | `boolean` | Shortcut for low-friction local work: sets `--ask-for-approval on-request` and `--sandbox workspace-write`. |

24| `--image, -i` | `path[,path...]` | Attach one or more image files to the initial prompt. Separate multiple paths with commas or repeat the flag. |24| `--image, -i` | `path[,path...]` | Attach one or more image files to the initial prompt. Separate multiple paths with commas or repeat the flag. |

25| `--model, -m` | `string` | Override the model set in configuration (for example `gpt-5-codex`). |25| `--model, -m` | `string` | Override the model set in configuration (for example `gpt-5.4`). |

26| `--no-alt-screen` | `boolean` | Disable alternate screen mode for the TUI (overrides `tui.alternate_screen` for this run). |26| `--no-alt-screen` | `boolean` | Disable alternate screen mode for the TUI (overrides `tui.alternate_screen` for this run). |

27| `--oss` | `boolean` | Use the local open source model provider (equivalent to `-c model_provider="oss"`). Validates that Ollama is running. |27| `--oss` | `boolean` | Use the local open source model provider (equivalent to `-c model_provider="oss"`). Validates that Ollama is running. |

28| `--profile, -p` | `string` | Configuration profile name to load from `~/.codex/config.toml`. |28| `--profile, -p` | `string` | Configuration profile name to load from `~/.codex/config.toml`. |


148 148 

149Details149Details

150 150 

151Override the model set in configuration (for example `gpt-5-codex`).151Override the model set in configuration (for example `gpt-5.4`).

152 152 

153Key153Key

154 154 

Details

57Use skill folders to author and iterate on workflows locally. If a plugin57Use skill folders to author and iterate on workflows locally. If a plugin

58already exists for the workflow, install it first to reuse a proven setup. When58already exists for the workflow, install it first to reuse a proven setup. When

59you want to distribute your own workflow across teams or bundle it with app59you want to distribute your own workflow across teams or bundle it with app

60integrations, package it as [plugins](https://developers.openai.com/codex/plugins). Skills remain the60integrations, package it as a [plugin](https://developers.openai.com/codex/plugins/build). Skills remain the

61authoring format; plugins are the installable distribution unit.61authoring format; plugins are the installable distribution unit.

62 62 

63A skill is typically a `SKILL.md` file plus optional scripts, references, and assets.63A skill is typically a `SKILL.md` file plus optional scripts, references, and assets.

Details

36inside enforced limits. That makes it easier to let Codex work independently36inside enforced limits. That makes it easier to let Codex work independently

37while still knowing when it will stop and ask for help.37while still knowing when it will stop and ask for help.

38 38 

39## Getting started

40 

41Codex applies sandboxing automatically when you use the default permissions

42mode.

43 

44### Prerequisites

45 

46On **macOS**, sandboxing works out of the box using the built-in Seatbelt

47framework.

48 

49On **Windows**, Codex uses the native [Windows

50sandbox](https://developers.openai.com/codex/windows#windows-sandbox) when you run in PowerShell and the

51Linux sandbox implementation when you run in WSL2.

52 

53On **Linux and WSL2**, install `bubblewrap` with your package manager first:

54 

55```bash

56sudo apt install bubblewrap

57```

58 

59```bash

60sudo dnf install bubblewrap

61```

62 

63Codex uses the system `bwrap` at `/usr/bin/bwrap` when it is available. If it

64is missing, Codex falls back to a bundled helper, but that helper requires

65unprivileged user namespaces. Installing your distro’s `bubblewrap` package is

66the most reliable setup.

67 

68Codex surfaces a startup warning when `bwrap` is missing or cannot create user

69namespaces. On distributions that restrict them with AppArmor, you can enable

70them with:

71 

72```bash

73sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

74```

75 

39## How you control it76## How you control it

40 77 

41Most people start with the permissions controls in the product.78Most people start with the permissions controls in the product.

Details

15Define profiles under `[profiles.<name>]` in `config.toml`, then run `codex --profile <name>`:15Define profiles under `[profiles.<name>]` in `config.toml`, then run `codex --profile <name>`:

16 16 

17```toml17```toml

18model = "gpt-5-codex"18model = "gpt-5.4"

19approval_policy = "on-request"19approval_policy = "on-request"

20model_catalog_json = "/Users/me/.codex/model-catalogs/default.json"20model_catalog_json = "/Users/me/.codex/model-catalogs/default.json"

21 21 


132Define additional providers and point `model_provider` at them:132Define additional providers and point `model_provider` at them:

133 133 

134```toml134```toml

135model = "gpt-5.1"135model = "gpt-5.4"

136model_provider = "proxy"136model_provider = "proxy"

137 137 

138[model_providers.proxy]138[model_providers.proxy]

Details

91| `mcp_servers.<id>.startup_timeout_sec` | `number` | Override the default 10s startup timeout for an MCP server. |91| `mcp_servers.<id>.startup_timeout_sec` | `number` | Override the default 10s startup timeout for an MCP server. |

92| `mcp_servers.<id>.tool_timeout_sec` | `number` | Override the default 60s per-tool timeout for an MCP server. |92| `mcp_servers.<id>.tool_timeout_sec` | `number` | Override the default 60s per-tool timeout for an MCP server. |

93| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |93| `mcp_servers.<id>.url` | `string` | Endpoint for an MCP streamable HTTP server. |

94| `model` | `string` | Model to use (e.g., `gpt-5-codex`). |94| `model` | `string` | Model to use (e.g., `gpt-5.4`). |

95| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |95| `model_auto_compact_token_limit` | `number` | Token threshold that triggers automatic history compaction (unset uses model defaults). |

96| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |96| `model_catalog_json` | `string (path)` | Optional path to a JSON model catalog loaded on startup. Profile-level `profiles.<name>.model_catalog_json` can override this per profile. |

97| `model_context_window` | `number` | Context window tokens available to the active model. |97| `model_context_window` | `number` | Context window tokens available to the active model. |


1194 1194 

1195Details1195Details

1196 1196 

1197Model to use (e.g., `gpt-5-codex`).1197Model to use (e.g., `gpt-5.4`).

1198 1198 

1199Key1199Key

1200 1200 

Details

350# hide_rate_limit_model_nudge = true350# hide_rate_limit_model_nudge = true

351# hide_gpt5_1_migration_prompt = true351# hide_gpt5_1_migration_prompt = true

352# "hide_gpt-5.1-codex-max_migration_prompt" = true352# "hide_gpt-5.1-codex-max_migration_prompt" = true

353# model_migrations = { "gpt-4.1" = "gpt-5.1" }353# model_migrations = { "gpt-5.3-codex" = "gpt-5.4" }

354 354 

355################################################################################355################################################################################

356# Centralized Feature Flags (preferred)356# Centralized Feature Flags (preferred)

Details

2 2 

3# Running Codex as an MCP server3# Running Codex as an MCP server

4 4 

5You can run Codex as an MCP server and connect it from other MCP clients (for example, an agent built with the [OpenAI Agents SDK](https://openai.github.io/openai-agents-js/guides/mcp/)).5You can run Codex as an MCP server and connect it from other MCP clients (for example, an agent built with the [OpenAI Agents SDK MCP integration](https://developers.openai.com/api/docs/guides/agents/integrations-observability#mcp)).

6 6 

7To start Codex as an MCP server, you can use the following command:7To start Codex as an MCP server, you can use the following command:

8 8 

ide/features.md +1 −1

Details

20 20 

21## Adjust reasoning effort21## Adjust reasoning effort

22 22 

23You can adjust reasoning effort to control how long Codex thinks before responding. Higher effort can help on complex tasks, but responses take longer. Higher effort also uses more tokens and can consume your rate limits faster (especially with GPT-5-Codex).23You can adjust reasoning effort to control how long Codex thinks before responding. Higher effort can help on complex tasks, but responses take longer. Higher effort also uses more tokens and can consume your rate limits faster, especially with higher-capability models.

24 24 

25Use the same model switcher shown above, and choose `low`, `medium`, or `high` for each model. Start with `medium`, and only switch to `high` when you need more depth.25Use the same model switcher shown above, and choose `low`, `medium`, or `high` for each model. Start with `medium`, and only switch to `high` when you need more depth.

26 26 

Details

161- Telemetry or incident summaries161- Telemetry or incident summaries

162- Standard debugging flows162- Standard debugging flows

163 163 

164The `$skill-creator` skill is the best place to start to scaffold the first version of a skill. Keep the first version local while you iterate. When its ready to share broadly, package it as a [plugin](https://developers.openai.com/codex/plugins). One of the most important parts of a skill is the description. It should say what the skill does and when to use it.164The `$skill-creator` skill is the best place to start to scaffold the first version of a skill. Keep the first version local while you iterate. When it's ready to share broadly, package it as a [plugin](https://developers.openai.com/codex/plugins/build). One of the most important parts of a skill is the description. It should say what the skill does and when to use it.

165 165 

166Personal skills are stored in `$HOME/.agents/skills`, and shared team skills166Personal skills are stored in `$HOME/.agents/skills`, and shared team skills

167 can be checked into `.agents/skills` inside a repository. This is especially167 can be checked into `.agents/skills` inside a repository. This is especially

models.md +2 −86

Details

107 107 

108## Alternative models108## Alternative models

109 109 

110![gpt-5.2-codex](/images/codex/gpt-5.2-codex.png)

111 

112gpt-5.2-codex

113 

114Advanced coding model for real-world engineering. Succeeded by GPT-5.3-Codex.

115 

116codex -m gpt-5.2-codex

117 

118Copy command

119 

120Show details

121 

122![gpt-5.2](/images/api/models/gpt-5.2.jpg)110![gpt-5.2](/images/api/models/gpt-5.2.jpg)

123 111 

124gpt-5.2112gpt-5.2

125 113 

126Previous general-purpose model for coding and agentic tasks across industries and domains. Succeeded by GPT-5.4.114Previous general-purpose model for coding and agentic tasks, including hard debugging tasks that benefit from deeper deliberation.

127 115 

128codex -m gpt-5.2116codex -m gpt-5.2

129 117 


131 119 

132Show details120Show details

133 121 

134![gpt-5.1-codex-max](/images/api/models/gpt-5.1-codex-max.jpg)

135 

136gpt-5.1-codex-max

137 

138Optimized for long-horizon, agentic coding tasks in Codex.

139 

140codex -m gpt-5.1-codex-max

141 

142Copy command

143 

144Show details

145 

146![gpt-5.1](/images/api/models/gpt-5.1.jpg)

147 

148gpt-5.1

149 

150Great for coding and agentic tasks across domains. Succeeded by GPT-5.2.

151 

152codex -m gpt-5.1

153 

154Copy command

155 

156Show details

157 

158![gpt-5.1-codex](/images/api/models/gpt-5.1-codex.jpg)

159 

160gpt-5.1-codex

161 

162Optimized for long-running, agentic coding tasks in Codex. Succeeded by GPT-5.1-Codex-Max.

163 

164codex -m gpt-5.1-codex

165 

166Copy command

167 

168Show details

169 

170![gpt-5-codex](/images/api/models/gpt-5-codex.jpg)

171 

172gpt-5-codex

173 

174Version of GPT-5 tuned for long-running, agentic coding tasks. Succeeded by GPT-5.1-Codex.

175 

176codex -m gpt-5-codex

177 

178Copy command

179 

180Show details

181 

182![gpt-5-codex-mini](/images/api/models/gpt-5-codex.jpg)

183 

184gpt-5-codex-mini

185 

186Smaller, more cost-effective version of GPT-5-Codex. Succeeded by GPT-5.1-Codex-Mini.

187 

188codex -m gpt-5-codex

189 

190Copy command

191 

192Show details

193 

194![gpt-5](/images/api/models/gpt-5.jpg)

195 

196gpt-5

197 

198Reasoning model for coding and agentic tasks across domains. Succeeded by GPT-5.1.

199 

200codex -m gpt-5

201 

202Copy command

203 

204Show details

205 

206## Other models122## Other models

207 123 

208Codex works best with the models listed above.124When you sign in with ChatGPT, Codex works best with the models listed above.

209 125 

210You can also point Codex at any model and provider that supports either the [Chat Completions](https://platform.openai.com/docs/api-reference/chat) or [Responses APIs](https://platform.openai.com/docs/api-reference/responses) to fit your specific use case.126You can also point Codex at any model and provider that supports either the [Chat Completions](https://platform.openai.com/docs/api-reference/chat) or [Responses APIs](https://platform.openai.com/docs/api-reference/responses) to fit your specific use case.

211 127 

Details

11 11 

12- Run as part of a pipeline (CI, pre-merge checks, scheduled jobs).12- Run as part of a pipeline (CI, pre-merge checks, scheduled jobs).

13- Produce output you can pipe into other tools (for example, to generate release notes or summaries).13- Produce output you can pipe into other tools (for example, to generate release notes or summaries).

14- Fit naturally into CLI workflows that chain command output into Codex and pass Codex output to other tools.

14- Run with explicit, pre-set sandbox and approval settings.15- Run with explicit, pre-set sandbox and approval settings.

15 16 

16## Basic usage17## Basic usage


33codex exec --ephemeral "triage this repository and suggest next steps"34codex exec --ephemeral "triage this repository and suggest next steps"

34```35```

35 36 

37If stdin is piped and you also provide a prompt argument, Codex treats the prompt as the instruction and the piped content as additional context.

38 

39This makes it easy to generate input with one command and hand it directly to Codex:

40 

41```bash

42curl -s https://jsonplaceholder.typicode.com/comments \

43 | codex exec "format the top 20 items into a markdown table" \

44 > table.md

45```

46 

47For more advanced stdin piping patterns, see [Advanced stdin piping](#advanced-stdin-piping).

48 

36## Permissions and safety49## Permissions and safety

37 50 

38By default, `codex exec` runs in a read-only sandbox. In automation, set the least permissions needed for the workflow:51By default, `codex exec` runs in a read-only sandbox. In automation, set the least permissions needed for the workflow:


235#### Alternative: Use the Codex GitHub Action248#### Alternative: Use the Codex GitHub Action

236 249 

237If you want to avoid installing the CLI yourself, you can run `codex exec` through the [Codex GitHub Action](https://developers.openai.com/codex/github-action) and pass the prompt as an input.250If you want to avoid installing the CLI yourself, you can run `codex exec` through the [Codex GitHub Action](https://developers.openai.com/codex/github-action) and pass the prompt as an input.

251 

252## Advanced stdin piping

253 

254When another command produces input for Codex, choose the stdin pattern based on where the instruction should come from. Use prompt-plus-stdin when you already know the instruction and want to pass piped output as context. Use `codex exec -` when stdin should become the full prompt.

255 

256### Use prompt-plus-stdin

257 

258Prompt-plus-stdin is useful when another command already produces the data you want Codex to inspect. In this mode, you write the instruction yourself and pipe in the output as context, which makes it a natural fit for CLI workflows built around command output, logs, and generated data.

259 

260```bash

261npm test 2>&1 \

262 | codex exec "summarize the failing tests and propose the smallest likely fix" \

263 | tee test-summary.md

264```

265 

266More prompt-plus-stdin examples

267 

268### Summarize logs

269 

270```bash

271tail -n 200 app.log \

272 | codex exec "identify the likely root cause, cite the most important errors, and suggest the next three debugging steps" \

273 > log-triage.md

274```

275 

276### Inspect TLS or HTTP issues

277 

278```bash

279curl -vv https://api.example.com/health 2>&1 \

280 | codex exec "explain the TLS or HTTP failure and suggest the most likely fix" \

281 > tls-debug.md

282```

283 

284### Prepare a Slack-ready update

285 

286```bash

287gh run view 123456 --log \

288 | codex exec "write a concise Slack-ready update on the CI failure, including the likely cause and next step" \

289 | pbcopy

290```

291 

292### Draft a pull request comment from CI logs

293 

294```bash

295gh run view 123456 --log \

296 | codex exec "summarize the failure in 5 bullets for the pull request thread" \

297 | gh pr comment 789 --body-file -

298```

299 

300### Use `codex exec -` when stdin is the prompt

301 

302If you omit the prompt argument, Codex reads the prompt from stdin. Use `codex exec -` when you want to force that behavior explicitly.

303 

304The `-` sentinel is useful when another command or script is generating the entire prompt dynamically. This is a good fit when you store prompts in files, assemble prompts with shell scripts, or combine live command output with instructions before handing the whole prompt to Codex.

305 

306```bash

307cat prompt.txt | codex exec -

308```

309 

310```bash

311printf "Summarize this error log in 3 bullets:\n\n%s\n" "$(tail -n 200 app.log)" \

312 | codex exec -

313```

314 

315```bash

316generate_prompt.sh | codex exec - --json > result.jsonl

317```

plugins.md +72 −334

Details

1# Plugins1# Plugins

2 2 

3## What plugins are3## Overview

4 4 

5Plugins are installable bundles for reusable Codex workflows. They make it5Plugins bundle skills, app integrations, and MCP servers into reusable

6easier to share the same setup across projects or teams, and they can package6workflows for Codex.

7skills, optional app integrations, and MCP server configurations in a single7 

8place.8Extend what Codex can do, for example:

9 

10- Install the Gmail plugin to let Codex read and manage Gmail.

11- Install the Google Drive plugin to work across Drive, Docs, Sheets, and

12 Slides.

13- Install the Slack plugin to summarize channels or draft replies.

9 14 

10A plugin can contain:15A plugin can contain:

11 16 

12- **Skills:** prompts that describe workflows to Codex and can be17- **Skills:** reusable instructions for specific kinds of work. Codex can load

13 progressively discovered by the agent.18 them when needed so it follows the right steps and uses the right references

14- **Apps:** optional app integrations or connector mappings packaged with the19 or helper scripts for a task.

15 plugin.20- **Apps:** connections to tools like GitHub, Slack, or Google Drive, so

16- **MCP servers:** remote tools or shared context the plugin needs.21 Codex can read information from those tools and take actions in them.

22- **MCP servers:** services that give Codex access to additional tools or

23 shared information, often from systems outside your local project.

17 24 

18More plugin components are coming soon.25More plugin capabilities are coming soon.

19 26 

20## Use and install plugins27## Use and install plugins

21 28 

22### In the Codex app29### Plugin Directory in the Codex app

23 30 

24Plugins curated by OpenAI appear in the Codex directory. Start there when you31Open **Plugins** in the Codex app to browse and install curated plugins.

25want ready-made workflows or app integrations.

26 32 

27![Codex plugin directory](/images/codex/plugins/directory.png)33![Codex Plugins page](/images/codex/plugins/directory.png)

28 34 

29### In the CLI35### Plugin directory in the CLI

30 36 

31In Codex CLI, run the following command to open the plugins surface:37In Codex CLI, run the following command to open the plugins list:

32 38 

33```text39```text

34codex40codex

35/plugins41/plugins

36```42```

37 43 

38![Plugin directory in Codex CLI](/images/codex/plugins/cli_light.png)44![Plugins list in Codex CLI](/images/codex/plugins/cli_light.png)

39 

40### Use plugins locally

41 

42For the fastest setup, use the built-in `@plugin-creator` skill to scaffold a

43local plugin.

44 

45![plugin-creator skill in Codex](/images/codex/plugins/plugin-creator.png)

46 

47It creates the required `.codex-plugin/plugin.json` manifest and

48can also generate a local marketplace entry for testing.

49 

50If you already have a plugin from another ecosystem or a plugin you built

51yourself, you can add it to your local marketplace with `@plugin-creator`.

52 

53![how to invoke the plugin-creator skill](/images/codex/plugins/plugin-creator-invoke.png)

54 

55In the plugin directory, you can also load your own local marketplace with a

56custom marketplace name and browse the plugins there.

57 

58![custom local marketplace in the plugin directory](/images/codex/plugins/codex-local-plugin-light.png)

59 

60#### Install a local plugin manually

61 

62Use a repo marketplace or a personal marketplace, depending on who should be

63able to access the plugin.

64 

65Add a marketplace file at `$REPO_ROOT/.agents/plugins/marketplace.json`

66and store your plugins under `$REPO_ROOT/plugins/`.

67 

68**Repo marketplace example**

69 

70Step 1: Copy the plugin folder into `$REPO_ROOT/plugins/my-plugin`.

71 

72```

73mkdir -p ./plugins

74cp -R /absolute/path/to/my-plugin ./plugins/my-plugin

75```

76 

77Step 2: Add or update `$REPO_ROOT/.agents/plugins/marketplace.json` so

78that `source.path` points to that plugin directory with a `./`-prefixed

79relative path:

80 

81```

82{

83 "name": "local-repo",

84 "plugins": [

85 {

86 "name": "my-plugin",

87 "source": {

88 "source": "local",

89 "path": "./plugins/my-plugin"

90 },

91 "policy": {

92 "installation": "AVAILABLE",

93 "authentication": "ON_INSTALL"

94 },

95 "category": "Productivity"

96 }

97 ]

98}

99```

100 

101Step 3: Restart Codex and verify that the plugin appears.

102 

103Add a marketplace file at `~/.agents/plugins/marketplace.json` and store

104your plugins under `~/.codex/plugins/`.

105 

106**Personal marketplace example**

107 

108Step 1: Copy the plugin folder into `~/.codex/plugins/my-plugin`.

109 

110```

111mkdir -p ~/.codex/plugins

112cp -R /absolute/path/to/my-plugin ~/.codex/plugins/my-plugin

113```

114 

115Step 2: Add or update `~/.agents/plugins/marketplace.json` so that the

116plugin entry’s `source.path` points to that directory.

117 

118Step 3: Restart Codex and verify that the plugin appears.

119 

120The marketplace file points to the plugin location, so those directories are

121examples rather than fixed requirements. Codex resolves `source.path` relative

122to the marketplace root, not relative to the `.agents/plugins/` folder. See

123[Marketplace metadata](#marketplace-metadata) for the file format.

124 

125After you change the plugin, update the plugin directory that your marketplace

126entry points to and restart Codex so the local install picks up the new files.

127 

128### Marketplace metadata

129 

130If you maintain a repo marketplace, define it in

131`$REPO_ROOT/.agents/plugins/marketplace.json`. For a personal marketplace, use

132`~/.agents/plugins/marketplace.json`. A marketplace file controls plugin

133ordering and install policies in Codex-facing catalogs. Before you add a plugin

134to a marketplace, make sure its `version`, publisher metadata, and

135install-surface copy are ready for other developers to see.

136 

137```

138{

139 "name": "openai-curated",

140 "interface": {

141 "displayName": "ChatGPT Official"

142 },

143 "plugins": [

144 {

145 "name": "my-plugin",

146 "source": {

147 "source": "local",

148 "path": "./plugins/my-plugin"

149 },

150 "policy": {

151 "installation": "AVAILABLE",

152 "authentication": "ON_INSTALL"

153 },

154 "category": "Productivity"

155 }

156 ]

157}

158```

159 

160- Use top-level `name` to identify the marketplace.

161- Use `interface.displayName` for the marketplace title shown in Codex.

162- Point each plugin entry’s `source.path` at the plugin directory you want

163 Codex to load. For repo installs, that often lives under

164 `./plugins/`. For personal installs, it often lives under

165 `~/.codex/plugins/`.

166- Keep `source.path` relative to the marketplace root, start it with `./`, and

167 keep it inside that root.

168- Always include `policy.installation`, `policy.authentication`, and

169 `category` on each plugin entry.

170- Use `policy.installation` values such as `AVAILABLE`,

171 `INSTALLED_BY_DEFAULT`, or `NOT_AVAILABLE`.

172- Use `policy.authentication` to decide whether auth happens on install or

173 first use.

174 45 

175The marketplace controls where Codex loads the plugin from. `source.path` can46### Install and use a plugin

176point somewhere else if your plugin lives outside those example directories. A

177marketplace file can live in the repo where you are developing the plugin or in

178a separate marketplace repo, and one marketplace file can point to one plugin

179or many.

180 47 

181### How Codex uses marketplaces48Once you open the plugin directory:

182 49 

183A plugin marketplace is a JSON catalog of plugins that Codex can read and501. Search or browse for a plugin, then open its details.

184install.512. Select the install button. In the app, select the plus button or

52 **Add to Codex**. In the CLI, select `Install plugin`.

533. If the plugin needs an external app, connect it when prompted. Some plugins

54 ask you to authenticate during install. Others wait until the first time you

55 use them.

564. After installation, start a new thread and ask Codex to use the plugin.

185 57 

186Codex can read marketplace files from:58After you install a plugin, you can use it directly in the prompt window:

187 59 

188- the curated marketplace that powers the official Plugin Directory60![Codex Plugins page](/images/codex/plugins/plugin-github-invoke.png)

189- a repo marketplace at `$REPO_ROOT/.agents/plugins/marketplace.json`

190- a personal marketplace at `~/.agents/plugins/marketplace.json`

191 61 

192You can install any plugin exposed through a marketplace. Codex installs62Describe the task directly

193plugins into

194`~/.codex/plugins/cache/$MARKETPLACE_NAME/$PLUGIN_NAME/$VERSION/`. For local

195plugins, `$VERSION` is `local`, and Codex loads the installed copy from that

196cache path rather than directly from the marketplace entry.

197 63 

198You can enable or disable each plugin individually. Codex stores each plugin’s64 Ask for the outcome you want, such as "Summarize unread Gmail threads

199on or off state in `~/.codex/config.toml`.65 from today" or "Pull the latest launch notes from Google Drive."

200 66 

201## Build and distribute plugins67 Use this when you want Codex to choose the right installed tools for the

68 task.

202 69 

203### When to create a plugin70Choose a specific plugin

204 71 

205Use local skills when:72 Type <code>@</code> to invoke the plugin or one of its bundled skills

73 explicitly.

206 74 

207- You are iterating on one repo or one workflow.75 Use this when you want to be specific about which plugin or skill Codex

208- The behavior is personal or project-specific.76should use. See [Codex app commands](https://developers.openai.com/codex/app/commands) and

209- You are experimenting before you package something reusable.77[Skills](https://developers.openai.com/codex/skills).

210 78 

211Use plugins when:79### How permissions and data sharing work

212 80 

213- You want the same skills or app integrations available across teams or81Installing a plugin makes its workflows available in Codex, but your existing

214 projects.82[approval settings](https://developers.openai.com/codex/agent-approvals-security) still apply. Any

215- You want to bundle skills, MCP config, and app integrations into one83connected external services remain subject to their own authentication,

216 installable unit.84privacy, and data-sharing policies.

217- You want a stable, versioned package for teammates or a marketplace.

218 85 

219Start local, then package the workflow as a plugin when you are ready to share86- Bundled skills are available as soon as you install the plugin.

220it.87- If a plugin includes apps, Codex may prompt you to install or sign in to

88 those apps in ChatGPT during setup or the first time you use them.

89- If a plugin includes MCP servers, they may require additional setup or

90 authentication before you can use them.

91- When Codex sends data through a bundled app, that app's terms and privacy

92 policy apply.

221 93 

222### Plugin structure94### Remove or turn off a plugin

223 95 

224Every plugin has a manifest at `.codex-plugin/plugin.json`. It can also include96To remove a plugin, reopen it from the plugin browser and select

225a `skills/` directory, an `.app.json` file that points at one or more apps or97**Uninstall plugin**.

226connectors, and assets used to present the plugin across supported surfaces.

227 98 

228- my-plugin/99Uninstalling a plugin removes the plugin bundle from Codex, but bundled apps

100stay installed until you manage them in ChatGPT.

229 101 

230 - .codex-plugin/102If you want to keep a plugin installed but turn it off, set its entry in

103`~/.codex/config.toml` to `enabled = false`, then restart Codex:

231 104 

232 - plugin.json Required: plugin manifest105```toml

233 - skills/106[plugins."gmail@openai-curated"]

234 107enabled = false

235 - my-skill/

236 

237 - SKILL.md Optional: skill instructions

238 - .app.json Optional: app or connector mappings

239 - .mcp.json Optional: MCP server configuration

240 - assets/ Optional: icons, logos, screenshots

241 

242Only `plugin.json` belongs in `.codex-plugin/`. Keep `skills/`, `assets/`,

243`.mcp.json`, and `.app.json` at the plugin root.

244 

245Published plugins typically use a richer manifest than the minimal example that

246appears in quick-start scaffolds. The manifest has three jobs:

247 

248- Identify the plugin.

249- Point to bundled components such as skills, apps, or MCP servers.

250- Provide install-surface metadata such as descriptions, icons, and legal links.

251 

252Here’s a complete manifest example:

253 

254```

255{

256 "name": "my-plugin",

257 "version": "0.1.0",

258 "description": "Bundle reusable skills and app integrations.",

259 "author": {

260 "name": "Your team",

261 "email": "team@example.com",

262 "url": "https://example.com"

263 },

264 "homepage": "https://example.com/plugins/my-plugin",

265 "repository": "https://github.com/example/my-plugin",

266 "license": "MIT",

267 "keywords": ["research", "crm"],

268 "skills": "./skills/",

269 "mcpServers": "./.mcp.json",

270 "apps": "./.app.json",

271 "interface": {

272 "displayName": "My Plugin",

273 "shortDescription": "Reusable skills and apps",

274 "longDescription": "Distribute skills and app integrations together.",

275 "developerName": "Your team",

276 "category": "Productivity",

277 "capabilities": ["Read", "Write"],

278 "websiteURL": "https://example.com",

279 "privacyPolicyURL": "https://example.com/privacy",

280 "termsOfServiceURL": "https://example.com/terms",

281 "defaultPrompt": [

282 "Use My Plugin to summarize new CRM notes.",

283 "Use My Plugin to triage new customer follow-ups."

284 ],

285 "brandColor": "#10A37F",

286 "composerIcon": "./assets/icon.png",

287 "logo": "./assets/logo.png",

288 "screenshots": ["./assets/screenshot-1.png"]

289 }

290}

291```

292 

293`.codex-plugin/plugin.json` is the required entry point. The other manifest

294fields are optional, but published plugins commonly use them.

295 

296### Create your first plugin

297 

298Start with a minimal plugin that packages one skill.

299 

3001. Create a plugin folder with a manifest at `.codex-plugin/plugin.json`.

301 

302```

303mkdir -p my-first-plugin/.codex-plugin

304```108```

305 109 

306`my-first-plugin/.codex-plugin/plugin.json`110## Build your own plugin

307 

308```

309{

310 "name": "my-first-plugin",

311 "version": "1.0.0",

312 "description": "Reusable greeting workflow",

313 "skills": "./skills/"

314}

315```

316 

317Use a stable plugin `name` in kebab-case. Codex uses it as the plugin

318identifier and component namespace.

319 

3202. Add a skill under `skills/<skill-name>/SKILL.md`.

321 

322```

323mkdir -p my-first-plugin/skills/hello

324```

325 

326`my-first-plugin/skills/hello/SKILL.md`

327 

328```

329name: hello

330description: Greet the user with a friendly message.

331 

332Greet the user warmly and ask how you can help.

333```

334 

3353. Follow [Use plugins locally](#use-plugins-locally) to load the plugin in

336 Codex.

337 

338From there, you can add MCP config, app integrations, or marketplace metadata

339as needed.

340 

341### Manifest fields

342 

343Use the top-level fields to define package metadata and point to bundled

344components:

345 

346- `name`, `version`, and `description` identify the plugin.

347- `author`, `homepage`, `repository`, `license`, and `keywords` provide

348 publisher and discovery metadata.

349- `skills`, `mcpServers`, and `apps` point to bundled components relative to

350 the plugin root.

351- `interface` controls how install surfaces present the plugin.

352 

353Use the `interface` object for install-surface metadata:

354 

355- `displayName`, `shortDescription`, and `longDescription` control the title and

356 descriptive copy.

357- `developerName`, `category`, and `capabilities` add publisher and capability

358 metadata.

359- `websiteURL`, `privacyPolicyURL`, and `termsOfServiceURL` provide external

360 links.

361- `defaultPrompt`, `brandColor`, `composerIcon`, `logo`, and `screenshots`

362 control starter prompts and visual presentation.

363 

364### Path rules

365 

366- Keep manifest paths relative to the plugin root and start them with `./`.

367- Store visual assets such as `composerIcon`, `logo`, and `screenshots` under

368 `./assets/` when possible.

369- Use `skills` for bundled skill folders, `apps` for `.app.json`, and

370 `mcpServers` for `.mcp.json`.

371 

372### Publish official public plugins

373 

374Adding plugins to the official Plugin Directory is coming soon.

375 111 

376Self-serve plugin publishing and management are coming soon.112If you want to create, test, or distribute your own plugin, see

113[Build plugins](https://developers.openai.com/codex/plugins/build). That page covers local scaffolding,

114manual marketplace setup, plugin manifests, and packaging guidance.

plugins/build.md +359 −0 added

Details

1# Build plugins

2 

3This page is for plugin authors. If you want to browse, install, and use

4plugins in Codex, see [Plugins](https://developers.openai.com/codex/plugins). If you are still iterating on

5one repo or one personal workflow, start with a local skill. Build a plugin

6when you want to share that workflow across teams, bundle app integrations or

7MCP config, or publish a stable package.

8 

9## Create a plugin with `$plugin-creator`

10 

11For the fastest setup, use the built-in `$plugin-creator` skill.

12 

13![plugin-creator skill in Codex](/images/codex/plugins/plugin-creator.png)

14 

15It scaffolds the required `.codex-plugin/plugin.json` manifest and can also

16generate a local marketplace entry for testing. If you already have a plugin

17folder, you can still use `$plugin-creator` to wire it into a local

18marketplace.

19 

20![how to invoke the plugin-creator skill](/images/codex/plugins/plugin-creator-invoke.png)

21 

22### Build your own curated plugin list

23 

24A marketplace is a JSON catalog of plugins. `$plugin-creator` can generate one

25for a single plugin, and you can keep adding entries to that same marketplace

26to build your own curated list for a repo, team, or personal workflow.

27 

28In Codex, each marketplace appears as a selectable source in the plugin

29directory. Use `$REPO_ROOT/.agents/plugins/marketplace.json` for a repo-scoped

30list or `~/.agents/plugins/marketplace.json` for a personal list. Add one

31entry per plugin under `plugins[]`, point each `source.path` at the plugin

32folder with a `./`-prefixed path relative to the marketplace root, and set

33`interface.displayName` to the label you want Codex to show in the marketplace

34picker. Then restart Codex. After that, open the plugin directory, choose your

35marketplace, and browse or install the plugins in that curated list.

36 

37You don't need a separate marketplace per plugin. One marketplace can expose a

38single plugin while you are testing, then grow into a larger curated catalog as

39you add more plugins.

40 

41![custom local marketplace in the plugin directory](/images/codex/plugins/codex-local-plugin-light.png)

42 

43### Create a plugin manually

44 

45Start with a minimal plugin that packages one skill.

46 

471. Create a plugin folder with a manifest at `.codex-plugin/plugin.json`.

48 

49```bash

50mkdir -p my-first-plugin/.codex-plugin

51```

52 

53`my-first-plugin/.codex-plugin/plugin.json`

54 

55```json

56{

57 "name": "my-first-plugin",

58 "version": "1.0.0",

59 "description": "Reusable greeting workflow",

60 "skills": "./skills/"

61}

62```

63 

64Use a stable plugin `name` in kebab-case. Codex uses it as the plugin

65identifier and component namespace.

66 

672. Add a skill under `skills/<skill-name>/SKILL.md`.

68 

69```bash

70mkdir -p my-first-plugin/skills/hello

71```

72 

73`my-first-plugin/skills/hello/SKILL.md`

74 

75```md

76---

77name: hello

78description: Greet the user with a friendly message.

79---

80 

81Greet the user warmly and ask how you can help.

82```

83 

843. Add the plugin to a marketplace. Use `$plugin-creator` to generate one, or

85 follow [Build your own curated plugin list](#build-your-own-curated-plugin-list)

86 to wire the plugin into Codex manually.

87 

88From there, you can add MCP config, app integrations, or marketplace metadata

89as needed.

90 

91### Install a local plugin manually

92 

93Use a repo marketplace or a personal marketplace, depending on who should be

94able to access the plugin or curated list.

95 

96 Add a marketplace file at `$REPO_ROOT/.agents/plugins/marketplace.json`

97 and store your plugins under `$REPO_ROOT/plugins/`.

98 

99 **Repo marketplace example**

100 

101 Step 1: Copy the plugin folder into `$REPO_ROOT/plugins/my-plugin`.

102 

103```bash

104mkdir -p ./plugins

105cp -R /absolute/path/to/my-plugin ./plugins/my-plugin

106```

107 

108 Step 2: Add or update `$REPO_ROOT/.agents/plugins/marketplace.json` so

109 that `source.path` points to that plugin directory with a `./`-prefixed

110 relative path:

111 

112```json

113{

114 "name": "local-repo",

115 "plugins": [

116 {

117 "name": "my-plugin",

118 "source": {

119 "source": "local",

120 "path": "./plugins/my-plugin"

121 },

122 "policy": {

123 "installation": "AVAILABLE",

124 "authentication": "ON_INSTALL"

125 },

126 "category": "Productivity"

127 }

128 ]

129}

130```

131 

132 Step 3: Restart Codex and verify that the plugin appears.

133 

134 Add a marketplace file at `~/.agents/plugins/marketplace.json` and store

135 your plugins under `~/.codex/plugins/`.

136 

137 **Personal marketplace example**

138 

139 Step 1: Copy the plugin folder into `~/.codex/plugins/my-plugin`.

140 

141```bash

142mkdir -p ~/.codex/plugins

143cp -R /absolute/path/to/my-plugin ~/.codex/plugins/my-plugin

144```

145 

146 Step 2: Add or update `~/.agents/plugins/marketplace.json` so that the

147 plugin entry's `source.path` points to that directory.

148 

149 Step 3: Restart Codex and verify that the plugin appears.

150 

151The marketplace file points to the plugin location, so those directories are

152examples rather than fixed requirements. Codex resolves `source.path` relative

153to the marketplace root, not relative to the `.agents/plugins/` folder. See

154[Marketplace metadata](#marketplace-metadata) for the file format.

155 

156After you change the plugin, update the plugin directory that your marketplace

157entry points to and restart Codex so the local install picks up the new files.

158 

159### Marketplace metadata

160 

161If you maintain a repo marketplace, define it in

162`$REPO_ROOT/.agents/plugins/marketplace.json`. For a personal marketplace, use

163`~/.agents/plugins/marketplace.json`. A marketplace file controls plugin

164ordering and install policies in Codex-facing catalogs. It can represent one

165plugin while you are testing or a curated list of plugins that you want Codex

166to show together under one marketplace name. Before you add a plugin to a

167marketplace, make sure its `version`, publisher metadata, and install-surface

168copy are ready for other developers to see.

169 

170```json

171{

172 "name": "local-example-plugins",

173 "interface": {

174 "displayName": "Local Example Plugins"

175 },

176 "plugins": [

177 {

178 "name": "my-plugin",

179 "source": {

180 "source": "local",

181 "path": "./plugins/my-plugin"

182 },

183 "policy": {

184 "installation": "AVAILABLE",

185 "authentication": "ON_INSTALL"

186 },

187 "category": "Productivity"

188 },

189 {

190 "name": "research-helper",

191 "source": {

192 "source": "local",

193 "path": "./plugins/research-helper"

194 },

195 "policy": {

196 "installation": "AVAILABLE",

197 "authentication": "ON_INSTALL"

198 },

199 "category": "Productivity"

200 }

201 ]

202}

203```

204 

205- Use top-level `name` to identify the marketplace.

206- Use `interface.displayName` for the marketplace title shown in Codex.

207- Add one object per plugin under `plugins` to build a curated list that Codex

208 shows under that marketplace title.

209- Point each plugin entry's `source.path` at the plugin directory you want

210 Codex to load. For repo installs, that often lives under `./plugins/`. For

211 personal installs, a common pattern is `./.codex/plugins/<plugin-name>`.

212- Keep `source.path` relative to the marketplace root, start it with `./`, and

213 keep it inside that root.

214- Always include `policy.installation`, `policy.authentication`, and

215 `category` on each plugin entry.

216- Use `policy.installation` values such as `AVAILABLE`,

217 `INSTALLED_BY_DEFAULT`, or `NOT_AVAILABLE`.

218- Use `policy.authentication` to decide whether auth happens on install or

219 first use.

220 

221The marketplace controls where Codex loads the plugin from. `source.path` can

222point somewhere else if your plugin lives outside those example directories. A

223marketplace file can live in the repo where you are developing the plugin or in

224a separate marketplace repo, and one marketplace file can point to one plugin

225or many.

226 

227### How Codex uses marketplaces

228 

229A plugin marketplace is a JSON catalog of plugins that Codex can read and

230install.

231 

232Codex can read marketplace files from:

233 

234- the curated marketplace that powers the official Plugin Directory

235- a repo marketplace at `$REPO_ROOT/.agents/plugins/marketplace.json`

236- a personal marketplace at `~/.agents/plugins/marketplace.json`

237 

238You can install any plugin exposed through a marketplace. Codex installs

239plugins into

240`~/.codex/plugins/cache/$MARKETPLACE_NAME/$PLUGIN_NAME/$VERSION/`. For local

241plugins, `$VERSION` is `local`, and Codex loads the installed copy from that

242cache path rather than directly from the marketplace entry.

243 

244You can enable or disable each plugin individually. Codex stores each plugin's

245on or off state in `~/.codex/config.toml`.

246 

247## Package and distribute plugins

248 

249### Plugin structure

250 

251Every plugin has a manifest at `.codex-plugin/plugin.json`. It can also include

252a `skills/` directory, an `.app.json` file that points at one or more apps or

253connectors, and assets used to present the plugin across supported surfaces.

254 

255- my-plugin/

256 

257 - .codex-plugin/

258 

259 - plugin.json Required: plugin manifest

260 - skills/

261 

262 - my-skill/

263 

264 - SKILL.md Optional: skill instructions

265 - .app.json Optional: app or connector mappings

266 - .mcp.json Optional: MCP server configuration

267 - assets/ Optional: icons, logos, screenshots

268 

269Only `plugin.json` belongs in `.codex-plugin/`. Keep `skills/`, `assets/`,

270`.mcp.json`, and `.app.json` at the plugin root.

271 

272Published plugins typically use a richer manifest than the minimal example that

273appears in quick-start scaffolds. The manifest has three jobs:

274 

275- Identify the plugin.

276- Point to bundled components such as skills, apps, or MCP servers.

277- Provide install-surface metadata such as descriptions, icons, and legal

278 links.

279 

280Here's a complete manifest example:

281 

282```json

283{

284 "name": "my-plugin",

285 "version": "0.1.0",

286 "description": "Bundle reusable skills and app integrations.",

287 "author": {

288 "name": "Your team",

289 "email": "team@example.com",

290 "url": "https://example.com"

291 },

292 "homepage": "https://example.com/plugins/my-plugin",

293 "repository": "https://github.com/example/my-plugin",

294 "license": "MIT",

295 "keywords": ["research", "crm"],

296 "skills": "./skills/",

297 "mcpServers": "./.mcp.json",

298 "apps": "./.app.json",

299 "interface": {

300 "displayName": "My Plugin",

301 "shortDescription": "Reusable skills and apps",

302 "longDescription": "Distribute skills and app integrations together.",

303 "developerName": "Your team",

304 "category": "Productivity",

305 "capabilities": ["Read", "Write"],

306 "websiteURL": "https://example.com",

307 "privacyPolicyURL": "https://example.com/privacy",

308 "termsOfServiceURL": "https://example.com/terms",

309 "defaultPrompt": [

310 "Use My Plugin to summarize new CRM notes.",

311 "Use My Plugin to triage new customer follow-ups."

312 ],

313 "brandColor": "#10A37F",

314 "composerIcon": "./assets/icon.png",

315 "logo": "./assets/logo.png",

316 "screenshots": ["./assets/screenshot-1.png"]

317 }

318}

319```

320 

321`.codex-plugin/plugin.json` is the required entry point. The other manifest

322fields are optional, but published plugins commonly use them.

323 

324### Manifest fields

325 

326Use the top-level fields to define package metadata and point to bundled

327components:

328 

329- `name`, `version`, and `description` identify the plugin.

330- `author`, `homepage`, `repository`, `license`, and `keywords` provide

331 publisher and discovery metadata.

332- `skills`, `mcpServers`, and `apps` point to bundled components relative to

333 the plugin root.

334- `interface` controls how install surfaces present the plugin.

335 

336Use the `interface` object for install-surface metadata:

337 

338- `displayName`, `shortDescription`, and `longDescription` control the title

339 and descriptive copy.

340- `developerName`, `category`, and `capabilities` add publisher and capability

341 metadata.

342- `websiteURL`, `privacyPolicyURL`, and `termsOfServiceURL` provide external

343 links.

344- `defaultPrompt`, `brandColor`, `composerIcon`, `logo`, and `screenshots`

345 control starter prompts and visual presentation.

346 

347### Path rules

348 

349- Keep manifest paths relative to the plugin root and start them with `./`.

350- Store visual assets such as `composerIcon`, `logo`, and `screenshots` under

351 `./assets/` when possible.

352- Use `skills` for bundled skill folders, `apps` for `.app.json`, and

353 `mcpServers` for `.mcp.json`.

354 

355### Publish official public plugins

356 

357Adding plugins to the official Plugin Directory is coming soon.

358 

359Self-serve plugin publishing and management are coming soon.

quickstart.md +1 −5

Details

1# Quickstart1# Quickstart

2 2 

3ChatGPT Plus, Pro, Business, Edu, and Enterprise plans include Codex. Using Codex with your ChatGPT subscription gives you access to the latest Codex models and features.3Every ChatGPT plan includes Codex.

4 4 

5You can also use Codex with API credits by signing in with an OpenAI API key.5You can also use Codex with API credits by signing in with an OpenAI API key.

6 6 

7For a limited time, **try Codex for free in ChatGPT Free and Go**, or enjoy

8**2x Codex rate limits** with Plus, Pro, Business and Enterprise

9subscriptions.

10 

11## Setup7## Setup

12 8 

13The Codex app is available on macOS (Apple Silicon).9The Codex app is available on macOS (Apple Silicon).

skills.md +3 −3

Details

2 2 

3Use agent skills to extend Codex with task-specific capabilities. A skill packages instructions, resources, and optional scripts so Codex can follow a workflow reliably. Skills build on the [open agent skills standard](https://agentskills.io).3Use agent skills to extend Codex with task-specific capabilities. A skill packages instructions, resources, and optional scripts so Codex can follow a workflow reliably. Skills build on the [open agent skills standard](https://agentskills.io).

4 4 

5Skills are the authoring format for reusable workflows. Plugins are the installable distribution unit for reusable skills and apps in Codex. Use skills to design the workflow itself, then package it as a [plugin](https://developers.openai.com/codex/plugins) when you want other developers to install it.5Skills are the authoring format for reusable workflows. Plugins are the installable distribution unit for reusable skills and apps in Codex. Use skills to design the workflow itself, then package it as a [plugin](https://developers.openai.com/codex/plugins/build) when you want other developers to install it.

6 6 

7Skills are available in the Codex CLI, IDE extension, and Codex app.7Skills are available in the Codex CLI, IDE extension, and Codex app.

8 8 


69 69 

70These locations are for authoring and local discovery. When you want to70These locations are for authoring and local discovery. When you want to

71distribute reusable skills beyond a single repo, or optionally bundle them with71distribute reusable skills beyond a single repo, or optionally bundle them with

72app integrations, use [plugins](https://developers.openai.com/codex/plugins).72app integrations, use [plugins](https://developers.openai.com/codex/plugins/build).

73 73 

74## Distribute skills with plugins74## Distribute skills with plugins

75 75 

76Direct skill folders are best for local authoring and repo-scoped workflows. If76Direct skill folders are best for local authoring and repo-scoped workflows. If

77you want to distribute a reusable skill, bundle two or more skills together, or77you want to distribute a reusable skill, bundle two or more skills together, or

78ship a skill alongside an app integration, package them as a78ship a skill alongside an app integration, package them as a

79[plugin](https://developers.openai.com/codex/plugins).79[plugin](https://developers.openai.com/codex/plugins/build).

80 80 

81Plugins can include one or more skills. They can also optionally bundle app81Plugins can include one or more skills. They can also optionally bundle app

82mappings, MCP server configuration, and presentation assets in a single82mappings, MCP server configuration, and presentation assets in a single

Details

101 101 

102Use Codex to update existing presentations or build new decks by editing slides directly...102Use Codex to update existing presentations or build new decks by editing slides directly...

103 103 

104Data Automation](https://developers.openai.com/codex/use-cases/generate-slide-decks)[![](/images/codex/codex-wallpaper-1.webp)104Data Workflow](https://developers.openai.com/codex/use-cases/generate-slide-decks)[![](/images/codex/codex-wallpaper-1.webp)

105 105 

106### Create browser-based games106### Create browser-based games

107 107 

Details

130 130 

131Mention `@Codex` in Slack to start a task tied to the right repo and environment, then...131Mention `@Codex` in Slack to start a task tied to the right repo and environment, then...

132 132 

133Integrations Automation](https://developers.openai.com/codex/use-cases/slack-coding-tasks)[![](/images/codex/codex-wallpaper-2.webp)133Integrations Workflow](https://developers.openai.com/codex/use-cases/slack-coding-tasks)[![](/images/codex/codex-wallpaper-2.webp)

134 134 

135### Analyze datasets and ship reports135### Analyze datasets and ship reports

136 136 

Details

66 66 

67Use Codex to update existing presentations or build new decks by editing slides directly...67Use Codex to update existing presentations or build new decks by editing slides directly...

68 68 

69Data Automation](https://developers.openai.com/codex/use-cases/generate-slide-decks)[![](/images/codex/codex-wallpaper-2.webp)69Data Workflow](https://developers.openai.com/codex/use-cases/generate-slide-decks)[![](/images/codex/codex-wallpaper-2.webp)

70 70 

71### Kick off coding tasks from Slack71### Kick off coding tasks from Slack

72 72 

73Mention `@Codex` in Slack to start a task tied to the right repo and environment, then...73Mention `@Codex` in Slack to start a task tied to the right repo and environment, then...

74 74 

75Integrations Automation](https://developers.openai.com/codex/use-cases/slack-coding-tasks)75Integrations Workflow](https://developers.openai.com/codex/use-cases/slack-coding-tasks)

Details

44 44 

45Use Codex to update existing presentations or build new decks by editing slides directly...45Use Codex to update existing presentations or build new decks by editing slides directly...

46 46 

47Data Automation](https://developers.openai.com/codex/use-cases/generate-slide-decks)[![](/images/codex/codex-wallpaper-2.webp)47Data Workflow](https://developers.openai.com/codex/use-cases/generate-slide-decks)[![](/images/codex/codex-wallpaper-2.webp)

48 48 

49### Analyze datasets and ship reports49### Analyze datasets and ship reports

50 50