Codex Docs Contributing
中文

Contributing

This project is under active development and the code will likely change pretty significantly.

At the moment, we only plan to prioritize reviewing external contributions for bugs or security fixes.

If you want to add a new feature or change the behavior of an existing one, please open an issue proposing the feature and get approval from an OpenAI team member before spending time building it.

New contributions that don't go through this process may be closed if they aren't aligned with our current roadmap or conflict with other priorities/upcoming features.

Development workflow

Writing high-impact code changes

  1. Start with an issue. Open a new one or comment on an existing discussion so we can agree on the solution before code is written.
  2. Add or update tests. Every new feature or bug-fix should come with test coverage that fails before your change and passes afterwards. 100% coverage is not required, but aim for meaningful assertions.
  3. Document behaviour. If your change affects user-facing behaviour, update the README, inline help (codex --help), or relevant example projects.
  4. Keep commits atomic. Each commit should compile and the tests should pass. This makes reviews and potential rollbacks easier.

Opening a pull request

Review process

  1. One maintainer will be assigned as a primary reviewer.
  2. If your PR adds a new feature that was not previously discussed and approved, we may choose to close your PR (see Contributing).
  3. We may ask for changes - please do not take this personally. We value the work, but we also value consistency and long-term maintainability.
  4. When there is consensus that the PR meets the bar, a maintainer will squash-and-merge.

Community values

Getting help

If you run into problems setting up the project, would like feedback on an idea, or just want to say hi - please open a Discussion or jump into the relevant issue. We are happy to help.

Together we can make Codex CLI an incredible tool. Happy hacking! :rocket:

Contributor license agreement (CLA)

All contributors must accept the CLA. The process is lightweight:

  1. Open your pull request.
  2. Paste the following comment (or reply recheck if you've signed before):

text I have read the CLA Document and I hereby sign the CLA

  1. The CLA-Assistant bot records your signature in the repo and marks the status check as passed.

No special Git commands, email attachments, or commit footers required.

Quick fixes

Scenario Command
Amend last commit git commit --amend -s --no-edit && git push -f

The DCO check blocks merges until every commit in the PR carries the footer (with squash this is just the one).

Releasing codex

For admins only.

Make sure you are on main and have no local changes. Then run:

VERSION=0.2.0  # Can also be 0.2.0-alpha.1 or any valid Rust version.
./codex-rs/scripts/create_github_release.sh "$VERSION"

This will make a local commit on top of main with version set to $VERSION in codex-rs/Cargo.toml (note that on main, we leave the version as version = "0.0.0").

This will push the commit using the tag rust-v${VERSION}, which in turn kicks off the release workflow. This will create a new GitHub Release named $VERSION.

If everything looks good in the generated GitHub Release, uncheck the pre-release box so it is the latest release.

Create a PR to update Formula/c/codex.rb on Homebrew.

Security & responsible AI

Have you discovered a vulnerability or have concerns about model output? Please e-mail security@openai.com and we will respond promptly.