Thank you for your interest in contributing to Vibe Haptic!
- Bun v1.0+ — JavaScript runtime and package manager
- Rust toolchain — for building the native module
- Xcode Command Line Tools — required for macOS development
# Install Rust if needed
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# Install Xcode CLI tools if needed
xcode-select --install# Install dependencies
bun install
# Build everything (native module + TypeScript)
bun run build
# Build native module only
bun run build:nativebun run dev:claude
bun run dev:opencodebun testbun run typecheckThis project uses Biome for code quality.
# Check for issues
bun run lint
# Auto-fix issues
bun run lint:fixLoad the plugin directly from your local directory:
claude --plugin-dir ./Reference the local build in your opencode.jsonc:
Use the built-in CLI to test patterns without running a full agent:
# Play a named pattern
bun run play dopamine
# Play a custom beat
bun run play "66 44 66"The native module wraps macOS MultitouchSupport.framework using napi-rs:
// Trigger haptic feedback
MTActuatorActuate(actuator, actuation_id, 0, 0.0, intensity);- actuation_id: 3 (minimal) to 6 (strong)
- intensity: 0.0 to 2.0
The framework is private but stable across macOS versions.
- Keep changes focused — one feature or fix per PR
- Add tests for new functionality
- Ensure all checks pass (
bun test,bun run typecheck,bun run lint) - Update documentation if needed
{ "plugins": [ "file:///absolute/path/to/vibe-haptic/dist/index.js" ] }