Claude Code hooks that notify an Android bridge app so Huawei Band 10 can vibrate.
This plugin requires configuration values that are prompted when the plugin is enabled. Sensitive values are stored in your system keychain.
dry_runIf enabled, write logs but do not send HTTP requests.
${user_config.dry_run}phone_urlThe /notify endpoint shown by the Android bridge app, for example http://172.18.4.202:8765/notify.
${user_config.phone_url}Matches all tools
Hooks run on every tool call, not just specific ones
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
timeout_secondsHow long the hook should wait when sending a notification.
${user_config.timeout_seconds}cooldown_secondsMinimum seconds between duplicate notifications for the same event.
${user_config.cooldown_seconds}This project has two parts:
Huawei Health syncs the Android notification to Huawei Band 10, which triggers vibration.
Your Claude Code for VSCode environment does not support /plugin, so use global hooks.
Run once in PowerShell:
powershell -NoProfile -ExecutionPolicy Bypass -File D:\Desktop\app\band\tools\install-global-hooks.ps1
This writes hooks to:
C:\Users\Lenovo\.claude\settings.json
And writes the global phone config to:
C:\Users\Lenovo\.claude\band-notifier.config.json
This applies to every Claude Code project. You do not need to create band-notifier.config.json in new projects.
Edit:
C:\Users\Lenovo\.claude\band-notifier.config.json
Example:
{
"phoneUrl": "http://172.18.4.202:8765/notify",
"timeoutSeconds": 3,
"cooldownSeconds": 5,
"dryRun": false
}
Only change phoneUrl when the phone IP changes.
Open this project in Android Studio and run app on the phone.
The app shows a URL like:
Server URL: http://172.18.4.202:8765/notify
The HTTP server runs as a foreground service. Keep the persistent "Claude Band Notifier" notification enabled. On Huawei phones, also allow background activity or disable battery optimization for this app if notifications stop after the screen turns off.
Health check:
Invoke-RestMethod -Uri "http://172.18.4.202:8765/health"
Send a test notification:
Invoke-RestMethod `
-Uri "http://172.18.4.202:8765/notify" `
-Method Post `
-ContentType "application/json" `
-Body '{"agent":"claude_code","source":"vscode","event":"permission_request","title":"Claude Code","message":"Permission required","priority":"high"}'
| Hook | Meaning |
|---|---|
PermissionRequest | Claude Code needs permission |
Notification | Claude Code needs attention |
Stop | Claude Code response finished |
Check:
C:\Users\Lenovo\.claude\band-notifier\notify-band.log
If the log contains sent event=completed, the VSCode / Claude side is working.
powershell -NoProfile -ExecutionPolicy Bypass -File D:\Desktop\app\band\tools\uninstall-global-hooks.ps1
npx claudepluginhub fengyaqi-coder/claude-band-notifier --plugin huawei-band-notifierUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Memory compression system for Claude Code - persist context across sessions
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses