Even Hub plugin / G2 audio bridge
Poke G2 Ambient Companion
Capture G2 microphone audio inside an Even Hub plugin, stream it from the phone to Poke, transcribe it, and decide when and what to show back on the G2 HUD.
01 / How it flows
Architecture
The phone is the host. Glasses capture audio, the phone WebView streams it, Poke processes it, and the HUD shows the result.
G2 four-mic array
The glasses capture a 16 kHz mono stream from the four-microphone array.
Even Hub plugin WebView
The plugin runs in the phone app's WebView. The phone is the host - app code never runs on the glasses.
Authenticated WebSocket gateway
PCM streams over WSS /v1/g2/audio with a short-lived bearer token.
Poke transcription + policy
Audio is transcribed; a response policy decides what the HUD should show.
G2 HUD
Decisions render back on the 576x288 monochrome display.
02 / Simulated hardware
G2 live preview
A faithful 576x288 monochrome-green HUD simulation. The preview is a visual mock - the real plugin drives the physical display through Even Hub containers.
POKE AMBIENT READY - TAP TO START
Generate a preview to see a visual placeholder
This is a visual placeholder, not a scannable QR. The real QR for local hardware testing is generated with evenhub qr --url <LAN_URL>. This hosted page does not sideload the app.
03 / Get the package
Download
Grab the official CLI-built .ehpk, the plugin source bundle, or rebuild the package yourself with the Even Hub CLI.
Poke G2 Ambient - official CLI-built .ehpk
poke-g2-ambient-0.1.0.ehpk · built with the official Even Hub CLI
Packed with evenhub pack app.json dist -o poke-g2-ambient-0.1.0.ehpk from the Vite production build. Declared as a snapshot for preview: replace the gateway origin in app.json and rebuild before device testing.
- package_id
- com.poke.g2.ambient
- version
- 0.1.0
- edition
- 202601
- permissions
- g2-microphone · network
Plugin source bundle
poke-g2-ambient-source.zip
A zip of the full plugin source (manifest, SDK wiring, gateway example, docs). Replace the gateway origin before device testing.
Rebuild the .ehpk locally
The hosted download is a snapshot. To produce the latest package for your gateway, build and pack on your machine:
npm install
npm run build
npx evenhub pack app.json dist -o poke-g2-ambient-0.1.0.ehpkOnly the output of evenhub pack is a valid .ehpk. An ordinary zip renamed to .ehpk will fail Even app verification.
04 / Developer guide
Documentation
Everything you need to run, customize, and package the Poke G2 Ambient plugin.
Run it in minutes
Clone the repo, install, and serve the plugin with Vite. Use the Even Hub simulator for a browser-only check, then a QR to load it on hardware.
The plugin is a Vite + TypeScript web app hosted in the Even App WebView. It uses the official @evenrealities/even_hub_sdk and packages as an .ehpk.
Plugin manifest (app.json)
The manifest declares the package, permissions, and the network whitelist. Replace the gateway origin before device testing.
{
"package_id": "com.poke.g2.ambient",
"edition": "202601",
"name": "Poke Ambient",
"version": "0.1.0",
"min_app_version": "2.2.6",
"min_sdk_version": "0.0.13",
"entrypoint": "index.html",
"permissions": [
{
"name": "g2-microphone",
"desc": "Capture audio from the G2 glasses microphone."
},
{
"name": "network",
"desc": "Stream audio to the Poke gateway over the network.",
"whitelist": ["https://g2-gateway.example.com"]
}
],
"supported_languages": ["en"]
}Commands
# 1. Install
npm install
# 2. Run the plugin locally (Vite dev server)
npm run dev
# 3. Open it in the Even Hub simulator
evenhub simulator http://localhost:5173
# 4. QR for local hardware testing (scan with the Even App)
evenhub qr --url http://<LAN-IP>:5173
# 5. Production build
npm run build
# 6. Package as an .ehpk plugin
evenhub pack app.json dist -o poke-g2-ambient.ehpk05 / Fixing a rejected package
Troubleshooting
Why the earlier .ehpk failed Even app verification, and how to build a valid one with the official CLI.
Manually assembled archive
The earlier file was built by a hand-written zip script, not the Even Hub CLI. The Even app expects the CLI's proprietary, stamped EHPK container, so a renamed zip fails verification.
No official pack-time metadata / stamping
The CLI validates the manifest and embeds pack-time metadata (including min_app_version derived from the SDK). A manual archive carries none of that, so it cannot be verified.
No production SDK bundle
The package must contain a Vite production build with the @evenrealities/even_hub_sdk bundled. A dist assembled by hand or from dev assets is rejected.
Icon / package asset issues
Package assets belong in the built output and package root. Use a real greyscale PNG icon, not an SVG, and keep the first-launch screen non-black.
Exact recovery commands
# pick the installed SDK version
npm list @evenrealities/even_hub_sdk
# install + build + pack with the official CLI
npm install
npm run build
npm install -D @evenrealities/evenhub-cli
npx evenhub pack app.json dist -o poke-g2-ambient-0.1.0.ehpkThe verified package here was produced with evenhub pack app.json dist -o poke-g2-ambient-0.1.0.ehpk against the SDK 0.0.13 build. Use npm list @evenrealities/even_hub_sdk to confirm the version before repacking.
06 / System status
Build status
Live status of the hosted portal and the device package.
Hosted docs/UI live
operational
Device package: build locally
after configuring gateway