Agent Compatibility
Which agents Waypoint supports for automatic capture and context retrieval, and what each requires.
Waypoint has two separate concerns per agent: capture (automatic session recording via hook) and retrieval (querying context via MCP). Retrieval works with any MCP-compatible agent. Capture depends on whether the agent exposes a lifecycle hook and whether Waypoint can parse the transcript format it produces.
Compatibility overview
| Agent | Surfaces | Capture | Retrieval | Notes |
|---|---|---|---|---|
| Claude Code | CLI, desktop, VS Code, JetBrains | Automatic | Full | Full support |
| VS Code GitHub Copilot | VS Code (IDE) | Automatic | Full | Preview (April 2026) |
| Cursor | IDE | Manual | Full | Hook has transcript path — format unverified |
| Windsurf | IDE | — | Full | No session-end hook |
| Other MCP agents | — | Manual | Full | Run waypoint generate manually after a session |
Claude Code
Surfaces: CLI, desktop app, VS Code extension, JetBrains extension
Claude Code is available across multiple surfaces. All of them share the same .claude/settings.json hook mechanism, so waypoint init covers every surface automatically — no different setup depending on whether you use Claude Code in the terminal or inside an IDE.
Capture: The Stop hook fires after every agent turn. The hook payload includes transcript_path, which Waypoint reads and parses directly.
Retrieval: get_waypoint_context is available immediately after waypoint init by connecting to your Waypoint server's MCP endpoint.
Tool mapping:
| Claude Code tool | Waypoint event type |
|---|---|
Read | file_read |
Edit, Write, MultiEdit | file_edit |
Bash | bash_command |
TodoWrite | agent_plan |
VS Code GitHub Copilot
Surfaces: VS Code (IDE)
VS Code introduced agent hooks in April 2026, currently in Preview. The hook system reads .claude/settings.json by default — the same file Waypoint writes during waypoint init — so no extra configuration is needed.
Retrieval: MCP support is available in VS Code by configuring the Waypoint server MCP endpoint.
Tool mapping:
| VS Code Copilot tool | Waypoint event type |
|---|---|
readFile, read_file | file_read |
editFiles, replace_string_in_file, insert_edit_into_file | file_edit |
createFile, deleteFile | file_edit |
runTerminalCommand, run_in_terminal | bash_command |
Note
VS Code Copilot agent hooks are in Preview. Behaviour may change as the feature stabilises.
Cursor
Surfaces: IDE
Cursor has had a full hook system since v1.7 (October 2025), configured via $REPO/.cursor/hooks.json or ~/.cursor/hooks.json. A stop hook fires when the agent finishes a task, and the payload includes transcript_path.
The remaining question is transcript format: Cursor writes JSONL with its own step structure. Whether Waypoint's parser handles it without modification is unverified. Until that's confirmed, treat Cursor capture as likely-but-not-yet-tested.
waypoint init does not currently write a Cursor hook config. To wire it up manually, add the following to $REPO/.cursor/hooks.json:
{ "stop": [ { "type": "command", "command": "waypoint generate" } ]}Retrieval config (~/.cursor/mcp.json):
{ "mcpServers": { "waypoint": { "type": "http", "url": "https://your-waypoint-server.com/api/mcp", "headers": { "Authorization": "Bearer wp_..." } } }}Windsurf
Surfaces: IDE
Windsurf's Cascade exposes a post_cascade_response_with_transcript hook, but it fires after every response turn — there is no session-end equivalent. Each invocation writes the full conversation transcript (growing across turns) to ~/.windsurf/transcripts/{trajectory_id}.jsonl. Integrating this with Waypoint would require reading the growing file and deduplicating events across invocations, which is a different model than the stop hook approach.
Retrieval config (~/.codeium/windsurf/mcp_config.json):
{ "mcpServers": { "waypoint": { "type": "http", "url": "https://your-waypoint-server.com/api/mcp", "headers": { "Authorization": "Bearer wp_..." } } }}Other MCP-compatible agents
Any agent that supports MCP tools can call get_waypoint_context for retrieval. For capture, waypoint generate accepts a transcript via stdin — if you can export a session transcript from your agent, you can pipe it in manually or wire it to whatever lifecycle hook your agent exposes.
Agent-agnostic design
Session records store the agentModel field but are otherwise model-neutral. A session captured during a Claude Code session is fully readable during a Cursor or Windsurf session querying via MCP. The context layer is portable with the repository regardless of which agent produced it.