Summary
Codex ships with a default git identity of:
user.name = Codex Test
user.email = codex@example.com
Any user who runs Codex before manually setting git config user.email produces commits authored by this placeholder. Because example.com is a reserved domain (RFC 2606) that OpenAI does not own, the string codex@example.com has been claimed on the public profile of an unrelated
GitHub user — resulting in silent commit misattribution across Codex users.
Reproduction
- Install Codex (CLI or cloud environment) and run it in a fresh repo without overriding git identity.
- Make any commit through Codex.
- Inspect the commit:
git log -1 --pretty=fuller
Author: Codex Test codex@example.com
Commit: Codex Test codex@example.com
- Push to GitHub and open the commit in any downstream tool that resolves author email to a GitHub profile (Vercel, GitHub API consumers, CI dashboards).
Observed behavior
- GitHub commit UI renders the raw string "Codex Test".
- Vercel deployment details, GitHub API
author.login, and various dashboards resolve the email codex@example.com and display the GitHub user abiataprado — a stranger with no affiliation to our repository, organization, or OpenAI.
- Concretely, merge commit
02bec15ec63e3af6e2a7a29b32fc21829bb47bb7 in our repo shows this behavior: the merge itself is authored by me, but it includes a Codex-authored commit (f04be8c1) with codex@example.com, and Vercel surfaces abiataprado's avatar on the deploy.
Expected behavior
Codex should ship with a default identity on a domain OpenAI controls so that attribution cannot be captured by third parties — for example:
user.name = Codex
user.email = noreply@codex.openai.com
Even better: on first run, detect missing user.email in the active repo and prompt the user to set one, so real contributors never ship with the placeholder in the first place.
Impact
- Every Codex user who doesn't override the default leaks commit attribution to an unrelated account.
- A stranger's GitHub avatar appears on production deploys, internal dashboards, and commit histories across many organizations.
- Attribution cannot be corrected after the fact without rewriting history.
- Not a security/access issue (no repo access, push rights, or webhooks granted), but a trust and identity-confusion issue affecting every Codex user with the default config.
Root cause
example.com is a reserved documentation domain (RFC 2606) with no MX records — no one can verify it via GitHub's email-verification flow. However, GitHub's public profile "email" field accepts any unverified string, and tools that resolve author emails to GitHub profiles match
against it. Because the default is on a domain OpenAI does not own, the association is first-come-first-served.
Suggested fix
- Replace the default
user.email with an OpenAI-controlled address (e.g. noreply@codex.openai.com).
- On first use, if the active repo has no
user.email set, prompt the user to configure one before making commits.
- Optionally, document the issue so existing users can check their local/global config.
Happy to provide additional commit SHAs or screenshots if useful.
Summary
Codex ships with a default git identity of:
user.name = Codex Test
user.email = codex@example.com
Any user who runs Codex before manually setting
git config user.emailproduces commits authored by this placeholder. Becauseexample.comis a reserved domain (RFC 2606) that OpenAI does not own, the stringcodex@example.comhas been claimed on the public profile of an unrelatedGitHub user — resulting in silent commit misattribution across Codex users.
Reproduction
git log -1 --pretty=fuller
Author: Codex Test codex@example.com
Commit: Codex Test codex@example.com
Observed behavior
author.login, and various dashboards resolve the emailcodex@example.comand display the GitHub userabiataprado— a stranger with no affiliation to our repository, organization, or OpenAI.02bec15ec63e3af6e2a7a29b32fc21829bb47bb7in our repo shows this behavior: the merge itself is authored by me, but it includes a Codex-authored commit (f04be8c1) withcodex@example.com, and Vercel surfacesabiataprado's avatar on the deploy.Expected behavior
Codex should ship with a default identity on a domain OpenAI controls so that attribution cannot be captured by third parties — for example:
user.name = Codex
user.email = noreply@codex.openai.com
Even better: on first run, detect missing
user.emailin the active repo and prompt the user to set one, so real contributors never ship with the placeholder in the first place.Impact
Root cause
example.comis a reserved documentation domain (RFC 2606) with no MX records — no one can verify it via GitHub's email-verification flow. However, GitHub's public profile "email" field accepts any unverified string, and tools that resolve author emails to GitHub profiles matchagainst it. Because the default is on a domain OpenAI does not own, the association is first-come-first-served.
Suggested fix
user.emailwith an OpenAI-controlled address (e.g.noreply@codex.openai.com).user.emailset, prompt the user to configure one before making commits.Happy to provide additional commit SHAs or screenshots if useful.