Hands-free yes/no interactions for Claude Code using AirPods head gestures
Nod Code is a Claude Code plugin that enables gesture-based permission requests. When Claude asks for permission to run commands, edit files, or perform tasks, you can simply nod (yes) or shake (no) your head instead of clicking buttons.
Perfect for:
- Hands-free coding sessions
- When your hands are on the keyboard and you don't want to reach for the mouse
- Accessibility scenarios
- Looking cool while pair programming π
When Claude Code asks for permission, nodcode:
- β Checks if your AirPods are connected
- π Speaks the permission request using your Mac's voice
- π Listens for your head gesture (15 seconds)
- β Approves on nod, denies on shake
- π Falls back to normal UI if no gesture detected
Terminal setup (copy and paste):
brew install hyusap/tap/bobble
claude plugin marketplace add hyusap/cc
claude plugin install nodcode
claudeIn Claude Code chat:
/plugin marketplace add hyusap/cc
/plugin install nodcode@hyusap
/nodcode:setup
Put on your AirPods and you're ready! Nod for yes, shake for no.
- macOS: 14.0 or later
- Claude Code: 1.0.33 or later
- bobble: The head gesture detection CLI (install instructions)
- AirPods: AirPods Pro, AirPods Max, or Beats Fit Pro
Add Ayush's plugin marketplace to Claude Code:
/plugin marketplace add hyusap/ccOption A: From the marketplace (recommended)
/plugin install nodcode@hyusapOption B: Local installation (for development/testing)
Clone this repository and load it with --plugin-dir:
git clone https://github.com/hyusap/nodcode.git
claude --plugin-dir ./nodcodeOnce the plugin is loaded, run the setup command in Claude Code:
/nodcode:setupThis interactive setup will:
- Check if bobble is installed (and offer to install it via Homebrew if not)
- Verify your AirPods are connected and available
- Test gesture detection
- Confirm everything is working
Manual bobble installation (if you prefer):
brew install hyusap/tap/bobbleOnce installed, nodcode automatically handles permission requests:
- Put on your AirPods (Pro, Max, or Beats Fit Pro)
- Start Claude Code with the plugin enabled
- When Claude asks for permission:
- You'll hear the request spoken aloud
- Nod your head to approve (β)
- Shake your head to deny (β)
- Do nothing for 15 seconds to see the normal permission UI
/nodcode:setup- Interactive setup to install bobble and verify AirPods configuration
nodcode is a Claude Code PermissionRequest hook that integrates with bobble:
- Hook triggers when Claude needs permission for a tool (Bash, Write, Edit, Task, etc.)
- Availability check - Uses
bobble --checkto verify AirPods are connected (8ms) - Voice prompt - Speaks the request using macOS
saycommand - Gesture detection - Runs
bobble --timeout 15 --sensitivity 0.5 - Response - Returns JSON decision to Claude Code based on gesture
The default sensitivity (0.5) uses these thresholds:
- Nod: ~6Β° to ~19Β° pitch movement
- Shake: ~13Β° to ~33Β° yaw movement
To adjust gesture sensitivity, modify the --sensitivity flag in hooks/permission-with-gesture.sh:
"$BOBBLE" --timeout 15 --sensitivity 0.5 # Default
# Lower = more sensitive (0.1-0.4)
# Higher = less sensitive (0.6-1.0)Change the --timeout value (in seconds):
"$BOBBLE" --timeout 15 # Default: 15 secondsInstall bobble:
brew install hyusap/tap/bobble- Ensure your AirPods Pro/Max or Beats Fit Pro are connected
- Make sure you're wearing them (motion detection only works when worn)
- Try disconnecting and reconnecting your AirPods
- Make more pronounced head movements
- Try lowering the sensitivity in the hook configuration
- Ensure your AirPods fit snugly
This is expected behavior! If:
- AirPods aren't available
- No gesture is detected within 15 seconds
- bobble encounters an error
nodcode gracefully falls back to the normal Claude Code permission UI.
nodcode/
βββ .claude-plugin/
β βββ plugin.json # Plugin manifest
βββ hooks/
β βββ hooks.json # Hook configuration
β βββ permission-with-gesture.sh # Permission hook script
βββ commands/
β βββ check.md # /nodcode:check command
βββ README.md
βββ LICENSE
- bobble - The underlying head gesture detection CLI
- Claude Code - AI coding assistant
MIT License - see LICENSE for details
Created by @hyusap
Issues and pull requests welcome! Please check the issue tracker.