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
- Full Support (8/8 Hooks)
- Partial Support (6/8 Hooks)
- Coming Soon
✅ 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
ulpi setup and hooks install automaticallyClaude Code Setup
Installation
Prerequisites:- Claude Code installed (version ≥ 1.0.0)
- ULPI API token
- Coordination subscription active
1
Install ULPI Package
2
Run Guided Setup
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:| Hook | Latency | Notes |
|---|---|---|
| session-start | ~130ms | Fastest (native integration) |
| pre-edit | ~100ms | Fastest (local caching) |
| pre-compact | ~180ms | Native compaction API |
| Overall | ~115ms avg | Best-in-class |
Troubleshooting
Hooks not showing on session start
Hooks not showing on session start
Solution:
- Check config exists:
ls ~/.claude-code/hooks/ulpi.config.json - Verify API token:
ulpi auth verify - Check logs:
claude-code --debug-hooks - Reinstall:
ulpi setup --force
Pre-compact hook not firing
Pre-compact hook not firing
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
1
Install ULPI Package
2
Run Guided Setup
3
Reload Cursor Window
In Cursor:
- Press
Cmd+Shift+P(Mac) orCtrl+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:Performance
Cursor has excellent hook performance:| Hook | Latency | Notes |
|---|---|---|
| session-start | ~145ms | Fast startup |
| pre-edit | ~110ms | Batch checks for multi-file |
| pre-compact | ~190ms | Efficient compaction |
| Overall | ~120ms avg | Very good |
Troubleshooting
Status bar not showing hooks
Status bar not showing hooks
Solution:
Enable status bar icon in config:Then reload window.
Composer ignoring file reservations
Composer ignoring file reservations
Solution:
Ensure composer integration enabled:
Windsurf Setup
Installation
Prerequisites:- Windsurf installed (version ≥ 1.0.0)
- ULPI API token
- Coordination subscription active
1
Install ULPI Package
2
Run Guided Setup
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:| Hook | Latency | Notes |
|---|---|---|
| session-start | ~140ms | MCP-native integration |
| pre-edit | ~105ms | Very fast |
| pre-compact | ~185ms | Efficient |
| Overall | ~118ms avg | Excellent |
Cline (VS Code Extension) Setup
Installation
Prerequisites:- VS Code installed
- Cline extension installed from marketplace
- ULPI API token
1
Install Cline Extension
In VS Code:
- Press
Cmd+Shift+X(Extensions) - Search “Cline”
- Click “Install”
2
Install ULPI Package
3
Run Setup for Cline
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
- pre-compact (Cline doesn’t expose compaction events)
- subagent-stop (Cline doesn’t support subagents)
Feature Comparison
| Feature | Claude Code | Cursor | Windsurf | Cline | Roo Code |
|---|---|---|---|---|---|
| Hooks Supported | 8/8 ✅ | 8/8 ✅ | 8/8 ✅ | 6/8 ⚠️ | 6/8 ⚠️ |
| session-start | ✅ | ✅ | ✅ | ✅ | ✅ |
| pre-edit | ✅ | ✅ | ✅ | ✅ | ✅ |
| post-edit | ✅ | ✅ | ✅ | ✅ | ✅ |
| pre-compact | ✅ | ✅ | ✅ | ❌ | ❌ |
| user-prompt | ✅ | ✅ | ✅ | ✅ | ✅ |
| stop | ✅ | ✅ | ✅ | ✅ | ✅ |
| session-end | ✅ | ✅ | ✅ | ✅ | ✅ |
| subagent-stop | ✅ | ✅ | ✅ | ❌ | ❌ |
| Avg Latency | 115ms | 120ms | 118ms | 130ms | 140ms |
| Auto-Setup | ✅ | ✅ | ✅ | ⚠️ Manual | ⚠️ Manual |
| Native Integration | ✅ Best | ✅ Excellent | ✅ Excellent | ⚠️ Extension | ⚠️ CLI |
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
- Same ULPI Memory
- Same Coordination state
- Same file reservations
- Same agent messages
Best Practices
Use best assistant for each task
Use best assistant for each task
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)
Maintain consistent agent identity
Maintain consistent agent identity
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)
Sync config across assistants
Sync config across assistants
Recommendation: Use global config for consistencySetup:Override per assistant if needed:
Troubleshooting
General Issues
Hooks not working after setup
Hooks not working after setup
Diagnosis:Solutions:
- Ensure assistant is restarted after setup
- Check API token is valid
- Verify Coordination subscription active
- Try re-running setup:
ulpi setup --force
Some hooks work, others don't
Some hooks work, others don't
Diagnosis:Solutions:
- Check which hooks are failing
- Enable debug mode:
ulpi config set debug=true - Check assistant version (may need update)
- Review assistant-specific limitations
Hook latency too high
Hook latency too high
Diagnosis:Solutions:
- Check network latency to ULPI API
- Enable caching:
ulpi config set cacheEnabled=true - Reduce session-start memory loading:
min Importance=0.7 - Disable non-critical hooks