From everything-evenhub
Test and debug Even Hub G2 apps using the desktop simulator—launch, configure, debug, take screenshots, and understand simulator vs hardware differences. Use when testing apps without physical glasses.
npx claudepluginhub even-realities/everything-evenhub --plugin everything-evenhubThis skill is limited to using the following tools:
> The simulator is a supplement to — not a replacement for — hardware testing.
Automates EvenHub glasses simulator via localhost HTTP API: sends glasses inputs (up, down, click, double-click), captures RGBA glasses/webview screenshots, polls console logs. Use for programmatic testing.
Manages iOS Simulator devices via xcrun simctl: create/boot/erase/delete, app install/launch, push/location/permissions simulation, deep links, screenshots/videos/logs.
Manages iOS Simulator devices (boot, create, delete) and apps (install, launch) via execute_simulator_command MCP tool for lifecycle, diagnostics, troubleshooting.
Share bugs, ideas, or general feedback.
The simulator is a supplement to — not a replacement for — hardware testing.
npm install -g @evenrealities/evenhub-simulator
Version: v0.7.1. Cross-platform: macOS, Linux, Windows.
evenhub-simulator http://localhost:5173
evenhub-simulator -g http://localhost:5173 # with glow effect
evenhub-simulator -b spring http://localhost:5173 # with spring bounce
evenhub-simulator -c ./my-config.toml http://localhost:5173 # custom config
| Option | Description |
|---|---|
-c, --config <path> | Path to config file |
-g, --glow | Enable glow effect on glasses display |
--no-glow | Disable glow effect (overrides config) |
-b, --bounce <type> | Bounce animation: default or spring |
--list-audio-input-devices | List available audio input devices |
--aid <device> | Choose specific audio input device |
--no-aid | Use default audio device (overrides config) |
--print-config-path | Print default config file path and exit |
--automation-port <port> | Start automation HTTP server on this port (e.g. 9898) |
--completions <shell> | Generate shell completions: bash, elvish, fish, powershell, zsh |
-V, --version | Print version |
-h, --help | Print help |
| Platform | Location |
|---|---|
| macOS | ~/Library/Application Support/ |
| Linux | $XDG_CONFIG_HOME or ~/.config/ |
| Windows | {FOLDERID_RoamingAppData} |
Use evenhub-simulator --print-config-path to see the exact path.
Keyboard and mouse inputs are mapped to glasses gestures:
| Input | Glasses Equivalent |
|---|---|
| Up | Swipe up / scroll up |
| Down | Swipe down / scroll down |
| Click | Single tap |
| Double Click | Double tap |
--list-audio-input-devices--aid <device-id>event.audioEvent.audioPcm (Uint8Array)Click the simulator display to export an RGBA PNG to the current working directory. The filename is timestamp-based. The file path is shown in stdout and the glasses web inspector console.
RUST_LOG=debug evenhub-simulator <url> — logs raw payload parse errors1 (TOUCH_EVENT_FROM_GLASSES_R) in the simulator| Feature | Simulator | Real Glasses |
|---|---|---|
onDeviceStatusChanged | NOT emitted (hardcoded) | Real-time status updates |
eventSource | Hardcoded as 1 | Actual input source (left/right arm, ring) |
imuData | Always null | Real IMU x/y/z data when enabled |
| Font rendering | Approximation | Firmware LVGL font |
| List scrolling | May differ from hardware | Native firmware scroll |
| Image memory | No limits enforced | Hardware memory limits apply |
| Error handling | May differ in edge cases | Hardware behavior |
onDeviceStatusChanged never fires in simulatorimuData is always nulleventSource = 1)npm run dev # Start dev server
evenhub-simulator -g http://localhost:5173 # Launch simulator
# Interact via keyboard/mouse
# Click display to take screenshots
# Iterate on code — auto-reloads
# Validate on real hardware before deploy
evenhub-simulator --completions zsh > ~/.zsh/completions/_evenhub-simulator
evenhub-simulator --completions bash > /etc/bash_completion.d/evenhub-simulator
evenhub-simulator --completions fish > ~/.config/fish/completions/evenhub-simulator.fish
$ARGUMENTS