Install
openclaw skills install even-g2-bridgeConnect Even Realities G2 smart glasses to OpenClaw via Cloudflare Worker. Deploys a bridge that routes G2 voice commands to your OpenClaw Gateway — same age...
openclaw skills install even-g2-bridgeDeploy a Cloudflare Worker that connects Even Realities G2 smart glasses to your OpenClaw Gateway.
G2 Glasses → (voice→text) → CF Worker → OpenClaw Gateway → Full Agent
↓ ↓
G2 display (text) Telegram (rich content)
On your OpenClaw host, enable the chat completions endpoint:
openclaw config set gateway.http.endpoints.chatCompletions.enabled true
openclaw gateway restart
Verify:
curl -X POST https://YOUR_GATEWAY_URL/v1/chat/completions \
-H "Authorization: Bearer YOUR_GATEWAY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"model":"openclaw","messages":[{"role":"user","content":"hi"}]}'
Copy scripts/worker.js to your project, then deploy:
# Install wrangler
npm install -g wrangler
# Login to Cloudflare
wrangler login
# Deploy
wrangler deploy
Or use the Cloudflare Dashboard: Workers & Pages → Create → Upload worker.js.
# Required
wrangler secret put GATEWAY_URL # Your OpenClaw Gateway URL
wrangler secret put GATEWAY_TOKEN # Your Gateway auth token
wrangler secret put G2_TOKEN # Token for G2 glasses auth (you choose)
wrangler secret put ANTHROPIC_API_KEY # Fallback when Gateway is down
# Optional (for Telegram delivery of rich content)
wrangler secret put TELEGRAM_BOT_TOKEN
wrangler secret put TELEGRAM_CHAT_ID
# Optional (for image generation)
wrangler secret put OPENAI_API_KEY
In Even app → Settings → Add Agent:
https://YOUR_WORKER.workers.devG2_TOKEN you set abovecurl -X POST https://YOUR_WORKER.workers.dev \
-H "Authorization: Bearer YOUR_G2_TOKEN" \
-H "Content-Type: application/json" \
-d '{"model":"openclaw","messages":[{"role":"user","content":"Hello, who are you?"}]}'
G2_TOKENTwo-layer token auth:
G2 --[G2_TOKEN]--> Worker --[GATEWAY_TOKEN]--> Gateway
G2_TOKEN — if glasses are lost, change only this tokenGATEWAY_TOKEN stays in Worker secrets, never exposed to glasses[link], code blocks → [code], long text → truncatedEdit the task classification regex in worker.js:
isLongTask() — patterns that trigger background processingisImageGenRequest() — patterns that trigger DALL-ESHORT_TIMEOUT (max ~25s for CF Workers)chatCompletions.enabled: true in OpenClaw config + restart