TapInsight
A complete guide to using your AR glasses like they belong in the future. Voice, vision, and the web — routed through Gemini 3.1 Flash Live and a stack of native tools.
§ 1.1Welcome
TapInsight turns your RayNeo AR glasses into a hands-free assistant that can see what you see, hear what you say, and act across the services you already use. It's built around three layers:
Gemini Live
A continuously-streaming voice session with Google's Gemini 3.1 Flash Live — the brain that listens, speaks, and decides.
Native Tools
Two dozen on-device tools for Calendar, Tasks, Spotify, Maps, YouTube, translation, and more. Gemini calls them; you see the results on the HUD.
TapBrowser
A full-featured AR browser with its own dashboard, a music visualizer, and reader mode — so anything Gemini finds becomes something you can actually use.
This guide walks through every capability — from the first adb install command, through your API keys, all the way to asking TapClaw to help with your homework. If you only read one section, make it How Gemini Routes You; it's the mental model everything else hangs on.
§ 1.2What You'll Need
Hardware
- RayNeo X3 AR glasses (the app targets this device's display and trackpad)
- A USB-C cable for the first-time install (the glasses pair to your computer over ADB)
- Either Wi-Fi on the glasses or a persistent USB tether to your computer
Accounts & Keys (free tiers are fine)
- A Google Cloud project (free to create) — this is the container for all your Google API keys and OAuth credentials
- A Gemini API key — the only required key; it powers the voice assistant
- Optional, but strongly recommended: Calendar, Maps / Directions / Places, Air Quality, and Cloud TTS keys
- Optional: Spotify client ID/secret if you want music playback
You don't need every key on day one. Get Gemini working, then add Calendar, then Maps. Each section of this guide tells you which key is needed for that feature.
§ 1.3Install via ADB
Android Debug Bridge (ADB) is the command-line tool your computer uses to push apps to Android devices. The glasses present themselves to your machine as an Android device, so installation looks exactly like sideloading any APK.
One-time install
adb install TapInsight.apk
Once installed, TapInsight launches from the glasses app drawer. That's all ADB needs to do — unless you want the next, much more convenient, trick.
Connecting to the companion page over USB
The companion app (where you enter API keys, arrange the HUD, and tweak behavior) runs inside the glasses on port 19110. You have two ways to reach it from your phone or laptop browser:
Option A — Same Wi-Fi (simplest)
Find the glasses' IP in their Settings → Wi-Fi screen, then open https://<glasses-ip>:19110 in any browser on the same network and accept the certificate warning. If the device falls back to non-TLS mode, try http://<glasses-ip>:19110.
Option B — USB port forwarding (no Wi-Fi needed)
Plug the glasses into your computer and run:
adb forward tcp:19110 tcp:19110
Now https://localhost:19110 on your computer tunnels through USB to the companion app on the glasses. Accept the certificate warning on first use. If the device falls back to non-TLS mode, try http://localhost:19110. This is the fastest, most reliable path for setup — no Wi-Fi involved.
Option C — Persistent USB forward
The repo includes setup_usb.sh — run ./setup_usb.sh --watch and the port forward auto-reconnects every time you replug.
The companion app ships a lightweight companion server (CompanionServer.kt) that serves the setup HTML and accepts your settings over HTTPS when available. Port 19110 was chosen to be high, unambiguous, and unlikely to collide with anything else on your phone or laptop. Each tab in the companion UI — Setup, Browser, Dashboard, Radio, OpenClaw — is a separate page served by this server.
No. adb forward is a host-side command — it runs on the computer, not the Android device. The glasses can't issue it on their own because they're the target, not the initiator. The alternatives are Wi-Fi mode (Option A), the watcher script (Option C), or just leaving the forward command in your terminal history to re-run after each replug.
§ 1.4First Boot & Pairing
- Power the glasses on and launch TapInsight from the app drawer.
- On your phone or laptop, open the companion page (see previous section).
- Paste your Gemini API key into Step 2 and hit Save.
- Double-tap the right temple of the glasses — you'll hear Gemini greet you.
- Try: What can you do?voice
You're live. Everything else in this guide is optional polish — but the rest of Part I walks through the two concepts that make the app click: API keys and OAuth.
§ 1.5API Keys Explained
API keys are long random strings you get from cloud providers. They tell the provider "this app, owned by this account, is allowed to make requests." TapInsight stores them locally on the glasses — they never pass through any third-party server — and sends them directly to Google / Spotify / etc. when making calls.
Which key unlocks what
| Key | What It Unlocks | Where to Get It |
|---|---|---|
| Gemini | The whole voice assistant — required. Powers Live sessions, Research, LearnLM, all tool-calling. | aistudio.google.com/apikey |
| Calendar | The HUD calendar widget, "what's next?" queries, "am I free at 3pm?" | Google Cloud Console, enable Calendar API |
| Maps / Directions / Places | "Directions to X," "find a cafe," traffic on HUD, 3D Ask Maps, nearby search | Google Cloud Console, enable Maps + Routes + Places APIs |
| Air Quality | "What's the AQI?" and the Daily Briefing's air quality line | Google Cloud Console, enable Air Quality API |
| Cloud TTS | Premium neural voices (WaveNet, Neural2, Studio) for read-aloud. Not required — there's a built-in fallback. | Google Cloud Console, enable Text-to-Speech API |
| Spotify Client ID + Secret | Music playback and search. Premium streams full tracks; free tier gets 30-second previews. | developer.spotify.com/dashboard |
| Research Key (optional) | Lets Research calls use a different provider (OpenAI, Groq) instead of Gemini. | Depends on provider |
Gemini's free tier is 15 requests per minute and 1M tokens per day on Flash models — more than enough for all-day glasses use. Maps and Directions have generous monthly quotas. Air Quality is free for small volumes. Cloud TTS is the first to bill if you use neural voices heavily.
§ 1.6OAuth Explained
Some Google features — like writing to your calendar, creating Tasks, or saving Keep notes — need more than an API key. They need your permission, granted via Google's sign-in screen. That's OAuth.
The three-step OAuth setup
Create an OAuth client
In the Google Cloud Console, create an OAuth 2.0 Web client and enable the APIs you want: Calendar, Keep, People (Contacts), Tasks.
Paste the Client ID & Secret
Step 3 of the companion app has fields for both. Save.
Authorize
Click Start OAuth. A Google sign-in page opens, shows the scopes you're granting, and hands back a token that TapInsight stores on the glasses. After that, Gemini can read and write on your behalf — no more prompts.
Spotify OAuth (similar pattern)
Step 6 of the setup tab does the same handshake with Spotify. The glasses need both a Client ID and Secret, plus a verified Redirect URI (the companion page tells you exactly what URI to register). Once authorized, you get streaming, search, and playback control via voice.
If a feature reads your data (your calendar, your email, your tasks), it needs OAuth — an API key alone won't work. If a feature queries a public service (places, air quality, news RSS, Gemini, TTS), an API key is enough.
§ 1.7The Companion App — A Tour
The companion page is a mini web app served by the glasses on port 19110. It has several tabs across the top of the page:
Setup
API keys, OAuth, calendars, Spotify, Gemini Live voice & behavior, accessibility, HUD widgets, quick actions.
Browser
Desktop / mobile mode, dark mode, pointer sensitivity, cookie-import to log sites in.
Dashboard
Manage the TapBrowser homepage — grouped quick-launch links (YouTube, Reddit, Hacker News, etc).
Library
Upload local audio, video, text, and .m3u playlists; auto-generate playlists; add the Media Library tile to the glasses dashboard.
Radio
Search 30,000+ internet radio stations and sync favorites to the glasses.
OpenClaw
Pair a remote TapClaw/OpenClaw agent so Gemini can reach beyond the glasses.
Every tab is covered in detail in Part II.
Put https://localhost:19110 in your browser bookmarks bar. Accept the certificate warning once, and keep http://localhost:19110 in mind only as a fallback if the device serves plain HTTP.
§ 2.1Setup Tab
Every setup-tab section is numbered in the UI. Here's what each one is for, field by field.
Step 1 — Google Cloud Project
Not a form, just instructions: create a project at console.cloud.google.com, name it (e.g. "TapInsight"), enable billing. Every key you'll paste later should come from this project so quotas are consolidated and easy to monitor.
Step 2 — Gemini
- Gemini API Key — required.
- Model Override — leave blank unless you want to pin a specific model. Defaults:
gemini-3.1-flash-live-previewfor Live (voice + camera),gemini-3.1-pro-previewfor regular turns, andgemini-3-flash-previewfor fast fallbacks. - Research Provider — who handles deep-dive research:
gemini(default, search-grounded),openai_codex(code-heavy), orgroq(fast Llama). - Research API Key & Model — required if you picked a non-Gemini provider above. Presets are fast / balanced / deep.
- Research Role / Persona — tone of voice for briefs: analyst, engineer, journalist, academic.
- Gemini Readout Model & Voice — which TTS voice reads research aloud (Kore, Puck, Zephyr, etc).
- TTS Language + Director Notes — e.g. "calm, precise, analytical" — shapes how the TTS performs.
- LearnLM Tutor Model — the model LearnLM uses when you say
learnlmbefore a question.
Step 3 — Google OAuth
Client ID + Secret + Start OAuth button. One-time; grants access to Calendar, Keep, Contacts, Tasks.
Step 4 — Google Calendar
An API key for read-only calendar queries (overlaps with OAuth but is needed for the HUD widget to pull data without round-tripping OAuth). Calendar ID defaults to your primary.
Step 5 — Maps, Routes & Places
One Maps API key covers Directions (routes + traffic + ETA), Places (nearby search), and the 3D Ask Maps tool.
Phone GPS Bridge (optional)
If the glasses don't have GPS or Wi-Fi-based location working well, toggle this to "Share This Phone's GPS". Your phone becomes the glasses' location source over the local network. Security notice: the phone must be on the same Wi-Fi/hotspot as the glasses, and the network can't have client isolation.
Step 6 — Spotify
Client ID + Secret, plus a Redirect URI the companion page will show you. Click Authorize Spotify to complete OAuth. Once linked, Gemini can search, play, skip, and scrub via Spotify Connect (the Spotify app must remain running on your phone).
Step 7 — Personality & Behavior
See §2.6 Custom System Prompts for the breakdown. Short version: a Personality field for one-sentence vibes, plus four editable prompt sections (Identity, Routing Rules, Behavior, URL Rules) and a Full Override for advanced users.
Step 8 — Audio Settings
- TTS Volume + Mute TTS
- Cloud TTS API Key, Voice Name (Standard / WaveNet / Neural2 / Studio tiers), Language
Step 10 — Skill Manager
View all enabled skills/tools. Add custom skills by scanning a skill QR code.
API Verification
Test buttons for each API: Test Calendar, Test Directions, Test Tasks, Test Places, Test Air Quality, Test Research, Test Location, Test Traffic. Run these after pasting a key to make sure it's working before you take the glasses on the road.
§ 2.2Gemini Live & Voice (Step 8b)
This section is where the assistant's personality on the wire is shaped. Most users can leave the defaults alone — but every field has a reason to exist.
| Live Voice Name | Which Gemini Live voice you hear: Puck, Charon, Kore, Fenrir, Aoede, Leda, Orus, Zephyr. Each has a different timbre and cadence. |
| TTS Voice Name | Voice for non-Live readbacks (research briefs, long cards). ~30 voices available. |
| Cloud TTS Voice / Language | If you've set a Cloud TTS key, select premium neural voices here. |
| Thinking Level | Minimal / Low / Medium / High. Higher = more reasoning, slightly slower first audio. Minimal is best for snappy back-and-forth. |
| Temperature | -1 = model default. Higher (0.8+) for creative answers, lower (0.2–0.4) for precise tool-calling. |
| Session Resumption | On by default. Briefly dropped Wi-Fi won't kill the conversation. |
| Context Compression | Compresses older turns so you can talk for longer sessions without hitting the token ceiling. |
| Compression Tokens | When to start compressing. 0 = auto. |
| Proactive Audio | Lets Gemini speak first when it has something time-sensitive (traffic alert, meeting reminder). |
| Language Code | Tells Live what language to expect. Leave blank for auto-detect. |
| Barge-In Sensitivity | 0.6–2.5. Higher = easier to interrupt Gemini mid-sentence. Default 1.0. |
| Silence Threshold | PCM16 peak amplitude that counts as "quiet." Default 600. Raise it in noisy environments. |
| Interrupt Mode | Auto (default) lets background noise and your voice interrupt Gemini. Never makes Gemini always finish speaking — great for museums, concerts, noisy streets. |
§ 2.3Accessibility (Step 8d)
Everything that makes the app comfortable for the eyes and ears, in one place.
- Display Brightness — 5 %–100 % slider with a live percentage readout. Default 100 % (matches system brightness). Lower for indoor viewing or to save battery. Does not affect your phone's system-wide brightness.
- HUD Font Scale — 0.5×–3.0× multiplier for on-glass text size. Raise it for low vision.
- High Contrast HUD — thicker outlines, bolder colors for bright daylight.
- TTS Speech Rate — 0.5–4.0. Slow it down for learners and language study, speed it up for skimming briefs.
- Auto-Read Responses — on by default. Turn off if you want the HUD cards without voice every time.
- Default Assistant Mode — Audio Only (default) or Camera + Audio when you double-tap to start a session. Double-tap again to swap mid-session; third tap ends it.
§ 2.4HUD Display Settings (Step 9)
Decide what appears on the glasses when you're not actively talking. Each widget is a toggle:
More controls
- HUD Refresh Interval — 5–300 s. Lower = more current, higher = lighter on battery.
- Display Order — drag-reorder Calendar, Tasks, and News to decide what's on top.
- Enabled Calendars — if you have multiple Google calendars, pick which ones feed the widget.
§ 2.5Timeouts (Step 8c)
Every network request has a timeout. If a model is slow or your connection is spotty, raising these stops Gemini from giving up too early. 0 means use the default.
- Gemini Live Idle — how long Live stays open with no speech. Default ~120 s.
- Standard Gemini — per-turn timeout for non-Live calls. Default 45 s.
- Research — long briefs can take a while. Default 45 s; raise to 90–120 s for deep reports.
- LearnLM Tutor — same idea for tutoring responses.
§ 2.6Custom System Prompts (Step 7)
The system prompt is the instructions Gemini reads before every conversation. TapInsight ships a solid default but lets you swap any part of it. Expand the "System Prompt Sections" panel in Step 7 to see four editable blocks:
- Identity — "You are TapInsight, a proactive AI assistant integrated into RayNeo X3 AR glasses…" Change this to shift how Gemini refers to itself.
- Routing Rules — the decision tree Gemini uses to pick which tool to call for a given request. Edit only if you want to change default behavior (e.g. make research a different trigger word).
- Behavior — proactive rules, HUD output length (1–6 lines), privacy rules, "don't say 'I think' when stating facts," etc.
- URL Rules — when to send a direct URL vs. a search link. This is where YouTube, the video-list picker, and other browser routing get calibrated.
If you paste anything into the Custom System Prompt (Full Override) field, it replaces all four sections above. Powerful but dangerous — the default prompt is carefully tuned for tool-calling. Edit the individual sections first.
Personality
A separate short field injected after the system prompt. Try "dry, technical, precise — no pleasantries" for a focused assistant, or "warm, encouraging, always offer a next step" for a coach vibe.
§ 2.7Dashboard Tab
Your TapBrowser homepage is a grid of launch tiles grouped by category: Navigation, Social, Music/Streaming, Creative, Productivity, AI/LLMs, AI Music, AI Video, Voice, Utilities. The Dashboard tab is where you edit that grid — add, remove, reorder, rename. Changes push live to the glasses.
§ 2.8Browser Tab
- Desktop Mode — TapBrowser identifies as a desktop browser (no mobile redirects).
- Force Dark Mode — CSS filter that darkens light-themed sites. Default on.
- Show Browser Status Overlay — Wi-Fi, battery, and time strip. Toggle off for a cleaner view.
- Pointer Sensitivity — 0.4 (slow, precise) to 1.8 (fast, flicky). Default 1.0.
- Login Sync — paste cookies from a desktop browser to sign the glasses into YouTube, Gmail, Reddit, Twitter/X, Radio Garden, etc. The UI walks through where to copy each site's cookies from.
§ 2.9Radio Tab
Search and favorite internet radio stations — the results drive the tapradio tool. Data comes from the public Radio Browser API (30,000+ stations). You can favorite stations from the companion page and they sync to the glasses for instant voice playback.
§ 2.10OpenClaw Tab
Pair TapInsight with an OpenClaw agent running elsewhere (laptop, home server, cloud VM). Covered in depth under § 4.24 — TapClaw / OpenClaw.
- Scan QR / paste setup URL — one-step pairing if the OpenClaw host is reachable.
- Gateway URL —
ws://…:18789(local) orwss://…(Cloudflare Tunnel / Tailscale). - Gateway Token — bearer token from
openclaw config get gateway.auth.token. - Session ID — default
main. - Heartbeat Update Interval — 10–120 s. How often TapClaw streams progress to your HUD.
- Test TapClaw Connection — ping the gateway.
- Vision Relay — view status, saved images, install instructions for Mac / Linux / Windows.
§ 3.1Gemini 3.1 Flash Live — the Brain
"Live" means a persistent, bidirectional audio stream between the glasses and Google's servers. You speak; Gemini starts generating speech within a few hundred milliseconds; the two of you can talk over each other like humans. Unlike text chat, there's no "send" button — turn-taking is detected from pauses.
What Flash Live is good at
- Latency. Replies start streaming while you're still finishing your sentence.
- Multimodal grounding. If camera mode is on, Gemini sees a live video feed alongside your voice. "What bird is that?" works.
- Tool calling. Gemini knows about every tool TapInsight has registered and picks the right one for your question.
- Search grounding. For current-event questions, Gemini automatically cites Google Search results — you get "today's" weather, not 2024's.
Real examples
You: "What's this dish called?"
Gemini (sees the plate): "Looks like shakshuka — eggs poached in spiced tomato sauce. Want the recipe pulled up?"
You: "Yeah, send it to the glasses."
A reader-mode recipe page opens in TapBrowser.
You: "What's my next thing and how long will it take to get there?"
Gemini: "Dentist at 3:15 on Oak St. — 12-minute drive in current traffic, so you should leave by 3:00."
(Calendar + Routes + Traffic, called in one turn.)
§ 3.2Voice Sessions — Starting and Ending
The glasses wake on a double-tap of the right temple. That starts a Live session in the mode you picked in Accessibility:
- Audio Only (default) — just mic + speaker. Lightest on battery.
- Camera + Audio — adds the forward camera so Gemini can see what you see.
During a session:
- Double-tap again → swap between audio-only and camera+audio mid-conversation.
- Double-tap a third time → end the session. Gemini says goodbye and the mic closes.
- No speech for the configured idle timeout (default 120 s) also ends the session automatically.
§ 3.3How Gemini Routes You — The Mental Model
When you speak, Gemini doesn't just generate text. It chooses from three paths:
The routing rules in the system prompt tell Gemini when to pick a tool instead of just talking. A small set of high-priority triggers:
| You say… | Gemini picks… |
|---|---|
| "tapclaw …" | Routes the whole request to the tapclaw_agent — no other tools in the same turn |
| "research …" | research_topic with verbatim readback |
| "learnlm …" | learn_topic (switches to the tutor model) |
| "translate …" | translate_text |
| "save battery" | battery_saver |
| "what's on my to-do list" | google_tasks |
| "what's my next meeting" | google_calendar |
| "directions to X" | google_routes with origin='current' |
| any word matching "podcast" | tapradio (highest priority — never answer from memory) |
| "who sings X" / "what album" | spotify_player action='search' |
| "play X" | spotify_player action='play' |
For anything not matched by a routing rule, Gemini either answers directly or invokes Google Search grounding to pull live web results. See the cheat sheet for the full list.
§ 3.4Barge-In & Interruption
Barge-in lets you interrupt Gemini mid-sentence by speaking. It's on by default — just start talking and Gemini yields. Two settings tune it:
- Barge-In Sensitivity — higher = more eager to cut Gemini off. Lower if you find it interrupting itself on background noise.
- Silence Threshold — audio below this level counts as "quiet." Raise in noisy environments.
- Interrupt Mode: Never — Gemini always finishes its current sentence before listening. Useful on stage, in a museum tour, or anywhere you will have background speech you don't want misread.
§ 3.5Camera vs Audio-Only Mode
The camera is a power-hungry sensor; you don't always want it on. TapInsight lets you pick per-session, with global default.
Audio Only
Best for driving, walking, or any task where you're looking at the real world and just want voice back. No visual context goes to Gemini.
Camera + Audio
Best for "what is that," "translate this sign," "help me identify a plant," or anything needing visual grounding. Burns more battery.
Commands that implicitly need camera will still work with audio-only mode — they'll just ask you to flip to Camera + Audio first, or they rely on the OpenClaw Vision Relay for a recent still frame (see §4.24).
§ 4.1HUD — Your Heads-Up Display
The HUD is the always-on display layer. It shows the widgets you enable in Step 9 — calendar, tasks, news, traffic, notifications — and is also where Gemini's replies surface as concise text cards (1–6 lines per card, by default).
What Gemini puts on the HUD
- Reply cards — short text summaries of what Gemini just said.
- Tool results — calendar events, route ETAs, place cards, research briefs, translation output.
- Progress indicators — when Gemini calls a slow tool (research, TapClaw), a status line appears so you know something is still happening.
Commands that modify the HUD
§ 4.2TapBrowser — The AR Web Browser
When Gemini needs to show you something bigger than a card — a YouTube video, an article, a map, a recipe — it opens TapBrowser. It's a full Chromium-based browser tuned for the glasses.
What's in it
- Dashboard homepage with grouped quick-launch links (edit in the Dashboard tab).
- Reader mode for clean article reading.
- Picture-in-picture for videos.
- TTS read-aloud for articles and anything selectable.
- A night-sky audio visualizer (see next section) you can bring up in dim mode while music or video is playing.
- Desktop or mobile mode — site compatibility lever for difficult pages.
- Force dark mode — easier on the eyes at night.
- Volume and brightness sliders via gestures or a settings overlay.
- Text zoom independent of overall UI scale.
- QR code scanner — quick URL entry without typing.
- Bookmarks — add favorites, open from the dashboard.
- Cookie import — paste cookies from your desktop browser to log sites in on the glasses.
Common voice paths into the browser
§ 4.2ALibrary — Local Media & Playlists
The Library is TapInsight's on-device shelf for media you own: local music, videos, text files, and playlists stored directly on the glasses. It is designed for offline or low-friction playback when you do not want to depend on YouTube, Spotify, or a network connection.
Local files
Drop audio or video into the glasses and browse it later from the Media Library tile in TapBrowser.
Playlist aware
Each folder can contain its own .m3u or .m3u8 playlist, with paths resolved relative to that playlist file.
Text + TTS
Text files open in the media viewer and can be read aloud through Gemini TTS, so notes and transcripts live alongside your media.
Native video playback new in 0.4
Local and SMB videos play through a native ExoPlayer path. A folder queue with previous/next controls lets you move through everything in a folder, and the media controls stay up longer so you have time to pick subtitles. A CC language picker lists the available subtitle tracks and supports sidecar .srt files placed alongside the video. HDR display correction is tuned for the X3 Pro panel so colors and brightness look right on the glasses.
Where the files live
TapInsight creates an app-private media folder on first run:
/storage/emulated/0/Android/data/com.rayneo.visionclaw/files/Media/
- Music/ — default audio folder.
- Videos/ — default video folder.
- README.txt — a built-in reminder of the folder rules and supported formats.
- Nested folders — fully supported, so you can organize by artist, album, topic, course, project, or anything else.
This storage is visible over USB / MTP, requires no runtime permission prompts, survives reboot, and is normally wiped only if you fully uninstall the app.
Supported formats
- Audio —
mp3,m4a,aac,ogg,opus,wav,flac,weba - Video —
mp4,webm,mkv,mov,m4v,3gp,avi - Text / TTS —
txt,md,markdown,log,csv,json,xml,html,rtf,ini,cfg,conf,yaml,yml,toml - Playlists —
m3u,m3u8
How .m3u playlists behave
Playlist paths are resolved relative to the playlist file's own directory. That means a playlist can reference files next to it, in child folders, or in sibling folders using standard relative paths such as ../Videos/clip.mp4.
#EXTM3U
#EXTINF:180,Morning Coffee
coffee.mp3
#EXTINF:240,Subway Ride
../Videos/commute.mp4
The companion Library page can also auto-generate a playlist for the current folder and open a visual editor so you can add, remove, and reorder entries without hand-editing the file.
How to use it
- From the companion app — open the Library tab to upload media, browse folders, generate playlists, or edit existing
.m3ufiles. - On the glasses — open the Media Library tile from the TapLink Dashboard. If it is missing, the companion Library page can add it back for you.
- For reading — open a text file in the library and let Gemini TTS read it back like a local audiobook or spoken note.
Create Media/Music/Focus/ for instrumental tracks, Media/Videos/Tutorials/ for saved walkthroughs, and keep a Focus.m3u playlist next to them. The playlist can pull from both folders, and the glasses can play it without touching a streaming service.
§ 4.3The Audio Visualizer
In dim mode, swipe up on the right side of the touchpad to bring up the night-sky audio visualizer; swipe down to close it. It's a single calm scene — captions and titles stay out of it — that breathes at a coherent-breathing pace (roughly 4s in, a short hold, 6s out) while reacting to whatever is playing.
The visualizer is frequency-reactive: it splits the audio into bands and maps them to the scene. Sub-bass glows up from the bottom of the frame, bass pulses the central orb, and bass, mids, and highs ripple through three distinct ribbons — bass broad and heavy, mids articulated, highs tight and quick. Highs also shimmer as stars, with an "air" band setting how fast they twinkle. When no audio is captured, it degrades gracefully into a pure breathing exercise with gentle synthetic motion.
Swipe up on the right of the touchpad in dim mode to show the visualizer; swipe down to dismiss it. It's the calm wind-down screen — no toolbar, no titles, just the breathing night sky.
§ 4.4TapRadio & Podcasts
TapRadio is a first-class tool — tapradio — that handles internet radio and podcasts. It pulls from the Radio Browser public API (30,000+ stations) and standard podcast feeds. The routing rule makes it the highest-priority responder for anything involving the word "podcast" — Gemini never makes up podcast names from memory; it always calls the tool first.
Radio
Podcasts
Favorites
Favorite stations from the Radio tab of the companion app sync to the glasses. "Play my favorite station" picks the most-recent favorite, or you can name one — "Play my Radio Paradise favorite."
Song Identification — AudD (optional) new in 0.4
Ask "what song is this?" while listening to TapRadio. With an AudD token, TapInsight asks AudD to fingerprint the current stream first so stale station metadata doesn't win. Without a token, TapInsight falls back to the free track metadata broadcast by many stations. Get a free token (300 IDs/month) at audd.io and add it in the companion app.
§ 4.5YouTube Workflow
YouTube is one of TapInsight's most polished flows because it's routed through Gemini in two phases — describe first, play on command — so you never end up with a video playing when you just wanted to know what's out there.
Phase A — Describe & send
When you ask an informational question, Gemini gives a short verbal summary, sends a tappable list of picks to your glasses, and ends with "tap one to play, or hit the red button to open them all as a playlist."
You: "Find me videos on lock picking for beginners."
Gemini: "I've got a few. LockPickingLawyer has a great beginner series; BosnianBill has a hands-on tutorial; Deviant Ollam covers the theory. I'm sending the list to your glasses — tap one to play, or hit the red button to open them all as a playlist."
A scrollable picker appears on the HUD with three tappable rows.
Phase B — Play
When you say a playback verb — "play that," "play the first one," "watch the Deviant Ollam one" — Gemini opens the matching video in TapBrowser with autoplay.
YouTube-specific voice commands
After Gemini lists options, you can say "play that one" or "the second one" — the follow-up still targets YouTube, not a fresh search. Try to include a distinguishing word ("the one by Lex") if you have multiple possible matches.
§ 4.6Research & Deep Dives
The research_topic tool produces long-form, search-grounded briefs that Gemini reads verbatim — no paraphrasing, no summarizing. It's for when you actually want to learn something, not just get a one-liner.
Triggers
Don't use "research" for casual "tell me about," "analyze," "brief me on," or "explain" — those route to normal Gemini and come back much faster.
Presets (set in Step 2)
- Fast — a tight one-pager, ~15–30 seconds.
- Balanced — default. 2–3 paragraphs with citations.
- Deep — multi-section brief with structured headings, up to a minute or two.
Readout voice
The brief is read aloud with the voice and director notes you set in Step 2. Try "calm, precise, analytical" for a podcast feel, or "energetic, curious, warm" for a morning briefing.
Alternate providers
Change Research Provider in Step 2 to openai_codex (for code-heavy topics with GPT-5.2-codex) or groq (Llama 3.3 70B — very fast). You need that provider's API key pasted below.
§ 4.7LearnLM — The Tutor
LearnLM is Google's tutoring model. It teaches rather than answers: it asks probing questions, scaffolds concepts, and remembers your past cards across sessions. Activate it by prefixing your request with learnlm.
LearnLM remembers recent cards. Start Monday with "learnlm teach me chess openings — start with the Italian Game". Come back Thursday with "learnlm quiz me on what we covered" and it picks up where you left off. The recent cards provider passes your last exchanges in as context.
§ 4.8Google Search Grounding
Gemini 3.1 has native Google Search grounding. You don't toggle it — TapInsight leaves it on so any current-world question (weather, stock prices, recent news, sports scores, "who won the Nobel Prize this year") pulls fresh search results and cites them in the reply.
Grounding is different from the research_topic tool:
| Casual Q&A (Gemini + grounding) | Research Tool | |
|---|---|---|
| Speed | Sub-second first audio | 15 s – 2 min |
| Length | 1–3 sentences | 2–3 paragraphs or multi-section brief |
| Voice style | Conversational | Read verbatim with director notes |
| Use for | "What's the weather?" | "Research the history of the weather forecast." |
You: "What's the song Free Bird about?"
Gemini (routed to Google Search, not Spotify): "It's Lynyrd Skynyrd's 1973 ballad written in memory of Duane Allman. The extended guitar solo at the end is widely considered one of the greatest in rock history…"
(Factual Spotify questions — 'who sings X' — go to Spotify's catalog. Story/context questions go to Google Search.)
§ 4.93D Maps — Ask Maps
The ask_maps tool combines Google's 3D photorealistic map tiles with landmark data and directions. It's the "show me" for geography.
Ways to invoke it
Camera integration
Point the glasses at a landmark with Camera + Audio mode on, and "What is that?" triggers Ask Maps to ID the building, park, or natural feature in view, with a short card of info and an option to navigate there.
§ 4.10Directions & Traffic
Backed by Google Directions. The tool is google_routes. Origin defaults to your current location unless you specify otherwise.
§ 4.11Places Nearby
Tool: google_places. Google Places Nearby Search + ratings + open/closed status.
§ 4.12Calendar
Tool: google_calendar. Read and write with OAuth; read-only with an API key + Calendar ID.
§ 4.13Tasks & Reminders
Tool: google_tasks. Needs Google OAuth with Tasks scope. Also drives the Tasks widget on the HUD.
§ 4.14Notes (Google Keep)
Tool: google_keep. Quick-capture notes that sync to Keep on your phone.
§ 4.15Contacts Lookup
Tool: google_contacts. Use it to retrieve saved phone numbers and email addresses from your Google contacts. TapInsight does not place calls or send texts directly.
§ 4.16Spotify
Tool: spotify_player. Two actions: search (fact lookups — who sings, what album, when released) and play (streaming via Spotify Connect).
Premium gets full tracks; free tier gets 30-second previews. The Spotify app must be running on your phone — if the phone isn't listed as a Connect device, open Spotify, play any track for a second, and retry on the glasses.
§ 4.17Sonos
Tool: sonos_control. If you have Sonos speakers on the same network, voice commands can target them instead of the phone.
§ 4.18Weather & Air Quality
Weather is rolled into the Daily Briefing tool and answered via Google Search grounding. Air quality is a dedicated tool: google_air_quality.
§ 4.19News Headlines
Tool: google_news. Uses the public Google News RSS feed — no API key needed.
§ 4.20Daily Briefing
Tool: daily_briefing. One call, many tools — calendar + weather + traffic + air quality + proximity + parking + public events, rolled into a two-minute morning rundown.
Combine with a quick action macro named "good morning" so a single trigger phrase runs the whole thing plus your music.
§ 4.21Camera Actions
Tool: camera_action. Save photos, read QR codes, start/stop audio recording. Camera frames are also used by:
- Live sessions in Camera + Audio mode — streaming visual context to Gemini.
- Ask Maps landmark ID.
- Translate's
camerasource for reading signs and menus. - The OpenClaw Vision Relay — the remote agent gets the latest still frame.
§ 4.22Translation
Tool: translate_text. Works on speech and camera-visible text (signs, menus, documents). 40+ languages.
Enable in Step 8f. When on, any visible text through the camera is continuously translated to your default target language. Useful abroad; burns extra battery because the camera stays active.
§ 4.23Battery Saver
Tool: battery_saver. Cuts HUD refresh, pauses camera analysis, switches to voice-only mode, and defers non-essential network calls. Auto-enables under the threshold you set in Step 8g (default 20%, set to 0 for manual-only).
§ 4.24Quick Actions / Voice Macros
Tool: quick_action. A macro is a chain of tool calls triggered by a phrase. TapInsight ships four pre-built ones — good morning, leaving work, heading home, meeting mode — and lets you define your own via JSON in Step 8h.
Custom action JSON
[
{
"name": "gym time",
"description": "Directions to gym + a hype playlist",
"steps": [
{ "tool": "google_routes", "args": { "destination": "Planet Fitness" } },
{ "tool": "spotify_player", "args": { "action": "play", "query": "workout mix" } }
]
}
]
§ 4.25TapClaw / OpenClaw — Your Remote Agent
TapClaw is an agent that runs on a computer outside the glasses — your laptop, a home server, a cloud VM — and has access to your files, emails, and whatever else you plug into it. When you prefix a request with tapclaw, TapInsight bundles the request (plus the latest camera frame if relevant) and sends it to the agent. The agent does the work and streams results back to your HUD.
Why it matters — real-life use cases
Point the glasses at a calculus problem. Say "tapclaw walk me through this problem — don't just give me the answer." The remote agent sees the still frame via the Vision Relay, works through it step-by-step, and streams the explanation to your HUD as it goes. You can stop it mid-way with "tapclaw, pause, I want to try step three myself."
"tapclaw plan my week around these three appointments, my workout schedule, and this grocery list. Block time for the project proposal, schedule Friday as admin day, and add 30-minute walks after lunch." The agent pulls your calendar, creates events, adjusts existing ones, and emails you a summary. All you see on the HUD is progress notes.
"tapclaw, I want to learn Python in 30 days. Build me a daily plan, schedule reminders, and every morning give me that day's task at 8am." The agent builds the curriculum once, schedules reminders, and each morning sends your task of the day to the glasses. You can check progress with "tapclaw how am I doing?"
"tapclaw what did I write about retrieval-augmented generation in my notes last month?" The agent searches your Obsidian vault, your Drive folder, your commit messages — whatever you've pointed it at — and reads back what it finds. Unlike the hosted model, your data never leaves your machine.
Wire OpenClaw to your Home Assistant instance. "tapclaw dim the living room to 30 and put on the jazz scene." The agent issues the HA API calls and reports back.
"tapclaw check my emails and tell me what's urgent." Unlike a generic AI, the agent has access to your inbox, filters by your own rules, and summarizes only what matters. Reply directly: "tapclaw reply to the second one saying yes, I'll be there."
Pairing the agent
Start OpenClaw on your machine
Install OpenClaw (instructions at the OpenClaw project repo). Start it — it exposes a WebSocket gateway on port 18789 and a Vision Relay on port 18790.
Scan the QR or paste the URL
Run openclaw qr on the host to print a QR code. Open the OpenClaw tab in the companion app and scan. Fields populate automatically.
Test the connection
Hit Test TapClaw Connection. A green check means you're paired.
Go remote (optional)
For access outside your LAN, use a Cloudflare Tunnel (cloudflared tunnel create tapclaw) or Tailscale. The OpenClaw tab has a wizard for both. Gateway URL becomes wss://tapclaw.yourdomain.com.
Vision Relay
A tiny HTTP service on port 18790 that receives live camera stills from the glasses. On macOS: bash tools/install-relay.sh. On Linux or Windows: python3 tools/image_relay.py. The relay rotates the frame 90° clockwise and saves it to ~/.openclaw/workspace/camera_frame.jpg, archiving each frame under saved_photos/YYYY-MM-DD/. The agent can read the latest frame via GET /latest.
TapClaw voice commands
When you say "tapclaw," Gemini routes the entire request to the agent and doesn't call any other tool in the same turn. That's intentional — it keeps results coherent. If you want both (say, "tapclaw check emails" and "what's the weather"), run them as two separate turns.
§ 5.1Voice Command Cheat Sheet
Every trigger phrase that has a dedicated routing rule. Gemini matches loosely — phrasing variations of these all work.
| Category | Say something like… | Triggers |
|---|---|---|
| TapClaw | "tapclaw …" | Remote agent (exclusive turn) |
| Research | "research X" / "deep dive into X" | research_topic, verbatim read |
| LearnLM | "learnlm …" | learn_topic tutor model |
| Translate | "translate …" / "say X in Y" | translate_text (speech or camera) |
| Battery | "save battery" / "check battery" | battery_saver |
| Calendar | "what's next" / "schedule" / "am I free" | google_calendar |
| Tasks | "to-do list" / "add task" / "mark done" | google_tasks |
| Notes | "save a note" / "note to self" | google_keep |
| Routes | "directions to" / "how long to" / "ETA" | google_routes (origin='current') |
| Places | "find a X near me" / "closest X" | google_places |
| Maps | "show me 3D map" / "what's around" | ask_maps |
| Weather | "weather" / "will it rain" | Google Search grounding |
| Air Quality | "AQI" / "is the air safe" | google_air_quality |
| News | "what's in the news" / "headlines" | google_news |
| Briefing | "morning briefing" / "what's my day" | daily_briefing |
| Spotify search | "who sings" / "what album" | spotify_player (search) |
| Spotify play | "play X" | spotify_player (play) |
| Sonos | "play on Sonos" / "kitchen speaker" | sonos_control |
| Radio | "play X radio" / "find a station" | tapradio |
| Podcasts | any sentence with "podcast" | tapradio (highest priority) |
| YouTube | "play on YouTube" / "watch X" / "send list" | Gemini Phase A/B flow |
| Camera | "save photo" / "read QR" / "record audio" | camera_action |
| Contacts | "look up X's number" | google_contacts |
| Quick actions | "good morning" / "leaving work" / custom | quick_action |
§ 5.2Every Native Tool
Under the hood, Gemini sees these tools by name. Useful if you're editing the routing rules or building custom quick actions.
Read and write Google Calendar events. Needs OAuth for writes.
"What's my next meeting?" · "Schedule dentist 3pm Tuesday"
Google Tasks CRUD. Drives the Tasks HUD widget.
"Add 'pay rent' to my list" · "Mark 'buy milk' done"
Save and read Google Keep notes.
"Save a note: remember to update driver license"
Contact lookup.
"What's mom's phone number?"
Directions, traffic, ETA. Origin = current by default.
"How long to the airport?" · "Traffic to work?"
Nearby search with ratings and open/closed.
"Closest pharmacy" · "Best ramen nearby"
AQI + pollutant breakdown.
"What's the air quality today?"
Top headlines via public Google News RSS (no key).
"What's in the news?"
3D photorealistic map + landmark recognition.
"Show me Tokyo in 3D" · "What am I looking at?"
Multi-source morning briefing.
"Give me my morning briefing"
Search and play via Spotify Connect.
"Play Fleetwood Mac" · "Who sings this?"
Sonos speaker playback + grouping.
"Play on the kitchen Sonos"
Internet radio + podcasts (30k+ stations).
"Play BBC Radio 6" · "Top philosophy podcasts"
Save photo, QR read, audio record.
"Save this photo" · "Read this QR"
Display images, videos, web pages, text files on the glasses via TapBrowser.
Invoked by Gemini, rarely by you directly.
Renders a tappable picker of YouTube suggestions (Phase A of the YouTube flow).
"Send a list to my glasses" after a video query.
Long-form search-grounded brief, read verbatim.
"Research mRNA vaccines"
LearnLM tutoring — explains, quizzes, remembers.
"learnlm teach me matrices"
Speech and camera-text translation, 40+ languages.
"Translate this sign" · "Say X in Japanese"
Toggle power-saving mode.
"Save battery"
Pre-built and custom JSON macros.
"Leaving work" · "Gym time"
Routes to your remote OpenClaw agent with optional camera frame.
"tapclaw what do you see"
Recall from the recent-cards context cache.
Used internally by Gemini for follow-ups.
§ 5.3Trackpad & Gestures
The glasses have a touchpad on the right temple. Gestures:
| Single tap | Select, click links, focus inputs. |
| Double tap | Start a voice session / swap mode / end session. Also: go back in the browser (context-dependent). |
| Swipe left / right | Scroll horizontally, switch tabs or panels. |
| Swipe up / down | Scroll content. In the settings panel, moves between fields. |
| Hold | Raise soft keyboard for text entry in focused inputs. |
| Head yaw | Subtle UI pan — gentle left/right head turn shifts panels within a comfortable ±34° range. |
§ 5.4Troubleshooting
Gemini doesn't respond
- Check the Gemini key in Step 2. Hit Test in API Verification.
- Check connectivity — Wi-Fi or USB-tether, whichever the glasses use.
- Check Gemini Live Idle Timeout — if zero, a very brief pause can end the session.
"Spotify not available" when trying to play
- Open the Spotify app on your phone and play any track for ~1 second. That registers the phone as a Spotify Connect target.
- Retry on the glasses.
Companion page won't load
- If over USB: re-run
adb forward tcp:19110 tcp:19110. Then tryhttps://localhost:19110first and accept the certificate warning. Checkadb devicesshows the glasses. - If over Wi-Fi: verify the IP still matches (DHCP may have changed it).
TapClaw connection fails
- Check the gateway token in the OpenClaw tab. Copy it fresh from
openclaw config get gateway.auth.token. - If using a Cloudflare Tunnel, verify
cloudflared tunnel listshows it as connected. - Try the Test TapClaw Connection button.
HUD widgets show "—"
- Calendar / Tasks: OAuth expired. Re-authorize in Step 3.
- Traffic: Maps API key missing or quota exceeded.
- News: Network down (uses public RSS, no auth).
Gemini opens YouTube when you just wanted info
- Default routing uses Phase A (describe + send list). If it jumps straight to playing, check Step 7 → URL Rules — make sure you haven't overridden the default.
Display too bright / too dim
- Accessibility → Display Brightness slider. Default 100%; lower for indoor comfort. Use Reset to default to snap back.