Remote-first hook installer for both Claude Code and Cursor.
This repo is the fast path: install hooks, set your token, and start showing your own agents/subagents in the hosted retro hotel.
- Hook runner:
habbo-agent-platform-hook.sh - Relay runtime:
relay_hook.mjs
Build and show your own agents/subagents in the hosted retro hotel quickly:
- Register at https://hotel-portal.fixdev.nl
- Request Pro tier and copy your MCP token
- Clone this repo and run one installer command
git clone https://github.com/tndejong/habbo-hooks-client.git
cd habbo-hooks-client
# set once in your shell session
export HABBO_HOOK_TRANSPORT=remote
export MCP_API_KEY="<your-pro-token>"
# Claude hooks
bash ./claude/install.sh
# Cursor hooks
bash ./cursor/install.shDone. Hooks now post events to the hosted MCP endpoint so your agent behavior can show in-hotel without running the full stack locally.
You also need to connect your IDE to the hosted MCP server.
Cursor (paste into ~/.cursor/mcp.json):
{
"mcpServers": {
"hotel-mcp": {
"url": "https://hotel-mcp.fixdev.nl/mcp",
"headers": {
"Authorization": "Bearer <your-pro-token>"
}
}
}
}Claude Code:
claude mcp add --transport http hotel-mcp https://hotel-mcp.fixdev.nl/mcp \
-H "Authorization: Bearer <your-pro-token>"Global/shared hook runtime files:
habbo-agent-platform-hook.shrelay_hook.mjsmanage_hooks.mjs
App-specific installer scripts are separated by domain:
claude/cursor/openclaw/(reserved for upcoming support)
You can install hooks for:
- Claude Code
- Cursor
- or both
The two apps use different hook config files and event names:
- Claude config:
~/.claude/settings.json(SessionStart,PreToolUse, ...) - Cursor config:
~/.cursor/hooks.json(sessionStart,preToolUse,beforeSubmitPrompt, ...)
This project installs native Cursor hooks into ~/.cursor/hooks.json and does not rely on Cursor third-party Claude-hook loading.
Installers are separated per app so mappings stay correct.
Claude -> internal event:
SessionStart->session_startSessionEnd->session_endUserPromptSubmit->user_prompt_submitPreToolUse->pre_tool_usePostToolUse->post_tool_useSubagentStart->subagent_startSubagentStop->subagent_stopStop->stop
Cursor -> internal event:
sessionStart->session_startsessionEnd->session_endbeforeSubmitPrompt->user_prompt_submitpreToolUse->pre_tool_usepostToolUse->post_tool_usesubagentStart->subagent_startsubagentStop->subagent_stopstop->stop
Install only Claude:
bash ./claude/install.shInstall only Cursor:
bash ./cursor/install.shInstall both:
bash ./install.shStatus:
bash ./status.shUninstall:
bash ./uninstall.shRestart the relevant app after install/uninstall.
HABBO_HOOK_TRANSPORT=auto- tries remote first, falls back to local if remote is unavailable
- works for both hosted and self-hosted setups without any changes
- best choice if you are unsure which setup you are using
HABBO_HOOK_TRANSPORT=remote- relay posts events to
https://hotel-mcp.fixdev.nl/hooks/events - no local
habbo-mcpruntime required - use this if you only use the hosted hotel and never run locally
HABBO_HOOK_TRANSPORT=local- relay runs local
habbo-mcp/src/hooks/habboAgentHook.ts - requires local repo + dependencies
- use this if you only run the full stack locally
HABBO_HOOK_TRANSPORT=auto
HABBO_HOOK_REMOTE_BASE_URL=https://hotel-mcp.fixdev.nl
MCP_API_KEY=<your-token>Notes:
MCP_API_KEYis used as the bearer token for hosted hook events.HABBO_HOOK_REMOTE_TOKENis optional and only needed if you want a separate hook token override.HABBO_HOOK_REMOTE_BASE_URLfalls back toHABBO_HOOK_MCP_BASE_URL.- Ensure token env vars are available to your IDE process (set in your shell profile and restart the IDE).
- for local mode,
HABBO_HOOK_ENABLED=truemust be set inhabbo-mcp/.env.
- Installer is idempotent and safe to run multiple times.
- Existing non-habbo hooks are preserved.
- A timestamped backup is written before each settings change.
- Claude:
~/.claude/settings.json - Cursor:
~/.cursor/hooks.json
- Claude: