v0.199.0Release

Dictate messages into the Agent panel composer

The Agent panel composer now offers a microphone control for dictating a message before sending it, reusing the same recording and transcription pipeline that already powers Triage capture rather than building a second one. When the voice add-on is enabled in Settings, a mic button appears beside the attachment control. Clicking it starts recording, visibly indicated on the button itself; clicking again stops the recording and sends it for transcription, while a separate cancel control discards the recording outright without transcribing anything.

The transcript is inserted at wherever the cursor was in the draft, so text already typed is preserved rather than replaced, and the result stays fully editable. Nothing is ever sent automatically: review, edit, or delete the dictated text like anything else typed into the composer, then send it the normal way. Because dictation only ever produces ordinary composer text, it works the same regardless of which agent a session is connected to, and a dictated message can be queued exactly like a typed one while a turn is already running.

Denied microphone access, a missing microphone, an unconfigured transcription key, an offline connection, and a failed or empty transcription all leave the existing draft untouched and show an actionable message rather than silently failing. The control makes clear that transcription runs through the OpenAI API key and model configured in Settings and may incur its own usage, separate from a Codex or Claude subscription. Recording audio is never written to disk or attached to the session, and the microphone is released as soon as recording stops, the panel closes, the session changes, or the composer unmounts.

Highlights

  • A microphone control in the Agent composer reuses Pekan's existing dictation pipeline rather than a second implementation.
  • Dictated text is inserted at the caret, preserving anything already typed, and is never sent automatically.
  • Works identically across Codex, Claude Code, Mistral Vibe, and OpenCode sessions, and can be queued while a turn is active.
  • Microphone denial, missing configuration, offline state, and transcription failure all leave the draft untouched with an actionable message.
  • The UI discloses that transcription uses your configured OpenAI API key and may incur its own usage.

← Browse all Pekan releases