{"id":51326674,"url":"https://github.com/ganbarovemin/mywhi","last_synced_at":"2026-07-01T19:01:37.982Z","repository":{"id":366342580,"uuid":"1275918875","full_name":"GanbarovEmin/MyWhi","owner":"GanbarovEmin","description":"Local-first macOS dictation with WhisperKit","archived":false,"fork":false,"pushed_at":"2026-06-21T10:44:12.000Z","size":6232,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-21T12:19:29.250Z","etag":null,"topics":["coreml","dictation","macos","offline-first","swift","whisperkit"],"latest_commit_sha":null,"homepage":null,"language":"Swift","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/GanbarovEmin.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-06-21T10:02:35.000Z","updated_at":"2026-06-21T10:44:16.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/GanbarovEmin/MyWhi","commit_stats":null,"previous_names":["ganbarovemin/mywhi"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/GanbarovEmin/MyWhi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GanbarovEmin%2FMyWhi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GanbarovEmin%2FMyWhi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GanbarovEmin%2FMyWhi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GanbarovEmin%2FMyWhi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/GanbarovEmin","download_url":"https://codeload.github.com/GanbarovEmin/MyWhi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/GanbarovEmin%2FMyWhi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35019037,"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-07-01T02:00:05.325Z","response_time":130,"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":["coreml","dictation","macos","offline-first","swift","whisperkit"],"created_at":"2026-07-01T19:01:35.360Z","updated_at":"2026-07-01T19:01:37.955Z","avatar_url":"https://github.com/GanbarovEmin.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"# MyWhi\n\nLocal-first macOS dictation and meeting transcription app. MyWhi turns spoken Russian or English into clean text for notes, messages, documents, and work calls without sending audio to a cloud transcription service.\n\nIt is built as a native Swift / SwiftUI desktop app for macOS with local speech-to-text backends, global hotkeys, Markdown history, and a dedicated Meeting Mode for long calls.\n\n![MyWhi daily dictation screen](docs/assets/mywhi-record.png)\n\n## What MyWhi Does\n\n- **Fast daily dictation**: press `Option` + `Command`, speak, and get text ready to paste or auto-insert into the active app.\n- **Voice message transcription**: drag `.wav` or `.m4a` files into MyWhi and convert them to editable text.\n- **Meeting Mode**: record work calls, capture microphone and system audio, then prepare transcript, speaker-aware notes, and summary output.\n- **Local speech-to-text**: choose between WhisperKit and Soniqo Speech models for offline ASR on your Mac.\n- **RU / EN workflow**: Russian, English, and auto language modes for everyday multilingual work.\n- **Markdown vault**: save transcripts locally as Markdown in `~/Library/Application Support/MyWhi/vault/`.\n- **Native macOS UX**: menu-bar presence, desktop window, global hotkey, Sparkle updates, no Electron.\n\n## Meeting Mode\n\nMeeting Mode is a separate workspace for calls and long-form recordings. It is designed for work meetings where you need the transcript, speakers, and a useful summary after the call.\n\n![MyWhi Meeting Mode](docs/assets/mywhi-meeting.png)\n\nThe current pipeline focuses on:\n\n- microphone recording\n- optional system audio capture for video calls\n- Soniqo Speech ASR model selection\n- noise cleanup toggle\n- speaker separation toggle\n- context field for names, projects, and domain terms\n\n## Speech Engines\n\nMyWhi supports two local transcription paths:\n\n- **Soniqo Speech**: recommended default for the current daily dictation workflow. The bundled model selector includes Qwen3 0.6B 8-bit, Qwen3 1.7B 8-bit, Parakeet TDT, and Nemotron Streaming options.\n- **WhisperKit**: local Core ML / Metal transcription with cached Whisper models for offline use.\n\n![MyWhi settings and model picker](docs/assets/mywhi-settings.png)\n\n## Why Local-First\n\n- Audio stays on this Mac.\n- Transcription runs locally through the selected backend.\n- MyWhi does not call a cloud transcription API.\n- Temporary recordings are stored under `/tmp/mywhi/recordings/`.\n- Saved transcript history is plain Markdown.\n- Accessibility permission is used only for optional paste/typing behavior.\n\n## Install\n\nDownload the latest DMG from [GitHub Releases](https://github.com/GanbarovEmin/MyWhi/releases).\n\n1. Open `MyWhi-3.9.0.dmg`.\n2. Drag `MyWhi.app` to `Applications`.\n3. Open MyWhi from `/Applications`.\n4. Allow Microphone access when macOS asks.\n5. Optional: enable Accessibility permission for auto-paste into the active app.\n6. Optional: enable Screen Recording/System Audio permission for Meeting Mode call audio.\n\nThe current public preview is ad-hoc signed, not Developer ID notarized. macOS Gatekeeper may require right-clicking the app and choosing **Open** on first launch.\n\n## Updates\n\nMyWhi uses Sparkle for app updates. Use either:\n\n- right-click the menu-bar icon and choose **Check for Updates...**\n- open **Settings** and click **Check for Updates**\n\nUpdates are read from the GitHub-hosted `appcast.xml` in this repository and download release DMGs from GitHub Releases.\n\n## Build From Source\n\nRequirements:\n\n- macOS 14+\n- Xcode command line tools\n- Swift Package Manager\n\n```bash\ngit clone https://github.com/GanbarovEmin/MyWhi.git\ncd MyWhi\nswift test\n./build-dmg.sh --install\nopen /Applications/MyWhi.app\n```\n\nBuild outputs:\n\n- app bundle: `dist/MyWhi.app`\n- DMG: `dist/MyWhi-3.9.0.dmg`\n\n## Release Workflow\n\n```bash\nswift test\n./build-dmg.sh --install\ncodesign --verify --verbose=2 dist/MyWhi.app\nhdiutil verify dist/MyWhi-3.9.0.dmg\n```\n\nSparkle appcast signing uses an EdDSA private key stored in the local macOS Keychain. The public key is committed in `Info.plist` as `SUPublicEDKey`; the private key must not be committed.\n\nPublic distribution still needs Developer ID signing and notarization for a polished Gatekeeper experience.\n\n## Project Layout\n\n```text\nSources/MyWhi/\n  MyWhiApp.swift                  App entrypoint and menu-bar integration\n  AppState.swift                  Main app state and recording flow\n  Engine/                         WhisperKit and Soniqo transcription backends\n  Desktop/                        Desktop shell, Home, Meeting Mode, Scratchpad, Insights, Settings\n  Services/UpdateController.swift Sparkle update controller\nResources/\n  AppIcon.icns\n  en.lproj, ru.lproj              Localized UI strings\ndocs/\n  assets/                         README screenshots\n  audits/                         UI/UX audit notes\n  releases/                       Release notes\n```\n\n## Keywords\n\nmacOS dictation, offline speech-to-text, local transcription, WhisperKit, Soniqo Speech, SwiftUI dictation app, meeting transcription, call transcription, Russian ASR, English ASR, voice notes, Markdown transcripts.\n\n## License\n\nMIT. See [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fganbarovemin%2Fmywhi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fganbarovemin%2Fmywhi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fganbarovemin%2Fmywhi/lists"}