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.

official @evenrealities/even_hub_sdk16 kHz PCM bridge verifiedpackageable as .ehpk

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.

hardware

G2 four-mic array

The glasses capture a 16 kHz mono stream from the four-microphone array.

phone host

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.

phone hosts the app
network

Authenticated WebSocket gateway

PCM streams over WSS /v1/g2/audio with a short-lived bearer token.

cloud

Poke transcription + policy

Audio is transcribed; a response policy decides what the HUD should show.

display

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.

G2 HUD · 576×288 · monoIdle
POKE AMBIENT
READY - TAP TO START
POKE AMBIENT v0.1.0
IdleListeningReconnectingError
Dev Preview QR

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

official CLI · stamped

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.ehpk

Only 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.ehpk

05 / Fixing a rejected package

Troubleshooting

Why the earlier .ehpk failed Even app verification, and how to build a valid one with the official CLI.

01

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.

02

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.

03

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.

04

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.ehpk

The 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