Getting Started with ULPI Hooks
One command. Automatic configuration. All 8 lifecycle hooks active in under 5 minutes. This guide walks you through installing ULPI Hooks and verifying they’re working correctly.Prerequisites
Before installing Hooks, ensure you have:ULPI Account
Sign up at app.ulpi.io if you haven’t already
API Token
Generate an API token from your API Keys page
Coordination Subscription
Hooks require an active Coordination subscription (Starter $29/mo or higher)
Compatible IDE
Claude Code, Cursor, or Windsurf installed (full support for all 8 hooks)
Bundle Discount: Coordination + Memory subscriptions include Hooks FREE. See pricing for details.
Installation
Step 1: Install the ULPI Package
The ULPI package includes the CLI, MCP bridge, and all 8 lifecycle hooks in one install:Why global? Global installation makes the
ulpi command available everywhere, simplifying setup across multiple projects.Step 2: Run the Guided Setup Wizard
The setup wizard automatically detects your installed IDEs and configures hooks for each:1
Enter API Token
When prompted, paste your ULPI API token:
2
Select IDEs
The wizard scans your system and lists detected IDEs:Select all IDEs you want to use with ULPI Hooks.
3
Configure Hook Settings
Choose your hook behavior preferences:Recommended: Accept defaults (Yes for all except debug logging)
4
Automatic Configuration
The wizard creates config files for each selected IDE:
Step 3: Restart Your IDE
For hooks to take effect, restart each IDE you configured:- Claude Code
- Cursor
- Windsurf
- Cline
Verify Hooks Are Working
After restarting your IDE, verify hooks are active:1. Check Hook Status
Run the status command to see active hooks:2. Test Session Start Hook
Open your IDE and start a new chat session. You should see a coordination dashboard:If you see this dashboard: Session-start hook is working! ✅
3. Test Pre-Edit Hook (File Conflict Prevention)
Try editing a file that another agent has reserved:1
Identify Reserved File
From the coordination dashboard, note a file reserved by another agent (e.g.,
auth.ts reserved by Alice)2
Attempt to Edit
In your IDE, try to modify that file. The pre-edit hook should block you:
3
Verify Blocking
The edit should be prevented, and you should see the blocking message.
If editing was blocked: Pre-edit hook is working! ✅
4. Test File Reservation (Auto-Reserve)
Edit a file that’s NOT reserved by anyone:1
Edit Unreserved File
Open and modify any file not shown in the active reservations list
2
Check Reservation
After saving, run:You should see your new reservation:
3
Verify Auto-Reservation
If your file appears in the list: Auto-reservation is working! ✅
5. Test User-Prompt Hook (Message Alerts)
Have another agent (or yourself from another IDE) send you an urgent message:1
Send Urgent Message
From another IDE or via CLI:
2
Submit Prompt
In your IDE, type any message to your AI assistant and press Enter
3
Check for Alert
Before the AI responds, you should see an urgent message alert:
4
Verify Alert Display
If you see the alert: User-prompt hook is working! ✅
Hook Configuration
All hooks are configured in~/.ulpi/config.json. You can customize behavior:
~/.ulpi/config.json
Common Customizations
Disable specific hooks
Disable specific hooks
Set
"enabled": false for any hook you don’t want:Change default reservation mode
Change default reservation mode
Switch between
shared (multiple readers) and exclusive (one writer):Enable debug logging
Enable debug logging
See detailed hook execution logs:Logs appear in your IDE’s terminal/console.
Adjust memory snapshot threshold
Adjust memory snapshot threshold
Control which memories are saved during compaction:
Troubleshooting
Hooks not activating after restart
Symptoms: No coordination dashboard on session start, edits not checking reservations Solutions:- Verify installation:
ulpi hooks status - Check API token is valid:
ulpi auth verify - Ensure Coordination subscription is active
- Check hook config file exists:
ls ~/.ulpi/config.json - Enable debug logging and check for errors
”Token invalid” error during setup
Symptoms: Setup wizard rejects your API token Solutions:- Generate a new token at app.ulpi.io/api-keys
- Ensure token has full permissions (not read-only)
- Copy token carefully (no extra spaces)
- Try manual configuration:
ulpi config set apiToken=<token>
Pre-edit hook not blocking conflicts
Symptoms: You can edit files reserved by other agents Solutions:- Check
preEdit.blockConflictsistruein config - Verify you’re connected to Coordination:
ulpi coordination status - Ensure reservation exists:
ulpi coordination list-reservations - Check debug logs for hook execution errors
Session-start hook too slow
Symptoms: IDE takes 5+ seconds to start sessions Solutions:- Disable dashboard display:
sessionStart.showDashboard = false - Don’t load all memories:
sessionStart.loadMemories = false - Check network latency to ULPI API
- Ensure you’re on a stable internet connection
Hooks work in one IDE but not another
Symptoms: Cursor hooks work, but Claude Code hooks don’t (or vice versa) Solutions:- Run
ulpi setupagain and select all IDEs - Check IDE-specific config files were created
- Verify IDE supports lifecycle hooks (see compatibility)
- Update IDE to latest version
Advanced: Manual Hook Installation
If the guided setup doesn’t work, you can install hooks manually:1
Create Config Directory
2
Create Config File
3
Install IDE-Specific Hooks
- Claude Code
- Cursor
- VS Code (Cline)
4
Verify Installation
Next Steps
Now that hooks are installed and working, explore their capabilities:Lifecycle Events Deep Dive
Learn exactly when each hook fires and what MCP tools it uses
File Conflict Prevention
Master the pre-edit hook and achieve zero merge conflicts
Memory Integration
Preserve context automatically with pre-compact memory snapshots
Real-World Use Cases
See how teams use hooks to coordinate 3, 5, or 10+ agents