DocumentationSupported Editors

Supported editors

aide-memory was originally built for Claude Code and expanded to Cursor. Both have full hook + MCP wiring at aide-memory init. Codex, Copilot, and Windsurf ship a rules template today; deeper integration may come based on user feedback.

Both editors may need a fresh session (or restart) after aide-memory init so the MCP server registers. Cursor adds a second step: toggle the aide-memory MCP server ON in Settings → MCP.

Legend

  • ✅ supported
  • ❌ not supported
  • ⚠ partial support (see footnote)
  • 📝 rule template only (no hook / MCP wiring yet)

Per-editor table

CapabilityClaude CodeCursorCodexCopilotWindsurf
aide-memory init generates editor config files📝📝📝
MCP tools available in agent sessions1111
Hard-block on file read with scoped memories2
Hard-block on file edit with scoped memories
Soft nudge on re-read (agent-context channel)3
Inline branded status on hard-block
Inline branded status on soft-nudge4
Session-start dynamic context injection5
Session-start context after compaction6
Stop-hook reflection nudges7
Correction detection (UserPromptSubmit / beforeSubmitPrompt)8
Pre-search nudge on Grep
Pre-search nudge on Glob9
Auto-regenerated rule file on memory/config writes10

Current state

Claude Code is the reference adapter. All capabilities listed here work as designed.

Cursor ships with aide-memory at strong parity with Claude Code. aide-memory init writes .cursor/hooks.json, .cursor/mcp.json, and .cursor/rules/aide-memory.mdc (the last one auto-regenerates on memory and config changes). Soft nudges reach the agent via agent_message, hard blocks render branded chrome inline. Remaining gaps are documented on the Cursor editor page.

Codex, Copilot, Windsurf ship a curated rule template today. Deeper integration may come based on user feedback. To request it, open an issue.

Per-editor pages

  • Claude Code, reference UX, branded chrome, in-turn correction detection, full hook parity
  • Cursor, hard-block + soft-via-agent_message, rules-file session context, one-turn-delay corrections, per-Read editor-open coverage gap
  • Windsurf, rule template only
  • Codex, rule template only
  • Copilot, rule template only

Footnotes

  1. Cursor’s MCP config is generated at init. Codex / Copilot / Windsurf ship a rules template only. If you add aide-memory as an MCP server manually in the editor’s own MCP config, the seven tools work identically to Claude Code. 2 3 4

  2. Cursor 3.2.11’s preToolUse:Read hook does NOT fire when the target file is already open in the editor pane (verified empirically 2026-04-27). Files that are NOT open trigger the hook reliably. preToolUse:Write (Edit) fires regardless of editor-open state. Mitigation: per-Edit safety net stays reliable, and the rules-file injection includes “Even when a file is visible to you, call aide_recall for that path” guidance so agents pick up memories on editor-cached reads. The mitigation is empirically verified across the 4-cell file-open validation matrix.

  3. Soft nudges are delivered via Cursor’s agent_message field on permission: "allow", the equivalent of Claude Code’s additionalContext channel. The agent receives the same context payload (memory IDs + recommended tool call) on every fire. Verified empirically on Cursor 3.2.11 (2026-04-27). User-visible chrome on soft fires is the remaining partial gap.

  4. On permission: "deny" (hard-block), Cursor renders user_message chrome inline in chat: the user sees aide-memory · ... status lines just like Claude Code. On permission: "allow" (soft fire), Cursor 3.2.11 logs user_message to the Hooks Output panel but does NOT render it inline in chat. The agent still receives the soft context via agent_message on every fire, so the safety net works; only the user-facing visibility for soft fires is missing.

  5. sessionStart.additional_context is broken on Cursor (staff-confirmed, no workaround). aide-memory delivers the same content via a dynamically regenerated .cursor/rules/aide-memory.mdc with alwaysApply: true, Cursor staff’s officially-endorsed workaround. Content identical, channel different.

  6. Cursor’s sessionStart hook does not re-fire after context compaction. The regenerated rules file partially covers this since Cursor re-reads alwaysApply: true rules each turn, but the dedicated session-start pipeline (that Claude Code gets) is not available.

  7. Stop-hook nudges use Cursor’s followup_message channel instead of Claude Code’s systemMessage. Same effect, different transport.

  8. Cursor detects corrections via beforeSubmitPrompt and writes the same correction-pending flag Claude Code does, but Cursor’s beforeSubmitPrompt hook output supports only continue + user_message, no context injection channel. The user-visible “store this correction” reminder therefore arrives one turn later via the next Stop hook’s followup_message.

  9. Cursor’s documented matcher vocabulary is Shell, Read, Write, Grep, Delete, Task, MCP:<tool>, no Glob matcher. The adapter skips Glob silently. Grep coverage is unaffected.

  10. Claude Code does not need rules regeneration because its SessionStart hook can inject dynamic context directly. The regen pipeline exists for Cursor specifically; Claude Code’s .claude/rules/aide-memory.md is a static template.