1.1.20
Duplicate speech & silent terminals: the real root cause, fixed. Claude quietly gives a terminal a new session id when a session is reopened, cleared, or you log out and back in (/logout + /login). Claude Speak used to guess which tab owned the new id — and a wrong guess split the duplicate filter in two (the same message spoke once under each id) and routed that terminal's audio to the wrong tab or nowhere at all. Every terminal now stamps its own identity into everything Claude runs inside it, so a session id change re-binds to exactly the right tab: the duplicate filter follows the conversation, and audio keeps playing after a re-login or reopen.
Per-session settings survive a reopen. A session's voice, mute, and other per-session overrides now follow the conversation when Claude hands it a new id, instead of silently resetting to the global defaults.
1.1.19
Copy & paste in the terminal. Ctrl+C copies the selected terminal text (with nothing selected it still interrupts Claude, as before) and Ctrl+V pastes the clipboard into the terminal — no permission popups.
Reorder terminal tabs. Each tab now has a grip (⋮⋮) at its far left — drag it sideways along the tab strip to move the tab; the arrangement is kept and restored on the next start. Only the grip drags, so ordinary clicks never move a tab, and the first (Claude) tab stays pinned.
Questions are never lost or interrupted. When several sessions ask at once, each keeps its own popup, a tab whose session is waiting shows a gold ? next to its name, and the automatic tab switch waits its turn — it won't yank you away while you're answering another popup or actively typing in the current terminal.
A rename can no longer cancel a question. Pushing a tab's name to Claude (/rename) could fire while a question was waiting and its leading Esc declined the question for you. Renames now wait until no question is on screen, and a new named session sends its name immediately at the first prompt, before any work begins.
The “Claude - ” tab prefix is gone. Reopening a session prepended “Claude - ” to its tab name, it was read aloud with every message, and it came back no matter how you renamed the tab. Nothing adds it anymore and old saved names are cleaned up automatically.
Duplicate speech: two more escapes closed. A garbled mid-repaint copy of a message could differ from the clean one early enough to slip past the duplicate filter; near-identical texts spoken within two minutes of each other are now recognized as the same message (short notifications that legitimately differ by a word stay distinct). And a stray fragment of a tool command (its header line lost to a screen repaint) could be read as narration; those fragments are now recognized and ignored.
End no longer switches tabs. In the standalone app, pressing End inside a terminal also jumped to the last session tab (a Windows tab-control default swallowing the key); Home/End now stay in the terminal.
1.1.18
Duplicate speech: the last known class is fixed. Session-history audits showed every remaining repeat came from a screen repaint captured mid-overwrite: the reader grabbed a “chimera” copy of a message — identical opening, then interleaved old/new screen garbage — which matched nothing in the duplicate filter and spoke again. Two texts that share the same first ~12 words are now treated as the same message, so these repeats are silenced.
Stray screen symbols are never spoken. Terminal indicator glyphs (mode arrows, bullets, spinner marks) could bleed into a captured message during a repaint and be read aloud; they are now stripped from everything spoken.
Question popup dismisses itself when answered elsewhere. Answer a question from the Claude mobile app, by typing in the terminal, or with Esc, and the popup notices the question is gone and closes on its own instead of sitting there waiting for input.
1.1.17
Question popup: “Something else” works. Choosing Something else and typing an answer was declining the whole question (and dropping the typed text into the terminal): on the menu's “Type something.” row, typing directly opens the field — the extra Enter the popup sent first was the decline. Submit now navigates, types, and confirms correctly.
Your own typing is never read aloud. A message typed while Claude was still working (queued under the status spinner) could be picked up and spoken as if Claude said it; the reader now stops at the spinner — everything below it is live input, never speech.
Diagnostics Logging (Preferences → Claude, off by default): writes question-popup and narration traces to the diagnostics log so problem reports can be diagnosed without a special build.
1.1.16
Repeated narration and spoken tool chatter, root-caused from real session history: tool summaries that render indented under a message were being glued onto it, so every re-scan produced a “new” message (spoken again, tool line included). Those lines now mark the message finished instead of joining it. Transient status lines (“Waiting…”, “Running…”) are never spoken.
1.1.15
Collapsed tool output like “Read 1 file (ctrl+o to expand)” is no longer read aloud — the marker could land on a wrapped line where the filter missed it; anything carrying it anywhere in the block is now ignored. Short repeated messages are also caught better by the duplicate filter.
1.1.14
No more double-spoken messages. The same reply reaches Claude Speak twice by design (once read live off the terminal screen, once from the conversation record), and the duplicate filter compared the two word-for-word — but the two copies render formatting differently (code blocks, bullets, dashes), so any formatted message slipped through and was spoken twice. Messages are now matched on their letters and digits alone, ignoring formatting entirely, and final answers pass through the same filter (previously only the in-progress narration did).
1.1.13
Claude Speak for VS Code. The extension is now available for Visual Studio Code as well — search for Claude Speak in the VS Code marketplace (publisher Interactive Lion), or install InteractiveLion.claudespeak. Same interface, same features; sessions run in terminal tabs beneath the Speak/Listen pages, and files Claude touches open in VS Code's own editor. (First release: microphone dictation and the sessions drawer lists are still being ported.)
Find sessions faster. The Sessions drawer's two groups (Claude Speak Sessions and the renamed Sessions in Working Directory) are now collapsible, and both show only sessions from the directory picked in the Working Directory dropdown (the + button adds a directory to the list, retained across restarts). A new Search row filters both groups live: type part of a session's name and/or pick a model from the dropdown.
Playback fixes. Opening a session no longer reads its old messages aloud: the live-narration reader armed itself while the resume menu was still up and then treated the replayed conversation as new narration; it now waits for the terminal to reach its idle prompt, so only genuinely new messages speak. And closing a session tab now silences it immediately — its playing audio stops and its queued messages are dropped, where before the closed session kept talking.
Question popup. When Claude asks a question, a form now opens over that session's terminal instead of leaving you to navigate the terminal menu: radio buttons for single-choice questions, checkboxes when several answers are accepted, and a Something else option with a text box for your own answer. Multiple questions page with Previous/Next and a Submit button once the last one is answered; Submit answers the question in the terminal for you. Closing the popup takes no action. Speaker icons read the question, the answers, or both aloud — and each answer row has its own speaker; they interrupt whatever is playing and the interrupted message resumes right where it stopped. Controlled by Show Question Popup (on by default) and Switch to Session on Question (brings the asking tab forward) in Preferences → Claude, both overridable per session via the tab gear.
Terminal search. Every terminal's command bar now has a magnifier at its right end (next to the menu-commands gear) that opens a search box over that terminal. A two-arrow icon toggles the direction — the blue arrow is active (↓ Top to Bottom, ↑ Bottom to Top; hover for the name); type text and press Enter: the entire terminal history is searched case-insensitively, all matches are highlighted, and the view scrolls to the first one. A Match 1 of N label with previous/next arrows steps through the matches (wrapping at the ends), the box's inner × clears it, and Esc closes the search. Terminal scrollback was also raised from 1,000 to 10,000 lines so searches reach further back.
Intermediate messages speak the moment they appear again. A Claude Code change (its transcript file no longer reliably records mid-turn messages — their issue #21751) had silently broken live narration: step-by-step messages weren't spoken until the next command finished. Narration is now read directly from the terminal screen the instant Claude prints it, so with Play intermediate messages on you hear what Claude is doing as it does it. The final answer still arrives through the standard path, and duplicate delivery of the same text (the old delayed route can still echo a message later) is filtered out.
1.1.11
The model shown for each session now reflects its latest reply, not what it started on — in both places it appears: the Sessions (selection) drawer list, and a new always-visible Last Reply Model line in each session's settings drawer. Claude can switch a session's model mid-conversation (for example a rate-limit fallback from Fable 5 to Opus 4.8); the list used to keep reporting the first model in the transcript forever, and the settings drawer only showed your configured preference. Note the distinction (shown in each label's hover tip): this is the model that answered last — the terminal's /model checkmark is the session's setting, and during a rate-limit fallback the two can legitimately differ until the fallback ends. Newer model names like Fable 5 display properly instead of as a raw model id, and internal “synthetic” transcript entries can no longer appear as a session's model.
Root-cause fix for panels freezing after a Remote Desktop reconnect in Visual Studio. 1.1.10's diagnostics proved the browser control's internal display pipeline (graphics devices + a screen-capture session, created once and never rebuilt) dies on reconnect and that no external nudge — visibility toggles, layout changes, rebuild-in-place — can revive it. Recovery now rebuilds that internal pipeline directly: fresh graphics devices and a fresh capture of the still-running browser, so the page, your sessions, and full terminal scrollback all survive untouched. Runs for the visible panels at reconnect (with retries at 4 and 10 seconds while the session finishes standing up) and for background tabs the moment you select them.
1.1.10
The spoken "…says" prefix now always uses a tab's current name. After renaming a tab (for example Main → Chat), playback could keep announcing the old name; the prefix now reads the saved per-session name — the same one every rename updates — instead of a possibly stale tab record.
Stronger Remote Desktop recovery for what's on screen. The Speak/Listen page and the terminal tab visible during a reconnect were rebuilt immediately — sometimes before the new session's display was ready — and could stay frozen (with a mis-fitted layout and hidden scrollbar on terminals) while background tabs recovered fine when selected. Recovery now re-heals the on-screen panels again 4 and 10 seconds after the reconnect, every rebuilt terminal re-measures and re-fits itself (restoring the scrollbar), and the diagnostic log records exactly which panel was rebuilt to speed up any future report.
1.1.9
The name you give a new session now becomes the session's name in Claude itself (sent as /rename once the session is up), so the Claude mobile app, claude.ai, and resume pickers show the name you chose instead of Claude's auto-generated title. Previously the name only appeared on the Claude Speak tab.
1.1.8
Critical Visual Studio fix: reconnecting over Remote Desktop while the Claude Speak panel was open could crash Visual Studio outright — and the crash made VS forget the extension was installed, so it looked like Claude Speak had uninstalled itself. The Remote Desktop display-recovery step could re-trigger itself in a loop; it now runs exactly once per panel. If the extension currently shows as uninstalled, install this version once and it will stay put.
1.1.7
Double-clicking a word in the Speak or Listen box selects just that word again. The browser could re-extend the selection to the whole sentence or paragraph after our fix ran; the native multi-click selection is now suppressed at the source.
After pausing playback, clicking a new spot in the Listen text resumes from there — including clicks that land between words, and including Google voices (which previously resumed where they had stopped regardless of the click).
Sessions using the default model now launch with the Model chosen in Preferences. Previously only per-session overrides added the model to the launch, so "(Use default)" sessions ran the CLI's own default instead of yours.
Selecting a session tab whose resume menu (or another question) is open now reliably drops the cursor into that terminal — the check runs after the tab is actually shown and retries once while the menu is still painting, and it now recognizes the "Resume from summary / Resume full" menu explicitly.
On reopening Visual Studio, the visible terminal no longer keeps a stale layout (mis-wrapped output, missing scrollbar): terminals re-fit after the panel finishes restoring and whenever their size changes.
Visual Studio: Claude Speak now also appears directly on the View menu, for installs where the View > Other Windows entry never merges.
A session whose Listen settings are returned to Use Global Settings now speaks with the global voice again (a stale per-session voice override could stick).
Arrow/Enter/Esc keys pressed on the Speak page now drive the active terminal instead of always the first one.
Stability hardening from a full code audit: a malformed message can no longer crash the host, a failed terminal launch can be retried instead of leaving a dead tab, a mid-drain message is spoken immediately instead of waiting for the next one, and the Visual Studio panel releases its file watcher when closed.
More audit fixes: cross-thread races that could corrupt session settings, mis-attribute a new session's id to the wrong tab, or silently drop history entries are now locked down; a session whose claude process dies now says so in the terminal instead of silently freezing; and a failed launch no longer leaks console handles.
The file editor (Monaco) now reports whether a save actually succeeded — previously it showed “saved” even when the write failed (for example a locked or read-only file) — keeps the file's original text encoding instead of silently re-encoding it, and asks before closing a tab with unsaved changes.
The Sessions and New Session buttons now work while a file-editor or update tab is selected (they used to open their drawer in a hidden view, so the click appeared dead).
The Sessions drawer no longer freezes the window while it gathers session details (models, sizes, titles are read in the background), and Update Claude no longer stalls the window while detecting how Claude Code is installed.
The bug-report form now says plainly that diagnostic logs include your recent dictation and spoken-message text.
Background session tabs now recover after a Remote Desktop reconnect too. Since 1.1.6 the on-screen panel came back, but a session tab you weren't looking at during the reconnect stayed frozen when you switched to it. Now each session tab rebuilds its display the moment you select it (once per reconnect), so all your sessions are reachable again — without disturbing the ones you aren't using.
1.1.6
Gentler Remote Desktop recovery. The 1.1.5 rebuild was too heavy-handed — a burst of quick reconnects could make the panels flicker and the terminals reflow. Now the panels rebuild only once per reconnect (repeated reconnects within ten seconds are ignored) and only the panels actually on screen are touched, so your background session tabs are left alone.
1.1.5
Stronger fix for panels going blank after a Remote Desktop reconnect. The 1.1.4 fix didn't fully recover every case; the panels now rebuild their display more forcefully when your session reconnects or moves back to the physical console, without losing your open sessions or terminal history.
1.1.4
The Claude Speak panels no longer freeze after a Remote Desktop reconnect. When your session disconnects and reconnects (or moves back to the physical console), the panels now rebuild their display automatically instead of going blank — no more restarting to get them back.
1.1.3
The Model dropdowns (Claude Preferences, New Session, and the per-session override) now list the full model line-up and refresh live: the list is looked up from the Anthropic models API using your Claude Code sign-in, and falls back to a built-in list when offline.
New Auto Prune History (on by default): keeps stored history tidy by dropping entries older than a chosen History Retention age and capping each session at a Max Items count, and removing the record for sessions untouched past that age. A session you're currently viewing is never emptied, and each session can keep its own settings or be exempted from the New Session / Session Settings drawers. It only touches ClaudeSpeak's own history, never Claude's transcripts.
The Claude Speak panel now recovers on its own if its page crashes (it reloads instead of getting stuck on “this page is having a problem”), and the Visual Studio extension cleans up older duplicate installs of itself on startup.
1.1.2
Mid-turn narration is now spoken in real time. A background monitor reads each loaded session's transcript as Claude writes it, so a message Claude says is read within about a second — instead of waiting for the next command or the end of the turn to trigger it. It covers all loaded sessions, never double-speaks (it shares the existing de-duplication), and stays silent for any session that has Play intermediate messages turned off.
1.1.1
The Code and Files panes now load each session's recorded history when you select its terminal (the commands it ran and the files it touched, with path and +/- counts), instead of only showing actions from the current app session — the same way the Listen history loads.
1.1.0
Fixed: when you have several sessions open, selecting a terminal now loads that terminal's own history into the Listen box. Previously only the first session's history was available, so the box could stay frozen on it and never follow the tab you selected (the per-session history list was built once at startup, before the other sessions finished loading, and never rebuilt).
Restored the 1.0.97 improvements (terminal scrollbar, speaker-icon blink, single-word double-click) on top of that fix.
1.0.97
Fixed: the last session you load now shows its terminal scrollbar (the terminal is re-fitted when its tab becomes active, instead of only on its first load).
Fixed: a session tab's speaker icon now blinks blue while that session's reply is being spoken.
Fixed: double-clicking a word in the Speak and Listen panes now selects just that word, not the whole sentence or paragraph.
1.0.96
- New Return Listen to Active Terminal preference (global and per-session). When a message finishes — or you fast-forward to the end with Skip — the Listen tab returns to the terminal you're viewing and loads its last spoken text, instead of staying on the session that just spoke. Only shown when neither Auto Switch to Speak nor Switch Terminal to Speaker is on.
1.0.95
Fixed: button tooltips (such as "Skip to next message" on the Listen tab) no longer get stuck on screen. All tab buttons now use the same dismiss-reliable in-page tooltip already used by the terminal menu.
1.0.94
Fixed: your default voice now sticks across restarts. It could be lost when voices loaded in stages and a fallback voice was picked before yours finished loading.
1.0.93
- Switching to a session tab now drops the cursor into its terminal automatically when Claude is waiting on a question there (the resume menu, a permission prompt, or plan approval) — so you can answer without clicking first. Tabs with no open question keep your cursor where it is.
- New Effort setting (Low … Max) for new sessions, global and per-session.
- Permission Mode replaces the Skip Permissions checkbox: Default, Accept Edits, Plan, Auto, Don't Ask, or Bypass (skip all). Global and per-session.
- Fork session on resume: load a saved session as a new branched session id instead of continuing the original.
Command menu refreshed against the current Claude CLI.
1.0.92
Visual Studio: the panel no longer freezes after reconnecting over Remote Desktop.
1.0.91
- New Auto Switch to Listen preference (global and per session). Turn it off to keep
hearing replies read aloud without the Listen tab pulling focus from the tab you're on.
1.0.90
Internal diagnostics to help troubleshoot UI issues; corrected the displayed version number.
1.0.89
- Claude Speak now updates itself. The standalone app checks for new versions on launch
(and via Check for Updates in Preferences) and installs them in place.
- New Windows installer for the standalone app, installing to Program Files with a Start
Menu shortcut and clean uninstall.
- Report a Bug / Request a Feature (in About) now opens the public GitHub issue tracker
with a guided form, instead of an email form.
- The Visual Studio extension can prompt you to rate it on the Marketplace after a few
uses.
- New Session now works even when no session is open.
Update Claude result message cleaned up; assorted fixes.
1.0.87
- Reworked Update Claude: it confirms before closing your sessions, runs the upgrade
in a visible Claude Update tab so you can watch progress, shows a result popup
(with Retry on failure), then reopens and resumes your sessions.
Bug fixes and refinements.
1.0.86
- Selecting a terminal loads that session's last message into the Listen box, falling back
to the Claude transcript when the session has no captured history; Previous /
Skip navigate that full history.
- Command-bar tooltips now appear in place instead of off-screen.
Bug fixes and refinements.
1.0.85
- Double-click selects a single word at the click point in the Speak and Listen boxes.
- The command-menu hover highlight clears reliably when the cursor leaves the terminal.
Bug fixes and refinements.
1.0.84
- Selecting a terminal loads its last message; Previous / Skip are scoped to
the selected terminal's history.
- Confirmation prompt before closing a session tab.
- The Listen volume icon and a session's tab mute badge turn red when muted.
Bug fixes and refinements.
1.0.83
- Claude's "no reply needed" placeholder is no longer read aloud.
- Switch Terminal to Speaker is held while you have an unsent message in the Speak
box, then applied when you send.
Bug fixes and refinements.
1.0.82
- Global Claude Preferences (font, colors, and more) propagate live to every session using
global settings.
- A manually-loaded session takes terminal focus; a resumed session no longer replays its
old last message before the first new one.
Bug fixes and refinements.
1.0.81
- New Session uses the full settings form, so you can set per-session overrides before
the session launches.
- Uniform, larger inputs in the session settings and a tidied New Session layout.
Bug fixes and refinements.
1.0.80
- Redesigned per-session Settings: collapsible Claude / Listen / Menu groups with
Use Global Settings, mirroring the global Preferences.
- New Session opens over the terminal pane; the tab layout is gear, speaker, name, close.
Bug fixes and refinements.
1.0.79
- Horizontal tab-strip scrolling with arrows; tabs fill the width when there is room.
- Interrupt toggle on Send, a Microphone Timeout setting, and a muted volume
icon at zero.
- Switch Terminal to Speaker (global default and per-session).
Bug fixes and refinements.
1.0.56–1.0.78
- Incremental builds in this range; detailed per-version notes were not recorded for them.
Bug fixes and refinements.
1.0.54
- The Listen box became editable — paste or type text and play it.
- Last-used time shown for each session in the Sessions drawer.
- Navigation keys handled correctly inside Visual Studio.
Bug fixes and refinements.
1.0.53
- Previous-message button added to the transport.
- Skip walks forward through played history before pulling from the queue.
- Keyboard navigation reaches the embedded terminal.
Bug fixes and refinements.
1.0.51–1.0.52
- Sessions drawer moved into the bottom (terminal) region.
- Code-tab commands run in bash so captured commands replay correctly.
- Marketplace publishing prepared.
Bug fixes and refinements.
1.0.48–1.0.50
- The session drawer and per-session settings were introduced.
- Per-session voice, the gear-anchored settings drawer, and live voice switching
(changing a voice mid-playback).
Bug fixes and refinements.
1.0.47
- The in-app Claude Speak Help panel (with table of contents and anchors).
- Mail credentials stored encrypted.
Bug fixes and refinements (WebView2 rendering).
1.0.44–1.0.45
- Dual text-to-speech engines — Microsoft (OS) and Google voices in one list.
- Speak on/off toggle and the full slash-command list.
Bug fixes and refinements.
1.0.40–1.0.42
- The per-terminal command menu bar — customizable, with a full command list and
drag-to-reorder.
- Per-session working directory on New Session.
- Listen on/off and voice tools.
Bug fixes and refinements.
1.0.39
- In-app Report a Bug / Request a Feature form (sent by email).
Bug fixes and refinements.
1.0.34–1.0.38
- Dictation runs on the visible / current session (no hidden instance).
- Dictation auto-finalizes on silence, beating Claude's auto-submit.
Bug fixes and refinements (dictation reliability).
1.0.26–1.0.33
- First builds tracked in the repo: live voice switching, diagnostic-log
attachments on bug reports, and per-host data isolation.
Bug fixes and refinements (speech-to-text).
1.0.25 & earlier
- The original Claude Speak: speak and dictate prompts, Listen with word highlighting and
voices, the Code and Files tabs, History, embedded Claude terminals, multiple sessions,
and Preferences. (Predates the version history, so itemized notes are not available.)