{"id":37355844,"url":"https://github.com/jamditis/yap","last_synced_at":"2026-01-16T04:32:43.694Z","repository":{"id":329297857,"uuid":"1113507487","full_name":"jamditis/yap","owner":"jamditis","description":"Voice-coding tool for Windows 10 and 11.","archived":false,"fork":false,"pushed_at":"2025-12-18T15:31:45.000Z","size":480,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-21T19:54:00.455Z","etag":null,"topics":["coding","productivity","speech-to-text","terminal","transcript","transcription","voice-recognition","voice-to-text","vtt"],"latest_commit_sha":null,"homepage":"https://jamditis.github.io/yap/","language":"TypeScript","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/jamditis.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":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":"2025-12-10T04:32:16.000Z","updated_at":"2025-12-18T15:31:49.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/jamditis/yap","commit_stats":null,"previous_names":["jamditis/yap"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/jamditis/yap","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamditis%2Fyap","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamditis%2Fyap/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamditis%2Fyap/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamditis%2Fyap/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/jamditis","download_url":"https://codeload.github.com/jamditis/yap/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/jamditis%2Fyap/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28477210,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-16T03:13:13.607Z","status":"ssl_error","status_checked_at":"2026-01-16T03:11:47.863Z","response_time":107,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["coding","productivity","speech-to-text","terminal","transcript","transcription","voice-recognition","voice-to-text","vtt"],"created_at":"2026-01-16T04:32:43.094Z","updated_at":"2026-01-16T04:32:43.684Z","avatar_url":"https://github.com/jamditis.png","language":"TypeScript","readme":"# Yap - Voice Assistant for Developers\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"assets/yap.png\" alt=\"Yap Logo\" width=\"128\" height=\"128\"\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eVoice-to-text dictation tool that runs in your system tray\u003c/strong\u003e\u003cbr\u003e\n  Perfect for hands-free coding with Claude Code, Gemini CLI, or any terminal.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://github.com/jamditis/yap/releases/latest\"\u003e\n    \u003cimg src=\"https://img.shields.io/github/v/release/jamditis/yap?style=for-the-badge\" alt=\"Latest Release\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Download\n\n**[⬇️ Download Latest Release](https://github.com/jamditis/yap/releases/latest)**\n\n---\n\n## Features\n\n- **Headless tray mode** - Runs silently in system tray, always ready\n- **Global hotkeys** - `Alt+S` to record from any window, `Alt+H` to show settings\n- **Multiple transcription engines:**\n  - **Gemini 2.0/2.5 Flash** - Cloud-based, high quality, supports Agent mode\n  - **Parakeet** - Local NVIDIA GPU transcription, free, high quality\n  - **Windows Speech** - Built-in Windows engine, no setup required\n- **Agent mode** - Converts natural speech to CLI commands (e.g., \"show git status\" → `git status`)\n- **Audio visualization** - Real-time waveform on mic button\n- **Sound notifications** - Audio feedback for recording start/stop/success/error\n\n---\n\n## User Guide\n\n### Installation\n\n1. Download `Yap Setup 1.0.0.exe` from the [releases page](https://github.com/jamditis/yap/releases/latest)\n2. Run the installer\n3. Yap starts automatically and appears in your system tray\n\n### First-Time Setup\n\n#### Option 1: Gemini (Recommended - Best Quality)\n\n1. Get a free API key at [Google AI Studio](https://aistudio.google.com/app/apikey)\n2. Press `Alt+H` to open Yap settings\n3. The app looks for `GEMINI_API_KEY` in your environment or `.env.local` file\n4. Create `.env.local` in the app directory:\n   ```\n   GEMINI_API_KEY=your_api_key_here\n   ```\n\n#### Option 2: Parakeet (Local - NVIDIA GPU)\n\nRequires:\n- NVIDIA GPU with CUDA support\n- Python 3.10+\n- NeMo toolkit: `pip install nemo_toolkit[asr] torch torchaudio pydub`\n- FFmpeg installed and in PATH\n\nThe Parakeet server starts automatically with Yap.\n\n#### Option 3: Windows Speech (Local - No Setup)\n\nJust select \"Windows Speech (Local/CPU)\" in the model dropdown. Uses Windows' built-in speech recognition - works offline with no configuration.\n\n### Basic Usage\n\n| Action | Hotkey |\n|--------|--------|\n| Start/Stop Recording | `Alt+S` |\n| Show/Hide Settings | `Alt+H` |\n\n**Workflow:**\n1. Focus your terminal (Claude Code, PowerShell, etc.)\n2. Press `Alt+S` - hear the start sound\n3. Speak your command or text\n4. Press `Alt+S` again - hear the stop sound\n5. Wait for transcription (you'll hear success/error sound)\n6. Right-click in your terminal to paste\n\n### Transcription Modes\n\n#### RAW Mode (Default)\nTranscribes exactly what you say. Use for:\n- Dictating text, comments, documentation\n- Any verbatim transcription\n\n#### Agent Mode (Gemini only)\nConverts natural language to CLI commands:\n- \"show me the git status\" → `git status`\n- \"list all files\" → `ls -la`\n- \"make a new folder called test\" → `mkdir test`\n- \"install lodash\" → `npm install lodash`\n\n### Settings\n\n| Setting | Description |\n|---------|-------------|\n| **Microphone** | Select input device |\n| **Model** | Choose transcription engine |\n| **Auto-Copy** | Automatically copy results to clipboard |\n| **Paste Mode** | Enable for terminal paste workflow |\n| **Agent Mode** | Convert speech to CLI commands (Gemini only) |\n\n---\n\n## Development\n\n### Prerequisites\n\n- Node.js 18+\n- npm\n\n### Setup\n\n```bash\ngit clone https://github.com/jamditis/yap.git\ncd yap\nnpm install\n```\n\n### Environment Variables\n\nCreate `.env.local`:\n```\nGEMINI_API_KEY=your_api_key_here\n```\n\n### Run in Development\n\n```bash\nnpm run electron:dev\n```\n\n### Build for Production\n\n```bash\nnpm run electron:build\n```\n\nOutput: `dist/Yap Setup 1.0.0.exe`\n\n---\n\n## Troubleshooting\n\n### No transcription with Gemini\n- Check your API key is correct in `.env.local`\n- Verify you have internet connection\n- Check console for error messages (`Alt+H` → DevTools)\n\n### Parakeet not working\n- Ensure NVIDIA GPU drivers are installed\n- Check Python version: `python --version` (needs 3.10+)\n- Verify NeMo: `python -c \"import nemo.collections.asr\"`\n- Check server: `curl http://localhost:8002/health`\n\n### Windows Speech not transcribing\n- Check microphone permissions in Windows Settings\n- Try speaking louder/clearer\n- Default timeout is 10 seconds\n\n### Paste not working in Claude Code\n- Yap copies to clipboard - you need to right-click to paste\n- Claude Code doesn't support Ctrl+V, only right-click paste\n\n---\n\n## Tech Stack\n\n- **Electron** - Desktop app framework\n- **React 19** - UI\n- **Vite** - Build tool\n- **Tailwind CSS** - Styling\n- **Google Gemini API** - Cloud transcription\n- **NVIDIA Parakeet** - Local GPU transcription\n- **Windows SAPI** - Local CPU transcription\n\n---\n\n## License\n\nMIT\n\n---\n\n## Contributing\n\nIssues and PRs welcome! Please open an issue first to discuss major changes.\n\n---\n\n\u003cp align=\"center\"\u003e\n  Made with ❤️ for developers who prefer talking to typing\n\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamditis%2Fyap","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjamditis%2Fyap","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjamditis%2Fyap/lists"}