Skip to content

[Feature]: Mobile voice dictation — mic button in the composer with BYOK OpenAI/Groq transcription #8718

Description

@ahmadhajji

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I am describing a concrete problem or use case, not just a vague idea.

Area

apps/mobile

Problem or use case

On mobile, typing a prompt is the slowest part of using T3 Code, and voice is the natural input. What is missing is the step that turns a recording into text in the composer, where it can be edited, combined with @ file mentions and / commands, and sent like any other prompt.

This is not the same ask as #6497 (audio attachments from mobile clients, now Discussion #6988). That one is about shipping the recording itself to the agent as an attachment. This one is about a transcript landing in the draft as editable text. Neither is a substitute for the other, and neither has shipped.

The mobile version of this was built and is not tracked anywhere. #6625 added native iOS/Android dictation with expo-audio, per-provider API keys in expo-secure-store, a provider choice of OpenAI or Groq, and a custom model ID field. It was closed on 2026-08-23 with the reason "Duplicates the maintainer-owned voice implementation in #5213."

That is accurate for web and desktop, but #5213 has no mobile code. Its 20 changed files are entirely apps/web, apps/server, apps/desktop, packages/contracts, docs/, and scripts/ — there is not one file under apps/mobile. So the only branch that implemented mobile dictation was closed as a duplicate of a branch that does not implement it, and no open issue, PR, or discussion now covers mobile.

The adjacent threads all point elsewhere:

Proposed solution

Sketch — the problem statement above is the durable part.

Bring the mobile half of #6625 back as its own change, sized so it does not depend on the web/desktop branch landing first:

  1. A microphone button in the mobile composer. Record, stop, transcript appends to the current draft. Nothing is auto-sent.
  2. A BYOK transcription setting under mobile settings: choose OpenAI or Groq, store one key and model per provider in expo-secure-store, plus a free-text custom model ID so a new compatible model does not need an app release.
  3. Post the recording to the provider's official transcription endpoint from the device. Groq's API is OpenAI-compatible (https://api.groq.com/openai/v1/audio/transcriptions), so the two providers differ only by base URL, key, and default model.
  4. Defaults: OpenAI gpt-4o-transcribe, Groq whisper-large-v3-turbo.
  5. Recording, permission-denied, network-failure, and cancel paths all fully reset recorder, stream, and audio-session state.

Why this matters

Groq's whisper-large-v3-turbo is fast and cheap enough that BYOK is a real answer rather than a compromise, and it keeps T3 out of the business of hosting a transcription service — the user brings their own key and their audio goes straight to the provider they chose.

Mobile is also where the payoff is largest. On desktop this competes with good third-party tools. On mobile it competes with a phone keyboard.

Smallest useful scope

Mic button + BYOK provider setting (OpenAI or Groq) + transcript appended to the draft, on apps/mobile only. No push-to-talk, no realtime session, no server proxy, no changes to the web or desktop composer, and no dependency on #5213 merging.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions