Releases: Pedal-Intelligence/saypi-userscript
Say, Pi v1.10.7 - OAuth Authentication & UI Polish
What's New
🔐 Modern Authentication (OAuth 2.1 + PKCE)
- Secure OAuth 2.1 authentication with PKCE for browser extensions
- Progressive authentication prompts guide users through sign-in when needed
- Event-driven sign-in UX with automatic return to context after authentication
- Browser alarms for reliable JWT token refresh
- Firefox Mobile: Tab-based PKCE flow for full authentication support
🎨 UI Consistency Improvements
- Pi.ai: Buttons now match native Pi styling (36px size, consistent spacing, cream backgrounds)
- Claude.ai: "Voice settings" correctly positioned after "Code" in sidebar
- Settings button tooltip changed to "Voice settings" to differentiate from native settings
Installation
Download saypi-chrome-v1.10.7.zip, extract it, then load unpacked in Chrome at chrome://extensions (enable Developer mode).
Or install from the Chrome Web Store.
🤖 Generated with Claude Code
v1.10.6
Say, Pi v1.10.6 — High-Accuracy Dictation & Chatbot Updates
This release introduces a major upgrade to our dictation system for significantly better accuracy, along with critical compatibility fixes for recent chatbot UI changes.
🚀 New Features & Improvements
- Dual-Phase Contextual Transcription: Dictation is now smarter! You'll get immediate real-time feedback as you speak (Phase 1), followed by a high-accuracy refinement once you finish or switch fields (Phase 2). This improves transcription quality for longer sentences and natural speech patterns.
- Enhanced Sidebar Integration: Standardized sidebar behavior across all supported chatbots (Pi, Claude, ChatGPT) for a more consistent and stable experience.
- Seamless Styling for Pi.ai: Updated the UI to blend more naturally with Pi's latest native design.
🛠️ Fixes & Compatibility
- Claude.ai Compatibility: Fully updated to support the December 2025 UI changes on Claude.ai.
- Pi.ai Call Button Fixes: Resolved issues where the call button was missing on new chat pages for both desktop and mobile.
- Reliable Audio Selection: Updated audio output button selectors for Pi.ai to match their latest interface.
- ChatGPT Enhancements: Improved path validation and auto-read aloud reliability.
🔒 Security & Optimization
- Reduced Permissions: Minimized the extension's permission requirements by removing the
downloadspermission from production builds. - i18n Stability: Improved translation handling to prevent potential data loss during updates.
- Web Store SEO: Optimized listing metadata for better visibility in the Chrome Web Store.
Say, Pi v1.10.5 - WXT Migration & Platform Improvements
Say, Pi v1.10.5 - WXT Migration & Platform Improvements
This release represents a major technical modernization of Say, Pi alongside critical user-facing improvements for Pi.ai and ChatGPT users.
🏗️ Major Technical Changes
WXT Migration (PR #242)
The extension has been migrated from Webpack to WXT, a modern web extension framework that provides:
- Improved Developer Experience: Simpler configuration, better TypeScript support, and faster dev iteration
- Cross-browser Support: First-class support for Chrome MV3 and Firefox MV2 with automatic manifest handling
- Modern Tooling: Built on Vite for faster builds and HMR (Hot Module Replacement)
- Better Code Organization: Framework conventions that align with extension best practices
This migration lays the groundwork for easier maintenance and future feature development while maintaining backward compatibility.
Bundle Size Optimization
- Reduced JavaScript bundle size from 9MB to 1.3MB through improved code splitting and minification
- Ensures compliance with Firefox AMO's 5MB non-binary file limit
- Faster extension load times and reduced memory footprint
🐛 User-Facing Fixes & Improvements
Pi.ai Improvements
- Fixed sidebar integration after Pi.ai's October 2024 redesign (PR #251)
- Fixed call button visibility on mobile new chat pages
- Fixed prompt selector to work on both new and existing chat pages (PR #247)
- Improved mobile navigation and UI responsiveness
ChatGPT Improvements
- Fixed auto-read aloud for existing conversations (PR #246)
- More reliable TTS activation when navigating between chats
- Better handling of ChatGPT's dynamic UI updates
Stability & Polish
- Fixed TTS error handling when voice is disabled
- Improved i18n validation scripts for better locale management
- Enhanced documentation for contributors and developers
📚 Documentation Updates
- Reorganized project structure with curated README
- Enhanced CONTRIBUTING.md and developer guidance
- Added sidebar integration standardization guide
🔧 Technical Improvements
- Migrated to
wxt/browserpolyfill for cross-browser compatibility - Fixed unit tests for new build system
- Updated environment validation scripts
- Dynamic locale path handling for translations
For Developers: This release modernizes the build toolchain and project structure. See CLAUDE.md for updated build commands and architecture documentation.
For Users: This update improves reliability across Pi.ai and ChatGPT with faster load times and better mobile support.
🤖 Generated with Claude Code
Say, Pi v1.10.4 - Smoother Text To Speech and other refinements
What’s New
- Smoother text-to-speech: Say, Pi now waits for every audio fragment before finishing, buffers the opening words so playback starts confidently, and keeps streams alive even during tool pauses. You’ll hear far fewer hiccups, repeats, or early cut-offs—plus new behind-the-scenes metrics help us keep improving.
- Browser guidance you can trust: A detailed compatibility guide explains which browsers work best and why, and the extension now gently alerts you when speech playback isn’t available (for example on Firefox or Safari). The notice appears in your language, introduces alternative options, and avoids nagging when another message already covers the issue.
- Voice menu that fits everywhere: The Claude voice selector finally behaves on smaller screens. It anchors itself where there’s room, scrolls gracefully, and the mobile prompt bar now fits without overlaps.
Quality & Reliability
- Status updates are clearer: The popup now shows real-time service messages with a “view details” link, and every locale received fresh translations so everyone sees the same information.
- Conversation continuity: We track TTS messages with stable IDs, reuse audio streams when appropriate, and deduplicate overlapping text—cutting down on glitches during long discussions.
- Leaner diagnostics: Background logging and model assets were trimmed, speeding up troubleshooting while keeping disk usage in check.
For Power Users & Contributors
npm run switchinstantly flips between local and remote backends, no manual.envedits required.- Authentication refactor planning docs moved into
scripts/with a quickstart PDF; JWT handling now supports background proxying and adds safety checks for service-worker contexts. - New ONNX pruning scripts, compatibility modules, and extensive test coverage accompany the audio and browser work—grab the latest dependencies and run
npm run buildafter pulling.
Say, Pi v1.10.3 — Agentic Listening (Pro), 10 new Claude voices, lots of polish
TL;DR:
- New: Agentic Listening (aka Discretionary Responses) — your assistant now chooses when to speak and how much to say. (Pro tier)
- New: 10 curated voices for Claude (replacing the deprecated “ALTER”). (Plus & Pro)
- Improved: Smoother ChatGPT experience, more reliable Claude TTS, and a bunch of quality-of-life fixes.
✨ New
Agentic Listening (Pro)
Your voice companion can now exercise discretion — listening first, responding only when helpful, and matching your vibe (brief vs. detailed). It reduces interruptions, avoids over-talking, and feels more… human.
- Works on: ChatGPT, Claude, and Pi
- Availability: Pro tier
- Learn more / feature intro: https://www.saypi.ai/agents
Tagline: “We wait for your last word.”
10 new voices for Claude
Claude’s single voice (“Alter”) stopped working about a month ago. We’ve brought voice back better with 10 high-quality, conversational voices (curated from ElevenLabs).
- Where to use: Visit claude.ai while signed in to the extension
- How to pick: Use the voice dropdown in the Say, Pi panel on Claude
- Availability: Plus & Pro tiers
🛠 Improvements
- ChatGPT ergonomics: ChatGPT's customisation themes are now supported! Pick an accent color in ChatGPT, and your Call Button will match it.
- Read-aloud reliability (ChatGPT): Fewer hiccups when new messages arrive or you interact elsewhere on the screen.
- Claude TTS path: More efficient and resilient voice playback with fewer timeouts and edge-case stalls.
- General polish: Small UI/state fixes across ChatGPT & Claude to make long sessions feel smoother.
⚠️ Notes & known limitations
- ChatGPT long answers: Playback still only begins after the full text finishes streaming (ChatGPT’s Read Aloud limitation). True streaming audio is on our roadmap, and this update moves us a big step closer.
- Agentic Listening: If you prefer a reply every turn, you can disable the feature in settings.
- Claude voices: All users can see the voice picker on Claude, but you must be signed in to the extension with an active Plus or Pro plan to hear the voices.
- Firefox SSO: Sign in is not working on Firefox (desktop or mobile). We're investigating.
🔄 Upgrading
- The extension auto-updates. To confirm, check v1.10.3 in your browser’s extensions page.
- No new permissions required for this release.
Say, Pi v1.10.2 - Battening down the hatches
What's New in v1.10.2
🎧 Background Listening for ChatGPT
New background listening feature lets you continue hearing ChatGPT's audio responses while you work on other things. You can now browse, type, or use other apps without interrupting your conversation.
Known issue: Some read-aloud menus may linger after audio finishes (cosmetic only, will be fixed soon).
🎯 Smarter Voice Detection
Fixed a bug that was cutting off users mid-sentence. The system is now much more patient and won't submit your prompt until you're actually done speaking.
Why This Matters
These targeted improvements significantly enhance the voice interaction experience. The background listening makes ChatGPT conversations feel more natural, and the improved voice detection means fewer frustrating interruptions.
Say, Pi for ChatGPT v1.10.1 - Critical Fixes
Say, Pi for ChatGPT Fixes
This release focuses on critical bug fixes for the ChatGPT integration, making voice interactions more seamless and reliable.
🚨 Critical Fix: ChatGPT Read Aloud Button
Problem: OpenAI recently moved ChatGPT's "Read aloud" button from the direct action bar into a dropdown menu behind an ellipsis ("...") button. This broke Say, Pi's auto-read-aloud feature for ChatGPT users.
Solution: Implemented robust fallback detection that:
- Detects action menu triggers generically (language-agnostic)
- Uses synthetic pointer/mouse/keyboard activation to open Radix popper menus
- Finds and clicks the voice button within portal-rendered dropdowns
- Includes comprehensive test coverage for non-English UI scenarios
🔧 Additional ChatGPT Improvements
- Enhanced Replay Support: Added support for "Replay" button variant that appears after exiting voice mode
- Better Focus Management: Read aloud menu items now receive proper focus to avoid UI confusion
- Audio Cleanup: Improved audio element cleanup logic for better resource management
- Message Detection: Fixed edge case in last-message detection logic
- Audio Source Handling: Enhanced audio source handling in speech models
🎯 User Experience Impact
- ✅ Auto-read-aloud now works with ChatGPT's new UI layout
- ✅ Supports all languages and localized interfaces
- ✅ More reliable voice activation across different ChatGPT UI states
- ✅ Better audio resource management
⚠️ Known Issue
Menu Dismissal Problem: When accessing Read Aloud via the ellipsis menu, clicking anywhere outside the menu stops audio playback. This affects multitasking during longer responses. We're tracking this as Issue #206 for a future release.
📋 Full Changelog
9a59896chatgpt: auto‑read‑aloud fallback for new ellipsis menu (#205)5a5801dAdd support for Replay button in ChatGPT message controls2db141aImprove audio element cleanup logic in AudioModule2c9774cEnhance audio source handling in AudioOutputMachine and SpeechModelbb875e1Fix isLastMessage logic in AssistantResponse class9ce9ac5Update version to 1.10.1 in manifest files
🔄 Migration Notes
No user action required - this is a seamless compatibility update for ChatGPT's recent UI changes.
Say, Pi v1.10.0 — Say, Pi for ChatGPT 🤖
🎉 Say, Pi for ChatGPT MVP (Phase 2) — Keep the Standard Voice Feel
Version 1.10.0 introduces "Say, Pi for ChatGPT" — bringing the same warm, patient voice experience you love from Pi.ai to ChatGPT. This release directly addresses the #SaveStandardVoice movement by preserving that familiar, thoughtful conversational flow.
🆕 NEW: ChatGPT Voice Integration
Standard Voice Mode Experience
- Drop into chatgpt.com: a call button appears in the ChatGPT composer — start/stop just like you would with SVM
- Auto Read Aloud: When activated, we press ChatGPT's native "read aloud" once per response — no double audio
- Designed for the #SaveStandardVoice moment: warm, present, and reliable pacing
Voice Conversations with AI
- Talk to ChatGPT, Pi, and Claude with Whisper speech recognition that knows when you've finished speaking
- Universal Voice Typing: Type into any text field or email on any website — just right-click and select "Start typing with Say, Pi"
- Accurate & Fast: High-accuracy speech-to-text conversion, even with accents and background noise
🚀 Enhanced Experience
FREE PACKAGE — TRY INSTANTLY, NO ACCOUNT NEEDED
- Natural-sounding responses in supported modes
- Flexible layouts: use fullscreen or standard chat mode
- Dark mode support designed to blend with each platform
- Works everywhere: Mac, Windows, Linux, Android, iOS
SAY, PI PREMIUM — UNLOCK THE FULL EXPERIENCE
- Support for ChatGPT, Claude & Pi: seamlessly switch between top AI assistants
- Professional voice typing for emails, documents, and forms anywhere on the web
- Vivid responses in 32+ languages powered by ElevenLabs
- Higher usage limits and cross-platform sync
🛠️ Technical Improvements
- Enhanced ChatGPT composer integration with robust ProseMirror support
- Improved mobile submit button detection
- Better Chrome Web Store publishing workflow with lcp alias helper
- Comprehensive app store descriptions now include ChatGPT features
🔗 Get Started in Seconds
- Install the extension
- For AI chat: Open chatgpt.com, pi.ai, or claude.ai and click the call button
- For voice typing: From any text field, click the floating "Say, Pi" icon or right-click and select "Start typing with Say, Pi"
- Speak naturally. That's it.
Why thousands love Say, Pi:
- ⚡ Boost your workflow: take notes, write emails, brainstorm, or draft while keeping hands free
- 🌍 Speak any language with multilingual support and smooth conversation switching
- ♿ Built for accessibility with inclusion in mind
- ⭐ Rated 4.9/5 by 2,000+ users and trusted by a growing global community
- 🔒 Privacy-first: your voice data is secure and never misused
Start having natural AI conversations and voice typing — install Say, Pi and experience the future of conversation and productivity.
This release maintains the warm, patient experience users loved in ChatGPT's Standard Voice Mode while expanding it across platforms. Perfect for the #SaveStandardVoice community seeking that familiar conversational depth.
Say, Pi v1.9.5 — Cleaner Pi onboarding, neater Claude text, and dictation on more sites
TL;DR ✨
• 🧹 Pi: onboarding screens are now clean and uncluttered.
• 🧾 Claude: fixed placeholder/text alignment so inputs look right.
• 🗣️ Dictation: works on more websites by safely routing API calls around restrictive CSPs.
• 🔧 Under the bonnet: small analytics hook (privacy-preserving) plus robustness/typing/test improvements.
⸻
What’s improved
Pi (pi.ai) 🧭
• Onboarding UI clean-up. Removed leftover chat UI artefacts that could appear on onboarding pages, and tightened route detection so our controls only show where they’re meant to.
Claude (claude.ai) 🎯
• Text/placeholder alignment fixed. Inputs now align properly so everything looks tidy and consistent.
Dictation (universal) 🗣️
• Works on more sites with strict CSP. API requests for dictation are now proxied through the extension’s background script, neatly avoiding host-page CSP restrictions. No user action needed — it “just works” on more editors and sites.
⸻
Under the bonnet (for the curious) 🔍
• Lightweight usage analytics integration. Added stable client ID/version/app metadata to STT/TTS requests to help us understand feature usage. This is privacy-preserving (no PII; failures never impact core features) and follows our privacy policy. End users shouldn’t notice anything.
• Reliability & maintainability:
• Stronger typing for request payloads
• Safer browser-API checks
• Clearer error handling
• Updated tests (including FormData/audio cases) to cover the new background-proxy flow and analytics fields
⸻
Full change log (since v1.9.4) 📝
• Route API requests through background to bypass host-page CSP (enables dictation on more CSP-restricted sites). PR #189
• Fix chat icons appearing on Pi onboarding page (onboarding UI clean-up; also bumps version to 1.9.5). PR #191
• Implement usage analytics client integration (privacy-preserving, non-user-visible). PR #192
• Fix placeholder text alignment on Claude. PR #194
• Plus supporting commits: test/spec updates and a release-candidate commit for v1.9.5.
⸻
Notes on privacy 🔒
We’ve added minimal, privacy-preserving usage signals to improve product decisions. This does not collect personal data and does not change how Say, Pi handles your conversations. See our privacy policy for details.
Say, Pi v1.9.4 — Focus Mode, cleaner Settings, smarter dictation
Release date: 24 Aug 2025
What’s new
- Focus Mode: 🧘 Reduce visual noise while you chat. The "Immersive" mode has been renamed Focus, and gets a new icon.
- Tabbed Settings UI: 🎛️ Cleaner sidebar tabs (General, AI Chat, Dictation, About) with tidy headings and Lucide icons. Responsive on mobile.
- Filler-word filter: 🧹Toggle to strip “um”, “uh”, repeated words and false starts from transcriptions. Off by default.
- Firefox Mobile improvements: ⚙ Settings button is visible and the Settings pop-up opens on Firefox for Android.
Improvements
- No more audio blocking on non-chatbot sites: Universal Dictation won’t interfere with page audio (video/music) on regular sites; full TTS remains on chatbot sites (pi.ai, claude.ai). Reduced background resource use.
- Smoother builds & loading: Better handling of async chunks and ONNX/ORT loading to avoid mismatches; fewer edge-case load failures.
- Firefox add-on compliance: Replaced some
innerHTMLusage with safe DOM manipulation and added tests.
Fixes
- Firefox VAD model loading: Fixed a cross-realm
ArrayBufferissue that could break model loading; pinnedonnxruntime-webto match the VAD library. - Provider labelling: Corrected the “Speech provided by …” text on claude.ai.
- Localisation updates: New/updated strings for the tabbed UI, privacy-policy messaging, and assorted typo fixes.
How to use the new bits
- Turn on filler-word removal: Settings → Dictation → Remove filler words (off by default).
- Enter Focus Mode: Click the Focus icon in the UI (on mobile it replaces the old maximise button).
- Find Settings on Firefox Mobile: Tap the Settings button in the extension’s UI; the pop-up now opens on Android.
Technical notes (for the curious)
- Scoped audio output to chatbot sites; introduced a
NoneAudioProviderfor non-chatbot pages; conditional/dynamic loading for slow-response handlers. - New tabbed Settings implemented with Lucide icons; responsive styles; build tweaks for async chunk public paths and ONNX asset handling.
- DOM hardening for Firefox review; added unit tests; i18n structure split into source/target to avoid heavy memory behaviour and loops.
Full list of merged PRs since v1.9.3
- #187 – Browser Extension Settings on Firefox Mobile (settings button + pop-up on Android, icon update, ORT pin, VAD fix).
- #186 – Focus Mode (new focus icon and timer type tidy-up).
- #185 – Tabbed Popup Layout and Styling (sidebar tabs, Lucide icons, responsive design, build fixes).
- #184 – Prevent audio blocking on non-chatbot sites + optimise loading (lighter footprint off chatbot pages).
- #182 – Replace
innerHTMLwith DOM manipulation for Firefox compliance (plus tests). - #180 – “Remove filler words” preference (UI toggle, API wiring, i18n).
For smaller direct commits (locales, i18n structure, ORT loading tweaks, housekeeping) see the commit list between v1.9.3 and main.