No way to opt out of third-party (Claude Code / Codex) config loading - the flag is hardcoded

Feature request for product/service

Cursor CLI

Describe the request

Summary
The IDE has a toggle for compatibility loading under Settings → “Rules, Skills and Subagents”. cursor-agent has no equivalent. Please add one.

Why the IDE toggle is not enough
My workflow drives Cursor through the CLI (cursor-agent --workspace --add-dir ), which is where all of my agent work actually runs. The IDE setting has no effect there.

Evidence (cursor-agent 2026.07.23-e383d2b, Linux)
Discovery paths carry a requiresThirdParty flag: .cursor/skills and .agents/skills are false, while .claude/skills, .codex/skills and .claude/agents are true. The gate getThirdPartyExtensibilityEnabled() is honoured in computeAgentsDirs(), in loadRulesFromDirAndAncestors() and in the nested-extensibility walk, so the plumbing for an opt-out already exists end to end. The CLI entrypoint simply constructs the getter as () => true. I could find no key in cli-config.json and no CURSOR_* environment variable that feeds it.

Surface affected (broader than the existing skills-roots request)
CLAUDE.md, CLAUDE.local.md, .claude/agents, .claude/skills, .claude/commands, hooks loaded from .claude/settings.json, .claude/settings.local.json and ~/.claude/settings.json, and .codex/skills.

Concrete harm

Subagent definitions written for Claude Code reference tools and models that do not exist in Cursor, so Cursor is offered agents it cannot run.
Duplicate rules waste context: a repo with AGENTS.md plus a CLAUDE.md symlink to it gets the entire ruleset loaded twice, since both filenames are treated as rule files.
Imported hooks execute. Config I wrote for a different tool’s trust model runs under Cursor without me opting in.
Requested
Any one of: a cli-config.json key (e.g. “extensibility”: { “thirdParty”: false }), a --no-third-party-extensibility flag, or an honoured environment variable. Per-source granularity (rules / skills / subagents / commands / hooks) would be ideal, since the compatibility import is genuinely useful for skills and actively harmful for subagents and hooks.

Related threads

Toggle (or allowlist) for Agent Skills roots: covers skills roots only, and the staff answer points at the IDE setting, which does not reach the CLI.
Cursor loads CLAUDE.md even when the “third party rules” toggle is turned off: suggests the IDE path also needs a fix, not just the CLI.

Operating System (if it applies)

Linux

Hey, thanks for such a detailed report. Your breakdown of requiresThirdParty and the spots where the gate is already honored matches exactly what we’re seeing on our side. This is a real gap: the IDE toggle Rules, Skills and Subagents doesn’t apply in the CLI, and in cursor-agent there’s currently no key in cli-config.json, no flag, and no env var to disable it.

I also agree with your point about hooks and permissions from .claude/settings.json. That’s the most problematic part, since a config under someone else’s trust model gets applied without an explicit opt-in. The idea of per-source granularity, like skills separately from subagents and hooks, also makes sense, and I noted that in the request.

I’ve opened a feature request for an opt-out for third-party loading in the CLI and linked your thread as the main reference. I can’t share a timeline yet, but the request is logged and linked to related discussions. If there’s an update, I’ll reply here.

I hit this and often use cursor agent and claude code on the same machine. I like to customize certain workflows and target different ones in the 2 products. What I’m using now which is the best work around I could find is this:

# Cursor Agent with Claude Code and Codex user configuration hidden.
agent() {
  case "$(uname -s)" in
    Darwin)
      local profile
      profile='(version 1)
        (allow default)
        (deny file-read*
          (subpath "'"$HOME"'/.claude")
          (subpath "'"$HOME"'/.codex"))'
      command sandbox-exec \
        -p "$profile" \
        cursor-agent "$@"
      ;;
    Linux)
      mkdir -p "$HOME/.claude" "$HOME/.codex"
      command bwrap \
        --dev-bind / / \
        --die-with-parent \
        --tmpfs "$HOME/.claude" \
        --tmpfs "$HOME/.codex" \
        -- \
        cursor-agent "$@"
      ;;
    *)
      command cursor-agent "$@"
      ;;
  esac
}

I’ve only tested on a mac so far but my quick test shows it works for a clean plugins listing which I couldn’t get to work before. Its unclear if this will work long term or cause issues with cursor’s sandboxing, but wanted to share.