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.

Companion app · v1.1.2 RayNeo X3 compatible Gemini 3.1 Flash Live
Part I — Getting Started

§ 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
Start small

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.

Why port 19110?

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.

Can the glasses start the ADB forward themselves?

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

  1. Power the glasses on and launch TapInsight from the app drawer.
  2. On your phone or laptop, open the companion page (see previous section).
  3. Paste your Gemini API key into Step 2 and hit Save.
  4. Double-tap the right temple of the glasses — you'll hear Gemini greet you.
  5. 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

KeyWhat It UnlocksWhere to Get It
GeminiThe whole voice assistant — required. Powers Live sessions, Research, LearnLM, all tool-calling.aistudio.google.com/apikey
CalendarThe 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 searchGoogle Cloud Console, enable Maps + Routes + Places APIs
Air Quality"What's the AQI?" and the Daily Briefing's air quality lineGoogle Cloud Console, enable Air Quality API
Cloud TTSPremium 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 + SecretMusic 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
Free tier reality

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.

Companion Appyour phone
Google Sign-Inyou approve scopes
Access Tokensaved locally
Calendar · Tasks · Keep · Contacts

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.

Keep tokens, not keys, for user data

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.

Bookmark it

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.

Part II — Companion App Settings

§ 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-preview for Live (voice + camera), gemini-3.1-pro-preview for regular turns, and gemini-3-flash-preview for fast fallbacks.
  • Research Provider — who handles deep-dive research: gemini (default, search-grounded), openai_codex (code-heavy), or groq (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 learnlm before 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 NameWhich Gemini Live voice you hear: Puck, Charon, Kore, Fenrir, Aoede, Leda, Orus, Zephyr. Each has a different timbre and cadence.
TTS Voice NameVoice for non-Live readbacks (research briefs, long cards). ~30 voices available.
Cloud TTS Voice / LanguageIf you've set a Cloud TTS key, select premium neural voices here.
Thinking LevelMinimal / 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 ResumptionOn by default. Briefly dropped Wi-Fi won't kill the conversation.
Context CompressionCompresses older turns so you can talk for longer sessions without hitting the token ceiling.
Compression TokensWhen to start compressing. 0 = auto.
Proactive AudioLets Gemini speak first when it has something time-sensitive (traffic alert, meeting reminder).
Language CodeTells Live what language to expect. Leave blank for auto-detect.
Barge-In Sensitivity0.6–2.5. Higher = easier to interrupt Gemini mid-sentence. Default 1.0.
Silence ThresholdPCM16 peak amplitude that counts as "quiet." Default 600. Raise it in noisy environments.
Interrupt ModeAuto (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 ModeAudio 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:

C
Calendar Widget
Next event, time, location.
T
Tasks
Pending Google Tasks. Configure count 1–10.
N
News Headlines
Top Google News RSS. Count 1–10, refresh 60–3600s.
R
Traffic & Commute
Live ETA to next event or home/work.
E
Event Time & Date
Shows time/date beside event name.
A
Notifications
System and messaging notifications.

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.
Full Override

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 URLws://…:18789 (local) or wss://… (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.
Part III — Core Concepts

§ 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

At a café with camera mode

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.

Walking to a meeting

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:

Your voice
Gemini Live
Talknatural reply
Toolcall a function
SearchGoogle grounding

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

Part IV — Features

§ 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

Show calendarhud Hide calendarhud Clear the HUDhud
Show traffichud Show newshud What's on my HUD?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

Open YouTubebrowser Open Redditbrowser
Read this article to metts Open my dashboardbrowser

§ 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

  • Audiomp3, m4a, aac, ogg, opus, wav, flac, weba
  • Videomp4, webm, mkv, mov, m4v, 3gp, avi
  • Text / TTStxt, md, markdown, log, csv, json, xml, html, rtf, ini, cfg, conf, yaml, yml, toml
  • Playlistsm3u, 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 .m3u files.
  • 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.
A practical setup

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.

Open and close

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

Play BBC Radio 6radio Find a lo-fi stationradio Play jazz radioradio Play my favorite stationradio
What's playing on this station?radio Stop the radioradio Search for classical stations from Viennaradio Play a talk-radio stationradio

Podcasts

List recent podcastspodcast Top philosophy podcastspodcast Search Lex Fridman podcastpodcast
Play the latest episode of Hubermanpodcast Classical music podcastspodcast Skip to the next episodepodcast

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.

What song is this?radio Who sings this?radio

§ 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."

Phase A

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

Play X on YouTubeyoutube Search YouTube for Xyoutube Send a list to my glassesyoutube Play those as a playlistyoutube
Open my YouTube subscriptionsyoutube Open my YouTube historyyoutube Show me my playlistsyoutube Play the first oneyoutube
Follow-ups just work

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

Research the Baltic countries' energy mixresearch Do research on mRNA vaccine durabilityresearch
Deep dive into the history of Y Combinatorresearch Research the best mattress brands under $1000research

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 explain matricestutor learnlm teach me electronicstutor learnlm walk me through calculus derivativestutor
learnlm quiz me on Spanish verbstutor learnlm how do I solder a through-hole resistortutor learnlm break down the Krebs cycletutor
Building a skill over weeks

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

Show me a 3D map of Tokyomaps What's around the Eiffel Tower?maps Navigate to Golden Gate Park in 3Dmaps
Fly over Central Parkmaps What landmark am I looking at?maps + camera Show me the route to X from abovemaps

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.

Directions to the nearest Home Depotroutes How long to get to the airport?routes What's traffic like to work?routes
Drive to mom's houseroutes ETA to 1600 Amphitheatre Parkwayroutes Take me homeroutes

§ 4.11Places Nearby

Tool: google_places. Google Places Nearby Search + ratings + open/closed status.

Find a cafe within walking distanceplaces Best Thai food nearbyplaces Where's the closest pharmacy?places
Gas stations on my routeplaces Is the library still open?places Dog parks near meplaces

§ 4.12Calendar

Tool: google_calendar. Read and write with OAuth; read-only with an API key + Calendar ID.

What's my next meeting?calendar What's on my schedule today?calendar Am I free at 3pm?calendar
What do I have tomorrow?calendar Schedule a dentist at 2 next Tuesdaycalendar What's left in my day?calendar

§ 4.13Tasks & Reminders

Tool: google_tasks. Needs Google OAuth with Tasks scope. Also drives the Tasks widget on the HUD.

What's on my to-do list?tasks Add "buy milk" to my listtasks
Mark buy milk as donetasks Remind me to call mom tomorrowtasks

§ 4.14Notes (Google Keep)

Tool: google_keep. Quick-capture notes that sync to Keep on your phone.

Save a note — the recipe was great, add more paprikakeep Note to self: park in lot Ckeep
Read my latest notekeep Save a note about this podcastkeep

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

What's John's number?contacts What's Sarah's email?contacts
Look up Jane Doe's emailcontacts Find Alex in my contactscontacts

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

Play Fleetwood Macspotify Skip thisspotify What's playing?spotify Play my Discover Weeklyspotify
Who sings this?spotify What album is this on?spotify Play something mellowspotify Volume upspotify

§ 4.17Sonos

Tool: sonos_control. If you have Sonos speakers on the same network, voice commands can target them instead of the phone.

Play Fleetwood Mac on Sonossonos Play on the kitchen speakersonos
Group the living room and kitchensonos Pause Sonossonos

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

What's the weather today?weather Will it rain this afternoon?weather
What's the AQI?air quality Is the air safe for running outside?air quality

§ 4.19News Headlines

Tool: google_news. Uses the public Google News RSS feed — no API key needed.

What's in the news?news Tech headlinesnews
Read me the top threenews Headlines about the electionnews

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

Give me my morning briefingbriefing
What's my day look like?briefing

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 camera source for reading signs and menus.
  • The OpenClaw Vision Relay — the remote agent gets the latest still frame.
Save this photocamera Read this QR codecamera
Start recording audiocamera Stop recordingcamera

§ 4.22Translation

Tool: translate_text. Works on speech and camera-visible text (signs, menus, documents). 40+ languages.

Translate this sign to Englishtranslate + camera Say "where is the bathroom" in Japanesetranslate Translate to Spanishtranslate
Turn on auto-translatetranslate What does this menu say?translate + camera Stop translatingtranslate
Auto-Translate mode

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

Save batterybattery Enable battery saverbattery
What's my battery?battery Turn off battery saverbattery

§ 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" } }
    ]
  }
]
Good morningmacro Leaving workmacro
Gym timecustom List quick actionsmacro

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

You speak "tapclaw …"on the glasses
Gatewayws / wss
OpenClaw agentdesk / server
Your toolsemail, files, smart home, code

Why it matters — real-life use cases

Homework (with camera)

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

Planning a week

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

Skill-building over 30 days

"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?"

Knowledge — your own files

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

Smart home

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.

Email triage on the go

"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

tapclaw what do you seevision tapclaw check my emailsemail tapclaw show the saved imagesmedia
tapclaw control smart lightshome tapclaw summarize today's meetingsnotes tapclaw open that URLrouting
One agent at a time

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.

Part V — Reference

§ 5.1Voice Command Cheat Sheet

Every trigger phrase that has a dedicated routing rule. Gemini matches loosely — phrasing variations of these all work.

CategorySay 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
Podcastsany 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" / customquick_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.

google_calendar

Read and write Google Calendar events. Needs OAuth for writes.

"What's my next meeting?" · "Schedule dentist 3pm Tuesday"

google_tasks

Google Tasks CRUD. Drives the Tasks HUD widget.

"Add 'pay rent' to my list" · "Mark 'buy milk' done"

google_keep

Save and read Google Keep notes.

"Save a note: remember to update driver license"

google_contacts

Contact lookup.

"What's mom's phone number?"

google_routes

Directions, traffic, ETA. Origin = current by default.

"How long to the airport?" · "Traffic to work?"

google_places

Nearby search with ratings and open/closed.

"Closest pharmacy" · "Best ramen nearby"

google_air_quality

AQI + pollutant breakdown.

"What's the air quality today?"

google_news

Top headlines via public Google News RSS (no key).

"What's in the news?"

ask_maps

3D photorealistic map + landmark recognition.

"Show me Tokyo in 3D" · "What am I looking at?"

daily_briefing

Multi-source morning briefing.

"Give me my morning briefing"

spotify_player

Search and play via Spotify Connect.

"Play Fleetwood Mac" · "Who sings this?"

sonos_control

Sonos speaker playback + grouping.

"Play on the kitchen Sonos"

tapradio

Internet radio + podcasts (30k+ stations).

"Play BBC Radio 6" · "Top philosophy podcasts"

camera_action

Save photo, QR read, audio record.

"Save this photo" · "Read this QR"

open_taplink

Display images, videos, web pages, text files on the glasses via TapBrowser.

Invoked by Gemini, rarely by you directly.

send_video_list

Renders a tappable picker of YouTube suggestions (Phase A of the YouTube flow).

"Send a list to my glasses" after a video query.

research_topic

Long-form search-grounded brief, read verbatim.

"Research mRNA vaccines"

learn_topic

LearnLM tutoring — explains, quizzes, remembers.

"learnlm teach me matrices"

translate_text

Speech and camera-text translation, 40+ languages.

"Translate this sign" · "Say X in Japanese"

battery_saver

Toggle power-saving mode.

"Save battery"

quick_action

Pre-built and custom JSON macros.

"Leaving work" · "Gym time"

tapclaw_agent

Routes to your remote OpenClaw agent with optional camera frame.

"tapclaw what do you see"

get_context

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 tapSelect, click links, focus inputs.
Double tapStart a voice session / swap mode / end session. Also: go back in the browser (context-dependent).
Swipe left / rightScroll horizontally, switch tabs or panels.
Swipe up / downScroll content. In the settings panel, moves between fields.
HoldRaise soft keyboard for text entry in focused inputs.
Head yawSubtle 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 try https://localhost:19110 first and accept the certificate warning. Check adb devices shows 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 list shows 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.