They're all impressive, but also limited by how much context you give them, and they each want their context in different places.
Cursor uses .cursor/rules, Claude Code looks for CLAUDE.md, Codex and Jules want AGENTS.md (and there are .windsurfrules, .clinerules, .github/copilot-instructions.md...)
I used to put hundreds of lines of context in tool-specific formats like CLAUDE.md, but lately I've been experimenting with a simpler approach: