{"id":50338860,"url":"https://github.com/pibulus/talktype_extension","last_synced_at":"2026-05-29T15:30:44.964Z","repository":{"id":358431249,"uuid":"1205970784","full_name":"pibulus/talktype_extension","owner":"pibulus","description":null,"archived":false,"fork":false,"pushed_at":"2026-05-17T11:01:05.000Z","size":747,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-17T12:29:31.373Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pibulus.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-09T13:01:44.000Z","updated_at":"2026-05-17T11:01:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/pibulus/talktype_extension","commit_stats":null,"previous_names":["pibulus/talktype_extension"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/pibulus/talktype_extension","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Ftalktype_extension","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Ftalktype_extension/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Ftalktype_extension/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Ftalktype_extension/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pibulus","download_url":"https://codeload.github.com/pibulus/talktype_extension/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pibulus%2Ftalktype_extension/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33659872,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-05-29T02:00:06.066Z","response_time":107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-05-29T15:30:44.006Z","updated_at":"2026-05-29T15:30:44.952Z","avatar_url":"https://github.com/pibulus.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# TalkType\n\nVoice-to-text for any text input on the web. Click, speak, done.\n\nTalkType is a Chrome extension that drops a mic button next to every text field it finds -- Gmail, Slack, Discord, Facebook, whatever. Hit record, say your thing, and it lands right where your cursor is. No overwriting, no fuss.\n\n![TalkType Logo](src/icons/icon_white/android-icon-192x192.png)\n\n## What it does\n\n- Adds a mic button to any text input on any website (including contenteditable fields)\n- Records audio and transcribes through Gemini 3 Flash, with Gemini 3.1 Flash-Lite fallbacks\n- Inserts text at cursor position without overwriting what's already there\n- Auto-copies transcription to clipboard\n- Glass morphism UI that adapts to light and dark mode\n- Six transcription styles with personality (see below)\n- Single inline API request -- no upload pipeline, no middleware\n- Uses your own Gemini API key (free tier available)\n- No app-side accounts, analytics, or server middleware. Your mic, your key, your words.\n\n## Transcription Styles\n\nPick a voice. Each style has its own generation config tuned for the job.\n\n| Style | What you get |\n|---|---|\n| **Clean \u0026 Accurate** | Straight transcription. Filler words removed only when they are clearly non-semantic. |\n| **Surly Pirate** | Your words, but angrier and saltier. Arr. |\n| **L33t Sp34k** | Num3r1c sub5t1tut10n5 and h4ck3r j4rg0n. |\n| **Sparkle Pop** | SUPER bubbly!!! Emojis everywhere!!! Literally obsessed!!! |\n| **Code Whisperer** | Restructures your rambling into clean, technical language ready for a coding prompt. |\n| **Quill \u0026 Ink** | Victorian prose. Dickens-grade flourishes. For when email deserves eloquence. |\n\n## Installation\n\n1. Download the extension zip from [talktype.app/downloads/talktype-extension.zip](https://talktype.app/downloads/talktype-extension.zip) or clone this repo\n2. Open `chrome://extensions/` in Chrome\n3. Toggle **Developer mode** (top-right)\n4. Click **Load unpacked**\n5. If you downloaded the zip, select the unzipped `talktype-extension` folder. If you cloned the repo, select the `src` folder.\n6. TalkType appears in your toolbar\n\n## Setup\n\n1. Grab a free Gemini API key from [Google AI Studio](https://aistudio.google.com)\n2. Click the TalkType icon in your toolbar\n3. Go to Settings and paste your key\n4. That's it. Go talk to a text field.\n\n## Usage\n\n1. Click into any text input on any page\n2. Hit the mic button that appears\n3. Speak\n4. Text lands at your cursor and copies to clipboard\n\nWorks with standard inputs, textareas, and contenteditable elements (Gmail compose, Notion, etc).\n\n## Project Structure\n\n```\nsrc/\n  manifest.json        Extension config (Manifest V3)\n  content.js           Injects mic buttons, handles text insertion\n  background.js        Service worker\n  api-service.js       Gemini API calls + style configs\n  audio-service.js     Audio recording\n  permission-dialog.js Mic permission handling\n  popup.html/js        Toolbar popup UI\n  options.html/js      Settings page\n  styles.css           Glass morphism styles\n  icons/               Light and dark icon sets\n```\n\nNo build step. No bundler. Vanilla JS all the way through.\n\n## Privacy\n\n- Mic activates only when you click record\n- Audio goes to Gemini API for transcription, nowhere else\n- We do not run an app server or store transcripts ourselves\n- Your API key is stored in Chrome's local extension storage on this device\n- Non-secret preferences are stored with Chrome's `storage.sync`\n- Transcriptions are inserted into the page and copied to your clipboard, but this extension does not keep a local transcript history\n- No analytics, no telemetry, no user accounts\n\n## Tech\n\n- Chrome Manifest V3\n- Gemini 3 Flash primary model with Gemini 3.1 Flash-Lite fallbacks\n- Browser-recorded audio is converted to WAV when needed before the single inline base64 request\n- Vanilla JavaScript, no dependencies\n- Style-specific prompts, with Gemini 3 kept on its recommended default temperature\n\n## Current Scope\n\n- This extension currently uses a Gemini-only transcription flow\n- It does not yet share the newer Deepgram/live transcription architecture used in the main TalkType app\n- No automated test suite is bundled in this repo; validation is currently manual in Chrome\n\n## Version\n\n1.6\n\n## License\n\n[MIT](LICENSE)\n\n---\n\nMade by [Pablo](https://github.com/pibulus). Talk easy.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpibulus%2Ftalktype_extension","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpibulus%2Ftalktype_extension","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpibulus%2Ftalktype_extension/lists"}