{"id":44629033,"url":"https://github.com/amirk-s/ttp","last_synced_at":"2026-06-13T11:01:22.093Z","repository":{"id":338626004,"uuid":"1158511213","full_name":"AmirK-S/TTP","owner":"AmirK-S","description":"Talk-to-Paste — AI transcription keyboard shortcut for macOS \u0026 Windows","archived":false,"fork":false,"pushed_at":"2026-06-01T11:34:46.000Z","size":3203,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-01T13:19:38.148Z","etag":null,"topics":["ai","desktop-app","groq","macos","productivity","rust","transcription","voice-to-text"],"latest_commit_sha":null,"homepage":null,"language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AmirK-S.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","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-02-15T13:53:32.000Z","updated_at":"2026-05-26T11:42:20.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/AmirK-S/TTP","commit_stats":null,"previous_names":["amirk-s/ttp"],"tags_count":36,"template":false,"template_full_name":null,"purl":"pkg:github/AmirK-S/TTP","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirK-S%2FTTP","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirK-S%2FTTP/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirK-S%2FTTP/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirK-S%2FTTP/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AmirK-S","download_url":"https://codeload.github.com/AmirK-S/TTP/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AmirK-S%2FTTP/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34281700,"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-06-13T02:00:06.617Z","response_time":62,"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":["ai","desktop-app","groq","macos","productivity","rust","transcription","voice-to-text"],"created_at":"2026-02-14T16:15:35.697Z","updated_at":"2026-06-13T11:01:22.074Z","avatar_url":"https://github.com/AmirK-S.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"src-tauri/icons/icon.png\" width=\"120\" alt=\"TTP Logo\" /\u003e\n\u003c/p\u003e\n\n\u003ch1 align=\"center\"\u003eTTP — Talk To Paste\u003c/h1\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003ePress a shortcut. Speak. Your words appear wherever you're typing.\u003c/strong\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/AmirK-S/TTP/actions/workflows/build.yml\"\u003e\u003cimg src=\"https://github.com/AmirK-S/TTP/actions/workflows/build.yml/badge.svg\" alt=\"Build\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/AmirK-S/TTP/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/v/release/AmirK-S/TTP?label=latest\" alt=\"Latest Release\" /\u003e\u003c/a\u003e\n  \u003ca href=\"https://github.com/AmirK-S/TTP/releases\"\u003e\u003cimg src=\"https://img.shields.io/github/downloads/AmirK-S/TTP/total\" alt=\"Downloads\" /\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://ttp.amirks.eu\"\u003eWebsite\u003c/a\u003e \u0026middot;\n  \u003ca href=\"https://github.com/AmirK-S/TTP/releases\"\u003eDownload\u003c/a\u003e \u0026middot;\n  \u003ca href=\"https://github.com/AmirK-S/TTP/releases\"\u003eChangelog\u003c/a\u003e \u0026middot;\n  \u003ca href=\"https://amirks.lemonsqueezy.com/buy/dcc74241-21ae-4d20-8a3c-90bf8d842bae\"\u003eBuy Pro\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nTTP is a lightweight desktop app that turns speech into text — instantly, in any app. Hold a shortcut, speak, and your words are transcribed and pasted wherever your cursor is. No switching apps, no copy-pasting, just talk.\n\nFree forever. No account required. Bring your own Groq API key.\n\n## Features\n\n- **Lightning fast** — Powered by Groq Whisper. Transcription in under 2 seconds.\n- **Works everywhere** — Paste into Slack, VS Code, Gmail, Notion, any app where you type.\n- **AI polish** — Automatically removes filler words, fixes grammar, cleans up your text.\n- **Smart dictionary** — Learns your names, jargon, and technical terms.\n- **Mac + Windows** — Native app, lives in your menu bar / system tray.\n- **Privacy first** — API keys and history stored locally. Nothing leaves your machine.\n- **Auto updates** — Updates install automatically in the background.\n\n## Trust \u0026 Security\n\nTTP runs on your machine and handles your voice and your API keys, so we treat the security pipeline as a feature.\n\n- **Signed + notarized macOS builds** — every release is code-signed with an Apple Developer ID certificate and notarized through Apple's notary service before shipping.\n- **Code-signed Windows installers** — `.msi` and NSIS `-setup.exe` artifacts are signed in CI when the Windows certificate is configured.\n- **Minisign-verified auto-updates** — the Tauri updater verifies every update payload against a minisign public key embedded in the app at install time; tampered updates are rejected.\n- **OS keychain for API keys** — your Groq API key lives in the macOS Keychain (and Windows Credential Manager on Windows), not in plaintext config files.\n- **HMAC-signed local caches** — the offline license cache and Pro usage counters are HMAC-signed with a per-machine secret stored in your OS keychain, so a license file forged on one machine won't be accepted on another.\n- **Telemetry off by default** — Sentry crash reporting and Aptabase usage analytics are opt-in only and disabled until you explicitly enable them in Settings.\n- **Strict CSP, no remote webview content** — the embedded webview only loads bundled assets; there's no external network reachable from the UI layer.\n- **Third-party calls are listed in the [privacy policy](https://ttp.amirks.eu/privacy)** — Groq, Lemon Squeezy, GitHub (updater feed), Sentry, and Aptabase. No other network calls are made.\n\nFound a security issue? Please report it privately — see [SECURITY.md](SECURITY.md).\n\n## How It Works\n\n1. **Hold your shortcut** — On Mac, just press `Fn`. On Windows, configure your preferred key.\n2. **Speak** — Talk naturally. TTP records your voice in the background.\n3. **Text appears** — Your words are transcribed and pasted instantly into the active app.\n\n## Installation\n\n### Download\n\nGrab the latest release for your platform:\n\n- **macOS** — `.dmg` from [Releases](https://github.com/AmirK-S/TTP/releases)\n- **Windows** — `.msi` from [Releases](https://github.com/AmirK-S/TTP/releases)\n\n### Setup\n\n1. Install the app\n2. Get a free API key from [Groq Console](https://console.groq.com)\n3. Paste the key in TTP's setup screen\n4. Start talking\n\n## Build from Source\n\n### Prerequisites\n\n- [Node.js](https://nodejs.org/) 18+\n- [Rust](https://www.rust-lang.org/tools/install) (latest stable)\n- [Tauri CLI](https://v2.tauri.app/start/prerequisites/)\n\n### Steps\n\n```bash\n# Clone the repo\ngit clone https://github.com/AmirK-S/TTP.git\ncd TTP\n\n# Install dependencies\nnpm install\n\n# Run in development\nnpm run tauri dev\n\n# Build for production\nnpm run tauri build\n```\n\n## Tech Stack\n\n| Layer | Technology |\n|-------|-----------|\n| Framework | [Tauri 2](https://v2.tauri.app/) |\n| Frontend | React + TypeScript |\n| Backend | Rust |\n| Styling | Tailwind CSS |\n| Transcription | [Groq Whisper](https://groq.com/) (whisper-large-v3) |\n| AI Polish | Groq LLM (llama-3.3-70b-versatile) |\n| Landing Page | [Astro](https://astro.build/) + GSAP |\n\n## Project Structure\n\n```\nTTP/\n├── src/                  # React frontend\n│   ├── components/       # UI components (Pill, Setup, History)\n│   └── hooks/            # Recording control, settings, dictionary\n├── src-tauri/            # Rust backend\n│   └── src/\n│       ├── transcription/  # Whisper API + LLM polish pipeline\n│       ├── dictionary/     # Smart dictionary with auto-detection\n│       ├── paste/          # Clipboard + accessibility paste\n│       └── fnkey.rs        # macOS Fn key listener\n└── landing/              # Astro landing page (amirks.eu)\n```\n\n## Author\n\n**Amir Kellou-Sidhoum** — AI Engineer / Builder / Consultant\n\n- [LinkedIn](https://www.linkedin.com/in/amirks/)\n- [Website](https://amirks.eu)\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with care.\n\u003c/p\u003e\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirk-s%2Fttp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Famirk-s%2Fttp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Famirk-s%2Fttp/lists"}