Voice TranscriptionCAUTION
A framework for building agentic apps
Overview
A framework for building agentic apps
d31edd75948aOBSERVED · 2026-10-14Host compatibility
What the documentation claims. We have not run a compatibility test.
| Host | Status | Notes |
|---|---|---|
| cursor | mentioned |
What it tells the agent
The instruction file, verbatim from the audited commit — this is the text the model reads, and the surface the audit's instruction layer examines. Quoted here so you can judge it without cloning anything.
--- name: voice-transcription description: >- Framework-wide voice dictation in the agent sidebar composer. Use when changing composer microphone UX, the transcribe-voice route, or the Voice Transcription settings section. Covers transcription-source routing, cleanup routing, Google realtime gating, and the voice transcription application-state keys. scope: dev metadata: internal: true --- # Voice Transcription The microphone inside the sidebar composer offers two distinct paths: editable dictation and an opt-in realtime speech-to-speech agent session. Users configure dictation separately from AI cleanup. The source picker (Mac Native, Google Realtime, Batch) is the Voice transcription row on Settings › Account › Preferences (`VoiceTranscriptionSection compact`, anchor `voice`); cleanup and batch provider keys stay in the agent sidebar's Voice Transcription section. Both write the per-user `voice-transcription-prefs` application state. Both paths are available in every template that renders the shared agent sidebar. ## UX rules - **Always show the mic alongside the send button.** Cursor replaces send with mic when the composer is empty; their users complain. We keep both visible — Lovable does the same. - **Ask before switching modes.** The mic opens a compact shadcn popover with **Real-time voice** as the primary action and **Dictate** as the secondary; never silently replace the established dictation behavior. Users can choose **Remember my preference** to skip the chooser on later clicks. - **Dictation is click-to-toggle, not push-to-talk.** More forgiving in a sidebar, avoids host-app hotkey clashes. Keyboard shortcut is `Cmd/Ctrl+Shift+M` and `Escape` cancels mid-recording. - **Transcript lands in the composer, editable, never auto-sent.** Insert at the caret via `editor.chain().focus().insertContent(text).run()`. - **No CSS transitions for the recording state.** Framework rule; use static brand color (`#625DF5`) instead of pulses. - **Icon:** Tabler `IconMicrophone` (idle) / `IconPlayerStopFilled` (recording). Never use a sparkle or robot icon. - **Errors via inline alert or toast, never `window.alert`.** ## Realtime speech mode Realtime speech mode is a full-duplex OpenAI Realtime WebRTC session, separate from the dictation providers below. It prefers the authenticated user's complete Builder connection and the Builder-managed metered gateway. A scoped `OPENAI_API_KEY` is the fallback when Builder is not connected. The server owns the `gpt-realtime-2.1` session configuration and keeps credentials out of browser code. If neither provider is configured, show **Use Builder.io** as the primary microphone-popover action and OpenAI key setup as the secondary action before requesting microphone permission. - Starting voice mode collapses the chat into a persistent bottom-end speech orb. The orb stays visible above the chat even when the chat opens automatically. Clicking it shows or hides chat without ending the session; opening chat slides the orb clear of the sidebar. The progressively disclosed controls contain only settings and the separate end-session action. - The orb's compact waveform stays visible for the full session and reflects actual microphone or assistant audio activity. At silence it rests at its baseline instead of turning into a loading spinner. Once connected, a soft, slowly rotating blue glow marks the live session; brighten and speed up the glow while the agent is working, and keep it static under reduced motion. While connecting, show a distinct compact spinner; when the session becomes live, the assistant gives one brief spoken greeting so readiness is unambiguous. Do not apply a text-sized `max_output_tokens` cap to that audio greeting because audio tokens can truncate it mid-sentence. - The orb settings cog opens in place without ending voice mode or navigating away. Nested pickers must not dismiss the settings popover. Language and intelligence update the active Realtime session; the microphone picker swaps the live WebRTC input track and remembers the browser-local device choice; an output-voice change updates immediately only before the assistant has emitted audio and otherwise applies to the next conversation, matching the Realtime API's voice immutability rule. - Semantic VAD keeps listening, starts responses automatically, and supports barge-in while the agent is speaking. - Function calls must cross the authenticated realtime tool bridge and enter `executeAgentToolCall`. Never call `ActionEntry.run` directly: that bypasses schema validation, approvals, audit/journal behavior, timeouts, redaction, and mutation refreshes. - Preserve the active browser-tab id in request context so `set-url-path`, `set-search-params`, `view-screen`, and tab-scoped application state affect the app the user is actually speaking to. Realtime tool manifests are capped, so prioritize `navigate`, `set-url-path`, `set-search-params`, and `view-screen` before packing large template registries. - Keep `tool-search` in the initial Realtime manifest. A successful specific search may expand the live session with matching action schemas, but the server must derive those schemas from its own registry, bind authorization to the authenticated voice session, and continue execution through `executeAgentToolCall`. Treat `session.update.tools` as a full replacement: preserve the pinned navigation/discovery tools, evict lower-priority entries within the manifest cap, and wait for `session.updated` before asking the model to continue with a newly discovered tool. - Do not persist audio or interim transcript deltas. Append completed user and assistant utterances as ordinary text messages to the exact chat thread captured when the session starts. Input transcription completes asynchronously from assistant generation, so reserve provider conversation item order and publish only the contiguo
Trust audit
CAUTIONgrade B · trust 89/100 Install with care. The audit found things worth knowing before you trust its output.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | WARN |
| L1 | Static analysis of the code | NA |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- none-observed
- Shell
- none-observed
- Dependencies
- pinned
- Secrets in source
- none-found
Findings (5)
.agents/skills/an
.agents/skills/content-product-development
.agents/skills/design-exploration
.agents/skills/turn-into-app
.agents/skills/visual-edit
Gates applied: no_behavioural_pass.
d31edd75948afull audit observations/trust-audit/skill/builderio__voice-transcription.json · Report an issue / request a re-scanAudit history
Every audit this skill has had.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-14 | d31edd75948a | CAUTION | B | 89 | first audit |
Questions
What does the Voice Transcription skill do?
A framework for building agentic apps
Is Voice Transcription safe to install?
With care. The audit graded it B (89/100) and found 5 things worth knowing before you trust this skill, listed below with the exact line each was found on.
What can Voice Transcription access on my machine?
The audit observed no filesystem, network or shell use at all in its source.
Which assistants does Voice Transcription work with?
Its documentation mentions cursor. That is what the text claims, not a compatibility test we ran.
How current is this page?
The grade is for one exact copy of the source (d31edd75948a), read on 2026-10-14. The repository is watched, and a new audit runs when it changes — this is the first audit.
Add this badge to your README
Shows this page's audit result and links back to it. It updates when the audit does.
[](https://modelsatlas.com/skills/builderio/voice-transcription/)
Not your listing, or something out of date? Claim or update your listing.