attributePRsToAgent: false still injects "Made with Cursor" into gh pr create bodies

Where does the bug appear (feature/product)?

Somewhere else…

Describe the Bug

With PR attribution explicitly disabled (attributePRsToAgent: false in ~/.cursor/cli-config.json and cursor/attributePRsToAgent=false in IDE state), Cursor still appends this
line to GitHub PR bodies when the agent runs gh pr create:

Made with Cursor

Commit messages remain clean; only PR descriptions are affected. Git hooks cannot prevent this because the footer is added to the PR body, not to git commit objects.

Steps to Reproduce

  1. Set attribution off in ~/.cursor/cli-config.json:
    “attribution”: { “attributeCommitsToAgent”: false, “attributePRsToAgent”: false }
  2. Confirm IDE state: cursor/attributePRsToAgent = false (state.vscdb)
  3. Use Cursor Agent to create a GitHub PR via gh pr create --title "..." --body "## Summary\n..."
  4. Open the PR on GitHub
  5. Observe footer at end of PR description: Made with Cursor

Expected Behavior

PR body contains only user/agent-authored content. No Cursor branding or marketing link when attributePRsToAgent is false.

Operating System

Linux

Version Information

Cursor IDE 3.8.11 (e56ad3440df06d22ca7501e65fd518e905486ef0, x64)
CLI config schema version: 1

For AI issues: which model did you use?

Auto (default agent model)

For AI issues: add Request ID with privacy disabled

N/A — not an AI quality issue; attribution injected at PR publish time regardless of model.

Additional Information

Impact: public AGPL OSS repos; unwanted third-party branding in merged PR history.

Workaround: wrap gh pr create with a body sanitizer, or manually edit PR bodies after creation. Should not be required when attribution is disabled.

Related settings found but ineffective for PR bodies:

  • ~/.cursor/cli-config.json → attributePRsToAgent: false
  • state.vscdb → cursor/attributePRsToAgent: false
  • adminSettings.cached shows attributionControls.disableAttribution: false (unclear if separate from CLI flags)

Request: honor attributePRsToAgent for all PR creation paths (IDE agent, CLI agent, gh integration).

Does this stop you from using Cursor

No - Cursor works, but with this issue

A setting like this needs to be absolute.

If the user disables attribution, it should apply across every PR creation path, including gh pr create. Otherwise the setting becomes hard to trust, because users have to know which internal path created the PR before they know whether the opt-out will be respected.

Hey, thanks for the detailed report, and especially for calling out the asymmetry: commits are clean, but the footer only shows up in the PR body. That really narrows it down, and it looks like the footer is being added while bypassing the setting.

To pinpoint it, a couple quick questions:

  1. Which agent ran gh pr create, the local IDE agent or the cursor-agent CLI? ~/.cursor/cli-config.json only affects the CLI agent, and the IDE agent reads its own state, so the path depends on what actually created the PR.

  2. Can you set attributePRsToAgent: false via the settings UI, not by manually editing state.vscdb, then restart Cursor and try gh pr create again? Manual DB edits don’t always map cleanly to how the app reads that property, so I want to rule that out. If the footer still shows up after this, it’s likely not a config method issue and it’s a bug on our side, then I’ll take it.

One more thing: in a similar past case, the cause was forced attribution at the team or enterprise admin level. If Disable attribution isn’t checked in the dashboard, it’s treated as forced on and overrides local config. You’re on personal Pro so it doesn’t directly match, but you mentioned adminSettings.cached → attributionControls.disableAttribution: false. Can you confirm this account isn’t connected to any team or organization anywhere?

Once you test via the UI, let me know what you see.