Provide Feedback
PLA bug report for Claude Code, Codex, or Cursor gets fixed when it carries a minimal reproduction and the diagnostics each vendor asks for: /bug and a debug log for Claude Code, /feedback and codex doctor --json for Codex, and the build number for Cursor. Feature requests, security vulnerabilities, and corrections to this guide each have a separate channel.
This page is for developers who hit a tool bug and for tech leads who decide what feedback leaves the company. You know the situation: the agent deleted a file it should not have touched, you filed “it broke my repo,” and a week later the issue closed as “cannot reproduce.” The report was missing a version, a log, and a reproduction someone else could run.
What a reproducible bug report gets you
Section titled “What a reproducible bug report gets you”- A two-minute routine that captures the right diagnostics for each tool before the failing state is lost.
- Two copy-paste prompts: one that shrinks a failing session to a minimal reproduction script, and one that checks for duplicates and drafts the issue.
- A way to prove the report is correct, and later that the fix works, without re-reading the whole session.
- The exact controls a team uses to limit or turn off what
/bug,/feedback, and session surveys send. - The right private channel for security issues, and the right channel for mistakes in this guide.
Which channel does each tool use?
Section titled “Which channel does each tool use?”Use the in-tool command first when it exists. It attaches the session context that a hand-written issue usually lacks.
| Purpose | Claude Code | Codex | Cursor |
|---|---|---|---|
| Bug, in the tool | /bug (alias /share) or /feedback | /feedback (“send logs to maintainers”) | No in-tool path verified; see the forum row |
| Bug, public tracker | anthropics/claude-code issues (bug template) | openai/codex issues | The Cursor community forum |
| Feature request | GitHub issue, feature request template | GitHub issue, or upvote an existing one | The Cursor forum |
| Security vulnerability | Anthropic on HackerOne | OpenAI on Bugcrowd | Email security-reports@cursor.com, per the SECURITY.md in cursor/cursor |
| Code contribution | No contributing guide in the repository | Not accepted (“We do not accept external code contributions or pull requests”) | Closed-source |
| Community help | Claude Developers Discord | The issue tracker | The Cursor forum |
The Claude Code and Codex rows were checked on 2026-09-26 against Claude Code v2.1.283, codex-cli 0.157.1, and each repository’s SECURITY.md, issue templates, and docs/contributing.md. Cursor’s site could not be fetched from this environment on 2026-09-26, so the Cursor column rests on the forum and the SECURITY.md in Cursor’s public cursor/cursor repository, and makes no claim about Cursor’s own diagnostic docs.
How do you file a bug report maintainers can reproduce?
Section titled “How do you file a bug report maintainers can reproduce?”-
Capture the diagnostics before you restart anything. A fresh session often loses the failing state, so collect these first.
In the session that misbehaved:
/status # version, model, account, connectivity/doctor # installation and configuration checkup; can fix what it finds/debug the Edit tool rewrote a file outside the working directory/export bug-session.txt/debugturns on debug logging from that point and analyses the log, so it catches the next occurrence, not the one already past. To capture the whole run, relaunch in your terminal with a log file and reproduce:Terminal window claude --versionclaude --debug-file ./cc-debug.logFrom a shell,
claude doctorruns the installation check without opening a session. Note whether a hook fired, an MCP server was involved, or you ran with--dangerously-skip-permissions, because each one changes behaviour.In the TUI:
/status # session configuration and token usage/debug-config # config layers and where each requirement came fromThen, in your terminal:
Terminal window codex --versioncodex doctor --json > codex-doctor.json # redacted, machine-readable reportState the surface (CLI, IDE extension, desktop app, or cloud) and the permission settings in use. A read-only sandbox explains many “it refused to edit my file” reports before anyone reads a log.
Record the exact Cursor build number and the time of the failing request, and include any request or error identifier Cursor shows you. Cursor is closed-source, so these details are what lets its team find the request on their side.
Reproduce once more with extensions disabled. If the problem disappears, name the extension in the report.
-
Shrink the failure to a minimal reproduction. A maintainer runs a 20-line script; nobody replays your two-hour session. Ask the agent to build it in a scratch directory, not in the project where the bug happened.
-
Redact before anything leaves your machine. Search the log, the export, and the reproduction for keys, tokens, internal hostnames, and customer data. When Claude Code writes a local feedback bundle, it redacts known API-key and token patterns; source code and file contents are always included as-is, so check them yourself.
-
Search for duplicates, then draft the issue. An existing issue with your extra evidence gets more attention than a new one that maintainers close as a duplicate.
Replace
anthropics/claude-codewithopenai/codexfor a Codex bug. For Cursor, run the same search on the forum by hand. -
File it, attaching the session where the tool allows it. In Claude Code,
/bugopens a consent screen where you choose how much history to include. In Codex,/feedbackuploads logs, and you can decline the log upload and send only the note (codex-cli 0.157.1). Paste the issue link into your team’s tracker so the workaround has an owner.
Use this skeleton for the public issue. The Claude Code bug template also asks whether the bug is a regression and for the last working version, and makes you confirm you searched existing issues, filed a single bug, and run the latest version.
## What happenedThe agent applied an edit meant for src/api/users.ts to src/api/user.ts.
## ReproductionSteps and prompt: see REPRO.md (attached). `check.sh` exits 1 on the affected version.
## Expected / actualExpected: edit lands in users.ts. Actual: user.ts is modified, users.ts is unchanged.
## Environment- Tool and version: claude --version / codex --version / Cursor build- Model and permission mode: from /status- OS and shell:- Diagnostics: debug log excerpt / codex-doctor.json / Cursor error or request identifier
## Last version that worked (if known)How do you prove the report is right without re-reading the session?
Section titled “How do you prove the report is right without re-reading the session?”The check.sh from step 2 is the oracle. It turns “I think the agent did something odd” into a pass/fail signal that anyone can run, so neither you nor the maintainer has to re-read the transcript.
- Before filing: run
check.shtwice on the current version. It must fail both times. A reproduction that fails once in five runs is still useful, but say so in the issue. - Across versions: install the previous version, run the check, and put the result in the report. “Fails on 2.1.283, passes on 2.1.274” lets maintainers find the change quickly.
- After the vendor ships a fix: upgrade, run
check.sh, and remove your workaround only when it exits 0. Whoever owns the workaround in your tracker signs off on that result. - In your own repository: if the bug corrupted a file type, add a test or a lint rule that catches that corruption. That test keeps protecting you if the regression returns, even before the vendor responds.
To learn the same oracle-first habit for application bugs, see debugging with Claude Code and bug hunting with Codex.
How do you report a regression after an update?
Section titled “How do you report a regression after an update?”Regressions are the reports vendors act on fastest, because a version pair narrows the search.
Claude Code has two release channels. On 2026-10-17, latest is v2.1.302 and stable is v2.1.292 (npm dist-tags); stable is typically about a week behind and skips releases with major regressions. To confirm a regression, install the previous version and rerun the check. On a native install (the default), use claude install with a version number (checked on Claude Code v2.1.286, 2026-09-30):
claude install 2.1.274export DISABLE_AUTOUPDATER=1 # stops the background updater moving you back to latestclaude --version # must print 2.1.274 before you trust the result./check.sh; echo "exit: $?"If you installed with npm instead, run npm install -g @anthropic-ai/claude-code@2.1.274 in place of the first line. Do not mix the two: an npm install on a machine with a native install adds a second copy that /doctor flags, and it may not be the claude on your PATH. Confirm the version with claude --version before you run check.sh. DISABLE_AUTOUPDATER=1 is documented in the Claude Code environment-variable reference (checked 2026-09-26); unset it when the test is done.
To keep a team off fresh regressions, set "autoUpdatesChannel": "stable" in settings.json or through /config, and enforce it with managed settings.
Pin the last version that worked and rerun the check:
npm install -g @openai/codex@LAST_GOOD_VERSIONcodex --version && ./check.sh; echo "exit: $?"Replace LAST_GOOD_VERSION with the version you ran before the update (npm view @openai/codex versions lists them). Return with npm install -g @openai/codex@latest.
Record the build you were on before and after the update. If you run pre-release builds, reproduce once on a stable build before you file, and say which one you tested.
How do you write a feature request that gets triaged?
Section titled “How do you write a feature request that gets triaged?”The Claude Code feature request template opens with a Problem Statement: what you are trying to solve and why you need it. Codex’s contributing guide asks for your use case, the behaviour you want, and why it would improve your workflow. Both reward the same shape:
- One request per issue. The Claude Code template makes you confirm it is “a single feature request (not multiple features).”
- The problem before the solution. “Hooks cannot see which subagent made the edit, so our audit log attributes every change to the parent session” is actionable. “Add subagent IDs to hooks” invites a debate about the wrong design.
- A concrete workflow. Name the files, the commands, and the manual step the feature would remove.
- An upvote over a duplicate. When an issue already exists, add a reaction and a comment with your use case.
What does feedback send, and how does a team control it?
Section titled “What does feedback send, and how does a team control it?”Tech leads need this section before rolling a tool out. The Claude Code facts below come from its data-usage and environment-variable docs, checked on 2026-09-26.
| Control | Claude Code | Codex |
|---|---|---|
| What a report sends | The conversation, including code. You choose the current session (default) or also other sessions from the same project in the last 24 hours or 7 days | Logs, optionally with a codex doctor report attached; you can send the note without logs (codex-cli 0.157.1) |
| Retention | Transcripts sent through /feedback, /bug, or /share: 5 years | Not stated in codex-cli 0.157.1 |
| Turn the command off | DISABLE_FEEDBACK_COMMAND=1 (older name DISABLE_BUG_COMMAND still accepted) | [feedback] enabled = false in config.toml (setting present in codex-cli 0.157.1) |
| Session survey | “How is Claude doing?” records only the rating; CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY=1 turns it off | — |
| Claude-drafted feedback | Claude can queue feedback drafts that you review in /feedback; nothing is sent until you send a draft. Turn off with "feedbackDrafts": "off" in user or managed settings, or CLAUDE_CODE_SEND_FEEDBACK=0 for one session; DISABLE_FEEDBACK_COMMAND also disables it | — |
| Third-party providers | On a third-party provider (Amazon Bedrock, Google Cloud’s Agent Platform (formerly Vertex AI), or Microsoft Foundry) or with no Anthropic credentials, the report is written to ~/.claude/feedback-bundles/ with known key and token patterns redacted; nothing leaves until you forward it | — |
The survey can be followed by a separate question asking to upload the session transcript. Answering Yes uploads the conversation, subagent transcripts, and the session log, retained for up to 6 months. Nothing uploads unless someone selects Yes.
For a team, decide the policy once: which tools may send transcripts, who reviews a report before it leaves for a regulated codebase, and where the setting is enforced. See privacy and data handling for the policy and managed settings for enforcing it.
Where do security vulnerabilities go?
Section titled “Where do security vulnerabilities go?”Never file a vulnerability as a public issue or through /bug. A public issue discloses it to everyone before a fix exists.
- Claude Code: Anthropic’s program on HackerOne, linked from the repository’s
SECURITY.md. - Codex: OpenAI’s program on Bugcrowd, linked from the repository’s
SECURITY.md. - Cursor: email
security-reports@cursor.com, as theSECURITY.mdin the cursor/cursor repository asks (checked 2026-09-26). Never post it on the forum.
If an agent did something unsafe that is not a vulnerability, such as ignoring a deny rule you configured, that is a bug. File it through the normal channel with a reproduction.
How do you report a mistake in this guide?
Section titled “How do you report a mistake in this guide?”The guides on developertoolkit.ai are not open source, so there is no pull request path. Use one of these instead:
- “Improve this page”: the button beside every article opens an issue in the public companion repository with the page path already in the title. Say what is wrong, what is right, and link the source, for example a changelog entry or a
--helpoutput with its version. - Email: hello@developertoolkit.ai for anything else, or see the contact page.
- Discord: the community server, where readers ask about the guides and feature requests are collected.
A correction with a version-stamped source gets fixed fastest. “The -a on-failure value fails on codex-cli 0.157.1 with ‘invalid value’” is easy to verify. “This is outdated” is not.
What goes wrong when you report a bug?
Section titled “What goes wrong when you report a bug?”Closed as “cannot reproduce.” The report described the symptom without a reproduction. Recover by adding REPRO.md, check.sh, and the version pair, then ask for the issue to be reopened. Do not open a second issue.
A secret went out in a log. Rotate the credential first. Editing the issue afterwards does not help, because the original text may already be copied or indexed. Then edit the issue and tell the maintainers what was exposed.
/bug or /feedback does nothing. Your organisation may have set DISABLE_FEEDBACK_COMMAND or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC, or you are on a third-party provider or have no Anthropic credentials, and the report was written to ~/.claude/feedback-bundles/. Check with your admin before you forward the file. For Codex, check whether feedback.enabled is false in your configuration.
Your pull request to Codex was closed. Codex does not accept external code contributions. Post your fix as a root-cause analysis on the issue instead. The Codex contributing guide lists that as the contribution it wants.
The bug only appears on latest. Put the team on the stable channel, file the regression with the version pair, and switch back when check.sh passes on a newer release.
The issue goes quiet. Neither repository’s issue templates nor its contributing and security docs promise a response time (checked 2026-09-26). Add new evidence when you have it, such as another version that fails or a narrower reproduction. Do not post “+1” comments; a reaction does the same without notifying every subscriber.
Where to go next with tool problems
Section titled “Where to go next with tool problems”- Troubleshooting guide: fixes for common Claude Code, Codex, and Cursor problems, which you should check before filing.
- Community resources: forums, Discord servers, and channels where other users compare workarounds.
- FAQ: short answers about plans, models, and setup.
- Privacy and data handling: the team policy for what leaves the company, including feedback transcripts.
Did this guide help you?
One tap, no sign-in.
What will you do with it?
How did it read?
What got in the way? Pick any that apply
Your role?
Thanks. I read every answer. Michał Jaskólski
Did this guide help?
One tap each. Close whenever you like.
no sign-in
Frequently asked questions
What diagnostics does a Claude Code, Codex, or Cursor bug report need?
Claude Code: claude --version, the /status panel, /doctor findings, and a debug log from /debug or claude --debug-file. Codex: codex --version, /status, /debug-config, and codex doctor --json, which emits a redacted report. Cursor: the build number and any error or request identifier Cursor displays.
Where do I report a bug for each tool?
Claude Code: /bug in the session, or a GitHub issue on anthropics/claude-code. Codex: /feedback in the TUI to send logs, and a GitHub issue on openai/codex. Cursor is closed-source, so its community forum is where bugs are reported and triaged.
Can I send a pull request to Codex or Claude Code?
Codex does not accept external code contributions (its contributing.md, checked 2026-09-26); it wants detailed issues, reproductions, and root-cause analysis instead. Security vulnerabilities go to Anthropic's HackerOne program and OpenAI's Bugcrowd program, never a public issue.
What does Claude Code's /bug command send to Anthropic?
A copy of the conversation, including code, after a consent screen where you choose how much session history to include. Anthropic retains these transcripts for 5 years. On a third-party provider (Amazon Bedrock, Google Cloud's Agent Platform (formerly Vertex AI), or Microsoft Foundry) or with no Anthropic credentials, the report is written to ~/.claude/feedback-bundles/ instead. DISABLE_FEEDBACK_COMMAND=1 turns the command off.
How do I report a mistake in this guide?
Use the "Improve this page" button beside any article, which opens an issue in the public companion repository with the page path filled in, or email hello@developertoolkit.ai. The guides are not open source, so pull requests are not the path.