Press Super+z or click the panel icon to record, then again to stop. Your speech is sent to OpenRouter and the transcript is pasted into whatever you were already typing. Stopping a recording copies the text to the clipboard so it can be pasted (Shift+Insert, or Ctrl+Shift+Insert in a terminal). The extension does not read or upload anything else from the clipboard. Audio is sent to openrouter.ai over HTTPS only when you stop, using the API key from preferences. An OpenRouter account and a transcription-capable model are required. Super+z is on by default; change or disable it in preferences. The icon can be hidden or moved, and the start/stop sounds are optional.
Note: Binary files aren't shown on the web site. To see all files, please download the extension zipfile.
EGO-A-005 manual_review
extensions should not access the clipboard directly
Direct clipboard access via `St.Clipboard.get_default()` requires reviewer scrutiny.
extension.js:617
St.Clipboard.get_default()
| Version | Status |
|---|---|
| 3 | Unreviewed |
| 2 | Rejected |
| 1 | Rejected |
Is this code generated by AI? If so, we have a rule for that: [EGO Review Guidelines: AI](https://gjs.guide/extensions/review-guidelines/review-guidelines.html#extensions-must-not-be-ai-generated) Also please read [Extension Best Practices Guidelines](https://gjs.guide/extensions/review-guidelines/best-practices.html). There are some issues here that is also mentioned there. And please use spaces between functions so it is readable for the reviewers. If you need any help with your extension you can ask us on: - [GNOME Extensions Matrix Channel](https://matrix.to/#/#extensions:gnome.org) - IRC Bridge: irc://irc.gimpnet.org/shell-extensions
Sorry about that. I maintain this extension myself. The first upload was hard to read because I compile TypeScript with tsc, and it strips the blank lines between functions in the emitted JS. That’s what ended up in the zip. I fixed the build so the submitted JS keeps the spacing. I also went through the best practices you linked: split the code into smaller modules, kept enable/disable next to each other, and removed the extra try/catch / checks. New version is up. Thanks for the review.