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
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
Reload Cursor Window
In Cursor:
- Press
Cmd+Shift+P(Mac) orCtrl+Shift+P(Windows/Linux) - Type “Developer: Reload Window”
- Press Enter
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
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
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
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!