Skip to main content

AI Assistant Compatibility

ULPI Hooks works with any AI coding assistant that supports lifecycle hooks. This guide provides setup instructions for each supported assistant, compatibility details, and troubleshooting tips.

Compatibility Overview

✅ Fully Compatible Assistants

These assistants support all 8 ULPI lifecycle hooks out of the box:

Claude Code

Anthropic’s official IDE
  • All 8 hooks supported
  • Native integration
  • Zero configuration
  • Best performance

Cursor

AI-first code editor
  • All 8 hooks supported
  • Excellent performance
  • Auto-detects hooks
  • Active development

Windsurf

Collaborative AI editor
  • All 8 hooks supported
  • MCP-native design
  • Fast hook execution
  • Growing ecosystem
Setup: Run ulpi setup and hooks install automatically

Claude Code Setup

Installation

Prerequisites:
  • Claude Code installed (version ≥ 1.0.0)
  • ULPI API token
  • Coordination subscription active
Setup Steps:
1

Install ULPI Package

2

Run Guided Setup

Select “Claude Code” when prompted.
3

Restart Claude Code

4

Verify Hooks Active

Open Claude Code and start a new chat. You should see:

Configuration

Claude Code hooks are configured in ~/.claude-code/hooks/ulpi.config.json:

Performance

Claude Code has the best hook performance:

Troubleshooting

Solution:
  1. Check config exists: ls ~/.claude-code/hooks/ulpi.config.json
  2. Verify API token: ulpi auth verify
  3. Check logs: claude-code --debug-hooks
  4. Reinstall: ulpi setup --force
Solution: Claude Code uses a different compaction trigger. Enable debug logging:
Watch logs for compaction events.

Cursor Setup

Installation

Prerequisites:
  • Cursor installed (version ≥ 0.30.0)
  • ULPI API token
  • Coordination subscription active
Setup Steps:
1

Install ULPI Package

2

Run Guided Setup

Select “Cursor” when prompted.
3

Reload Cursor Window

In Cursor:
  • Press Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux)
  • Type “Developer: Reload Window”
  • Press Enter
4

Verify Hooks Active

Open Cursor composer and check bottom-right status bar:

Configuration

Cursor hooks are configured in ~/.cursor/hooks/ulpi.config.json:

Cursor-Specific Features

Composer Integration: When using Cursor’s composer mode, hooks integrate seamlessly:
Multi-file edits: Cursor can edit multiple files at once. Pre-edit hook checks ALL files:

Performance

Cursor has excellent hook performance:

Troubleshooting

Solution: Enable status bar icon in config:
Then reload window.
Solution: Ensure composer integration enabled:

Windsurf Setup

Installation

Prerequisites:
  • Windsurf installed (version ≥ 1.0.0)
  • ULPI API token
  • Coordination subscription active
Setup Steps:
1

Install ULPI Package

2

Run Guided Setup

Select “Windsurf” when prompted.
3

Restart Windsurf

Close and relaunch Windsurf.
4

Verify Hooks Active

Check Windsurf’s MCP panel:

Configuration

Windsurf hooks are configured in ~/.windsurf/mcp-servers.json:

Windsurf-Specific Features

Collaborative Hooks: Windsurf’s real-time collaboration works with hooks:

Performance

Windsurf has excellent hook performance:

Cline (VS Code Extension) Setup

Installation

Prerequisites:
  • VS Code installed
  • Cline extension installed from marketplace
  • ULPI API token
Setup Steps:
1

Install Cline Extension

In VS Code:
  1. Press Cmd+Shift+X (Extensions)
  2. Search “Cline”
  3. Click “Install”
2

Install ULPI Package

3

Run Setup for Cline

Select “Cline (VS Code)” when prompted.
4

Reload VS Code

  • Press Cmd+Shift+P → “Developer: Reload Window”
5

Verify Hooks

Open Cline panel. You should see:

Limitations

Cline supports 6 out of 8 hooks: ✅ Supported:
  • session-start
  • pre-tool-use:edit
  • post-tool-use:edit
  • user-prompt-submit
  • stop
  • session-end
❌ Not Supported:
  • pre-compact (Cline doesn’t expose compaction events)
  • subagent-stop (Cline doesn’t support subagents)
Workaround for pre-compact: Manually create memory snapshots:

Feature Comparison


Switching Between Assistants

Hooks work across assistants. You can use different assistants for different tasks: Example:
  • Morning: Use Claude Code for architecture planning
    • session-start loads memories
    • pre-compact saves decisions
  • Afternoon: Switch to Cursor for implementation
    • session-start loads same memories
    • pre-edit reserves files
  • Evening: Review with Windsurf in collaboration mode
    • All file reservations visible to collaborators
All assistants share:
  • Same ULPI Memory
  • Same Coordination state
  • Same file reservations
  • Same agent messages

Best Practices

Recommendation:
  • Architecture/Planning: Claude Code (best context preservation)
  • Feature Implementation: Cursor (excellent composer mode)
  • Team Collaboration: Windsurf (real-time collaboration)
  • Quick Edits: Cline (lightweight, VS Code integrated)
Recommendation: Use same agent name across assistantsConfig:
Result:
  • Claude-Code-YourName (when using Claude Code)
  • Cursor-YourName (when using Cursor)
  • Windsurf-YourName (when using Windsurf)
Benefit: Team knows it’s you regardless of assistant
Recommendation: Use global config for consistencySetup:
Override per assistant if needed:

Troubleshooting

General Issues

Diagnosis:
Solutions:
  1. Ensure assistant is restarted after setup
  2. Check API token is valid
  3. Verify Coordination subscription active
  4. Try re-running setup: ulpi setup --force
Diagnosis:
Solutions:
  1. Check which hooks are failing
  2. Enable debug mode: ulpi config set debug=true
  3. Check assistant version (may need update)
  4. Review assistant-specific limitations
Diagnosis:
Solutions:
  1. Check network latency to ULPI API
  2. Enable caching: ulpi config set cacheEnabled=true
  3. Reduce session-start memory loading: min Importance=0.7
  4. Disable non-critical hooks

Next Steps

Getting Started

Complete setup guide with verification steps

Lifecycle Events

Learn when each hook fires and what it enables

Performance Optimization

Optimize hook performance for your workflow

Request Assistant Support

Want your favorite assistant supported? Let us know!