Originally created by: imshaikot
The side panel is the only place to talk to Browsentic, and it takes a column of the window for as long as it is open. Minimizing it to the rail gives the room back, but the rail has no microphone, so the conversation goes quiet with it. There is no way to keep the whole page and keep talking.
Hands-free mode: put the panel away entirely, and talk to the page through a floating mic.
What it should do
Getting there
- A detach button in the side panel's header, just before minimize. Pressing it puts the panel away completely. A side panel cannot be resized or minimized, only closed, so the close should be dressed as a transition that reads as the panel folding into the mic rather than vanishing.
/hands-free in the composer does the same, and the / menu offers it (autocomplete) as it is typed.
- Reopening the side panel ends hands-free.
The mic
- A floating mic button at the bottom middle of the page, a little bigger than the panel's icon buttons, with a soft shadow.
- The same aesthetic and motion as the panel: its palette in every theme, its easing, its animations.
- Rendered inside a shadow DOM, so the page's styles cannot reach it and it cannot reach the page's.
- A long press lifts it (a slight scale up), and it can then be dragged anywhere on the page. Where it is dropped is kept.
The menu
- Hovering for a second without pressing fans out menu items in an arc around the mic, appearing one after another from left to right.
- Items: attach a file, live code, focus point (A-Eye), hold to talk, and reopen the side panel.
- When the mic has been moved to another edge of the page, or into a corner, the arc turns to open away from that edge, and the direction the items appear in turns with it.
Talking
- While the user speaks, the mic's border shows the same speaking effect as the panel's mic.
- What is said appears as a line above the mic, or wherever it fits, streaming in word by word, the way Gemini's chat streams an answer.
- Before an instruction is sent, the panel's auto-send countdown runs as a ring around the mic. Pressing the mic during it throws the sentence away, so it can be said again.
- When a run finishes, its answer appears the same way.
Hold to talk (toggled from the menu)
- The mic stays off until a keyboard key is pressed and held. While it is held the user can speak; letting go mutes the mic again and the instruction moves on.
- The key must be one that is unimportant to the browser — no action of its own — preferably at the far left of the keyboard, and the same key whatever the keyboard layout or platform.
While the agent works
- The mic shows a working highlight animation.
- Pressing it cancels the run.
- When a permission is needed, the user is notified; pressing the mic opens the permission prompt wherever it fits, pointing at the mic.
What has to stay true
- A-Eye never selects the mic. Neither the user's pick nor the agent's may outline it or land on it.
- It only exists where speech works. The detach button,
/hands-free and the mic never appear in a browser that cannot transcribe speech: Firefox, and Chromium browsers that ship the speech API without a service behind it, such as Brave.
- One microphone at a time. The panel and the mic never listen together.
- It listens for the tab in front of the user, and not while the browser is in the background.
- A page cannot open the microphone, or answer a permission prompt. Nothing the page does — a synthetic key press or click — counts.
- Hold to talk does not steal shortcuts. Using the key as a modifier (a shortcut, a click, a scroll) never opens the microphone.
- A restarted browser comes back with the panel, never with a microphone already on.
Done means
- All of the above in Chrome, with tests for each rule under What has to stay true.
- Docs: a feature page, the extension internals, limits and troubleshooting.
Not in scope: voice in Firefox, which has no speech recognition to offer.
Ticket changed by: imshaikot