matthartman/ghost-pepperPublic

100% private on-device voice models for speech-to-text and meeting transcription on macOS

AI summary: A privacy-focused macOS application providing on-device speech-to-text and meeting transcription.

Stars
3.2K
Forks
188
Watchers
8
Open issues
56
Open PRs
14
Contributors
~8
Commits
433
Branches
4

SwiftNo licenseCreated Mar 20, 2026Last push 2mo agoLatest release v2.4.4+6 stars this week+43 this month

Quick answers

What is ghost-pepper?
A privacy-focused macOS application providing on-device speech-to-text and meeting transcription.
What does ghost-pepper do?
Ghost Pepper is a macOS application that performs high-quality speech-to-text transcription entirely on-device using local models. It is explicitly designed for privacy, processing all audio via Apple Silicon without ever sending sensitive data to cloud APIs. The application supports real-time dictation via a push-to-talk hotkey and can seamlessly record and transcribe full meetings, saving detailed notes and AI-generated summaries as markdown files. By eliminating cloud dependencies, it guarantees 100% data privacy while removing ongoing subscription fees. It acts as a secure, local alternative for professionals handling highly confidential conversations.
Who is ghost-pepper for?
Professionals, journalists, and executives who require secure, private, and offline speech-to-text transcription. It requires a Mac running macOS 14.0+ with Apple Silicon (M1+).
How do I get started with ghost-pepper?
Download the macOS application from the GitHub releases page.
How popular is ghost-pepper on GitHub?
matthartman/ghost-pepper has 3,194 stars and 188 forks on GitHub, and gained 6 stars in the last 7 days.

Star history

since Jul 29, 2026
01K2K3KJul 2026Aug 2026Sep 2026Oct 2026
3.2K stars as of Oct 2, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 0 commits2025-09-29: 0 commits2025-09-30: 0 commits2025-10-01: 0 commits2025-10-02: 0 commits2025-10-03: 0 commits2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 0 commits2025-10-07: 0 commits2025-10-08: 0 commits2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 0 commits2025-10-14: 0 commits2025-10-15: 0 commits2025-10-16: 0 commits2025-10-17: 0 commits2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 0 commits2025-10-23: 0 commits2025-10-24: 0 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 0 commits2025-10-28: 0 commits2025-10-29: 0 commits2025-10-30: 0 commits2025-10-31: 0 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 0 commits2025-11-04: 0 commits2025-11-05: 0 commits2025-11-06: 0 commits2025-11-07: 0 commits2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 0 commits2025-11-11: 0 commits2025-11-12: 0 commits2025-11-13: 0 commits2025-11-14: 0 commits2025-11-15: 0 commits2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 0 commits2025-11-19: 0 commits2025-11-20: 0 commits2025-11-21: 0 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 0 commits2025-11-25: 0 commits2025-11-26: 0 commits2025-11-27: 0 commits2025-11-28: 0 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 0 commits2025-12-02: 0 commits2025-12-03: 0 commits2025-12-04: 0 commits2025-12-05: 0 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 0 commits2025-12-09: 0 commits2025-12-10: 0 commits2025-12-11: 0 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 0 commits2025-12-17: 0 commits2025-12-18: 0 commits2025-12-19: 0 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 0 commits2025-12-23: 0 commits2025-12-24: 0 commits2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 0 commits2025-12-31: 0 commits2026-01-01: 0 commits2026-01-02: 0 commits2026-01-03: 0 commits2026-01-04: 0 commits2026-01-05: 0 commits2026-01-06: 0 commits2026-01-07: 0 commits2026-01-08: 0 commits2026-01-09: 0 commits2026-01-10: 0 commits2026-01-11: 0 commits2026-01-12: 0 commits2026-01-13: 0 commits2026-01-14: 0 commits2026-01-15: 0 commits2026-01-16: 0 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 0 commits2026-01-21: 0 commits2026-01-22: 0 commits2026-01-23: 0 commits2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 0 commits2026-01-27: 0 commits2026-01-28: 0 commits2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 0 commits2026-02-04: 0 commits2026-02-05: 0 commits2026-02-06: 0 commits2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 0 commits2026-02-10: 0 commits2026-02-11: 0 commits2026-02-12: 0 commits2026-02-13: 0 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 0 commits2026-02-17: 0 commits2026-02-18: 0 commits2026-02-19: 0 commits2026-02-20: 0 commits2026-02-21: 0 commits2026-02-22: 0 commits2026-02-23: 0 commits2026-02-24: 0 commits2026-02-25: 0 commits2026-02-26: 0 commits2026-02-27: 0 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 0 commits2026-03-03: 0 commits2026-03-04: 0 commits2026-03-05: 0 commits2026-03-06: 0 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 0 commits2026-03-10: 0 commits2026-03-11: 0 commits2026-03-12: 0 commits2026-03-13: 0 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 0 commits2026-03-17: 0 commits2026-03-18: 0 commits2026-03-19: 20 commits2026-03-20: 69 commits2026-03-21: 2 commits2026-03-22: 0 commits2026-03-23: 10 commits2026-03-24: 11 commits2026-03-25: 46 commits2026-03-26: 36 commits2026-03-27: 7 commits2026-03-28: 12 commits2026-03-29: 1 commit2026-03-30: 2 commits2026-03-31: 0 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 4 commits2026-04-04: 1 commit2026-04-05: 0 commits2026-04-06: 12 commits2026-04-07: 0 commits2026-04-08: 8 commits2026-04-09: 12 commits2026-04-10: 1 commit2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 5 commits2026-04-14: 15 commits2026-04-15: 3 commits2026-04-16: 0 commits2026-04-17: 13 commits2026-04-18: 0 commits2026-04-19: 2 commits2026-04-20: 10 commits2026-04-21: 8 commits2026-04-22: 3 commits2026-04-23: 1 commit2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 12 commits2026-04-27: 6 commits2026-04-28: 38 commits2026-04-29: 11 commits2026-04-30: 3 commits2026-05-01: 0 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 0 commits2026-05-07: 0 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 1 commit2026-05-13: 1 commit2026-05-14: 0 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 1 commit2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 0 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 0 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 0 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 0 commits2026-07-15: 0 commits2026-07-16: 2 commits2026-07-17: 7 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 1 commit2026-07-21: 0 commits2026-07-22: 2 commits2026-07-23: 0 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 7 commits2026-07-27: 1 commit2026-07-28: 0 commits2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 0 commits2026-08-03: 0 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 0 commits2026-08-15: 0 commits2026-08-16: 0 commits2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 0 commits2026-08-20: 0 commits2026-08-21: 0 commits2026-08-22: 0 commits2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 0 commits2026-08-26: 0 commits2026-08-27: 0 commits2026-08-28: 0 commits2026-08-29: 0 commits2026-08-30: 0 commits2026-08-31: 0 commits2026-09-01: 0 commits2026-09-02: 0 commits2026-09-03: 0 commits2026-09-04: 0 commits2026-09-05: 0 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits
407 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Continuous integration

    Automated checks passing

What ghost-pepper does

Ghost Pepper is a macOS application that performs high-quality speech-to-text transcription entirely on-device using local models. It is explicitly designed for privacy, processing all audio via Apple Silicon without ever sending sensitive data to cloud APIs. The application supports real-time dictation via a push-to-talk hotkey and can seamlessly record and transcribe full meetings, saving detailed notes and AI-generated summaries as markdown files. By eliminating cloud dependencies, it guarantees 100% data privacy while removing ongoing subscription fees. It acts as a secure, local alternative for professionals handling highly confidential conversations.

Professionals, journalists, and executives who require secure, private, and offline speech-to-text transcription. It requires a Mac running macOS 14.0+ with Apple Silicon (M1+).

  • On-Device Transcription: Processes all audio locally using Apple Silicon without sending data to external cloud servers.
  • Meeting Transcription: Records calls and generates full transcripts with AI summaries saved directly as markdown.
  • Push-To-Talk Dictation: Features a global hotkey to instantly dictate and paste text into any active macOS text field.
  • Absolute Privacy Guarantee: Ensures 100% data privacy for sensitive meetings, as no audio ever leaves the machine.
  • Zero Subscription Fees: Eliminates the need for ongoing cloud API costs or metered transcription usage.

Where teams use it

Confidential Meeting Records

Professionals transcribe sensitive board meetings or client calls securely without exposing data to third-party clouds.

Private Dictation

Writers and executives dictate notes locally, ensuring intellectual property remains strictly on their devices.

Offline Transcription

Journalists process recorded interviews securely while working in remote environments without internet access.

Cost-Free Processing

Users process high volumes of audio data natively on Apple Silicon without incurring metered cloud API charges.

Getting started: Download the macOS application from the GitHub releases page.

README

main branch
Ghost Pepper

Ghost Pepper

100% private on-device voice models for speech-to-text and meeting transcription on macOS. No cloud APIs, no data leaves your machine.

Download for Mac

macOS 14.0+ · Apple Silicon (M1+) · Free & open source

GitHub stars   License: MIT   100% Local   50+ Languages

Features

  • Hold Control to talk — release to transcribe and paste into any text field
  • Meeting transcription — record calls with notes, transcript, and AI-generated summaries saved as markdown
  • Runs entirely on your Mac — models run locally via Apple Silicon, nothing is sent anywhere
  • Smart cleanup — local LLM removes filler words and handles self-corrections
  • Menu bar app — lives in your menu bar, no dock icon, launches at login
  • Customizable — edit the cleanup prompt, pick your mic, toggle features on/off

How it works

Ghost Pepper uses open-source models that run entirely on your Mac. Models download automatically and are cached locally.

Speech models

Model Size Best for
Whisper tiny.en ~75 MB Fastest, English only
Whisper small.en (default) ~466 MB Best accuracy, English only
Whisper small (multilingual) ~466 MB Multi-language support
Parakeet v3 (25 languages) ~1.4 GB Multi-language via FluidAudio
Qwen3-ASR 0.6B int8 (50+ languages) ~900 MB Highest multilingual quality, macOS 15+ required
Nemotron Speech Streaming 0.6B 8-bit ~633 MB Low-latency English streaming via MLX Audio
Nemotron 3.5 ASR Streaming 0.6B 8-bit ~721 MB Low-latency multilingual streaming via MLX Audio

Cleanup models

Model Size Speed
Qwen 3.5 0.8B (default) ~535 MB Very fast (~1-2s)
Qwen 3.5 2B ~1.3 GB Fast (~4-5s)
Qwen 3.5 4B ~2.8 GB Full quality (~5-7s)

Speech models powered by WhisperKit, FluidAudio, and MLX Audio. Cleanup models powered by LLM.swift. All models served by Hugging Face.

Getting started

Download the app:

  1. Download GhostPepper.dmg
  2. Open the DMG, drag Ghost Pepper to Applications
  3. Grant Microphone and Accessibility permissions when prompted
  4. Hold Control and speak

"Apple could not verify" warning? On macOS Sequoia, you may see a Gatekeeper warning the first time you open the app. Go to System Settings > Privacy & Security, scroll down, and click Open Anyway next to the Ghost Pepper message. Click Confirm in the popup. You only need to do this once.

Build from source:

  1. Clone the repo
  2. Open GhostPepper.xcodeproj in Xcode
  3. Build and run (Cmd+R)

Permissions

Permission Why
Microphone Record your voice
Accessibility Global hotkey and paste via simulated keystrokes

Privacy audit

Every core feature runs 100% on your Mac — verified by AI code review. No trust required, just point Claude at the repo and ask.

Feature Status What was checked
Speech-to-text ✅ Local WhisperKit/FluidAudio/MLX Audio inference, no audio sent anywhere
Text cleanup ✅ Local Qwen LLM runs on-device via LLM.swift
Audio recording ✅ Local AVAudioEngine + ScreenCaptureKit, no streaming
Meeting transcription & storage ✅ Local Chunked transcription, markdown files on disk
Summary generation ✅ Local Local LLM summarization, no cloud API
OCR & screen capture ✅ Local Apple Vision framework, on-device
File storage ✅ Local Markdown to local filesystem, no cloud sync
Analytics & telemetry ✅ Local Local-only usage counters (UserDefaults) power the in-app Usage report panel. No Firebase, Mixpanel, Sentry, or any tracking SDK.

Optional cloud features (disabled by default, require your own API keys): Zo AI chat, Trello integration, Granola meeting import. Model downloads are one-time from Hugging Face.

Verify it yourself: run cat PRIVACY_AUDIT.md in Claude Code and ask it to review the codebase against the audit prompt. The full audit includes the exact prompt and detailed file-level results.

Good to know

  • Launch at login is enabled by default on first run. You can toggle it off in Settings.
  • Everything stays local — transcription history and recordings are stored on your Mac only. Nothing is sent to the cloud. You can clear history anytime in Settings.

Acknowledgments

Built with WhisperKit, LLM.swift, Hugging Face, and Sparkle.

License

MIT

Why "Ghost Pepper"?

All models run locally, no private data leaves your computer. And it's spicy to offer something for free that other apps have raised $80M to build.

Enterprise / managed devices

Ghost Pepper requires Accessibility permission, which normally needs admin access to grant. On managed devices, IT admins can pre-approve this via an MDM profile (Jamf, Kandji, Mosaic, etc.) using a Privacy Preferences Policy Control (PPPC) payload:

Field Value
Bundle ID Use the signed app's bundle identifier
Team ID Use the signing team's Apple Developer team ID
Permission Accessibility (com.apple.security.accessibility)

Questions or deployment issues: open an issue or use your team's internal support channel.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 4

Releases and announcements

21 total
  1. Ghost Pepper v2.4.4 🌶️v2.4.4Jul 27, 20265.3K downloads

    Fixes automatic cross-app pasting by restoring the Accessibility API access Ghost Pepper needs to detect focused input fields. Keeps Hardened Runtime, Developer ID signing, and Apple notarization.

  2. Ghost Pepper v2.4.2 🌶️v2.4.2Jul 18, 20261.6K downloads

    Hotfix release for Keychain prompt behavior.\n\n- Avoid eager Keychain reads during onboarding/startup\n- Keep Google Calendar connection state without forcing token access just to render UI\n- Defer optional integration secrets until the relevant feature is used

  3. Ghost Pepper v2.4.1v2.4.1Jul 18, 202660 downloads

    Release v2.4.1 with onboarding model readiness fixes, Granola API-only import updates, privacy preflight fixes, and sanitized private-name test fixtures.

  4. Ghost Pepper v2.4.0 🌶️v2.4.0May 21, 20263.7K downloads

    ## What's new in 2.4.0 **Agentic meeting Q&A** — ask questions across all your meetings; the agent greps/reads transcripts with an Anthropic backend, multi-turn conversations, inline model picker, and live cost display. **Indexing & dossiers** — build People/topic indexes from your meetings; dossiers render as markdown, open as tabs, support wikilinks (Cmd+click opens in a new tab), and track generation provenance. Two-step "Apply to dossier" merges Q&A findings. **Cmd+K command palette** — fuzzy search across people, meetings, and notes with arrow-key navigation. **Calendar** — Today's events list, multi-calendar support, offline cache, and auto-refresh after a recording stops. **Other** — usage report, model buttons in the sidebar, Granola auto-import, Cmd+N for a new personal note, and assorted UI polish. --- Auto-updates roll out via Sparkle within 24 hours. Notarized by Apple.

  5. Ghost Pepper v2.3.0 🌶️v2.3.0Apr 22, 20263.2K downloads

    ## What's new in v2.3.0 ### Meeting transcription now enabled by default - Existing users get meeting transcription auto-enabled on update - "What's New" dialog announces the feature on first launch ### Detect meeting name & attendees - **Detect button** grabs meeting name from Zoom/Teams window title + OCR attendee names from video tiles - Prioritizes native Zoom over browser windows - Strips pronouns (she/her, they/them) from names, filters Zoom internal windows (ZM_*) - Retries at 3s, 15s, 30s, 60s to catch late joiners - Attendee names shown as chips ### Summary improvements - **Inline prompt editor** — click "Customize" on the Summary tab to edit the prompt and pick a model before generating - Topic-based summary prompt inspired by Granola's style ### Speaker identity (by @obra) - Voice recognition labels speakers across recordings - Recognized voice store persists speaker profiles locally - Speaker-tagged transcription lab reruns - Diarization fixes and fallbacks ### UI improvements - Resizable sidebar (drag divider) - Sidebar open by default - "Imported from Granola" badge + green icon for imported files - No misleading "Others" speaker badge on Granola transcripts - "U

Code frequency

additions and deletions
+23.7K-23.7KWeek of 2026-03-15: +9,046 linesWeek of 2026-03-15: -5,199 linesWeek of 2026-03-22: +23,699 linesWeek of 2026-03-22: -3,924 linesWeek of 2026-03-29: +904 linesWeek of 2026-03-29: -18 linesWeek of 2026-04-05: +7,076 linesWeek of 2026-04-05: -1,020 linesWeek of 2026-04-12: +5,487 linesWeek of 2026-04-12: -1,325 linesWeek of 2026-04-19: +4,622 linesWeek of 2026-04-19: -343 linesWeek of 2026-04-26: +14,599 linesWeek of 2026-04-26: -2,190 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +3,170 linesWeek of 2026-05-10: -338 linesWeek of 2026-05-17: +12 linesWeek of 2026-05-17: -0 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +0 linesWeek of 2026-06-14: -0 linesWeek of 2026-06-21: +0 linesWeek of 2026-06-21: -0 linesWeek of 2026-06-28: +0 linesWeek of 2026-06-28: -0 linesWeek of 2026-07-05: +0 linesWeek of 2026-07-05: -0 linesWeek of 2026-07-12: +21,961 linesWeek of 2026-07-12: -10,484 linesWeek of 2026-07-19: +456 linesWeek of 2026-07-19: -52 linesWeek of 2026-07-26: +941 linesWeek of 2026-07-26: -182 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesWeek of 2026-08-09: +0 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +0 linesWeek of 2026-08-16: -0 linesWeek of 2026-08-23: +0 linesWeek of 2026-08-23: -0 linesMar 15, 2026Aug 23, 2026
+92K lines added, -25.1K removed over the last year.

Commits per week

last 52 weeks
1220Week of 2025-09-28: 0 commitsWeek of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 91 commitsWeek of 2026-03-22: 122 commitsWeek of 2026-03-29: 8 commitsWeek of 2026-04-05: 33 commitsWeek of 2026-04-12: 36 commitsWeek of 2026-04-19: 24 commitsWeek of 2026-04-26: 70 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 2 commitsWeek of 2026-05-17: 1 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 9 commitsWeek of 2026-07-19: 3 commitsWeek of 2026-07-26: 8 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 0 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 0 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 0 commitsWeek of 2026-09-20: 0 commitsSep 28, 2025Sep 20, 2026
407 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 2 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 4 commitsSun 12:00 — 0 commitsSun 13:00 — 4 commitsSun 14:00 — 4 commitsSun 15:00 — 0 commitsSun 16:00 — 0 commitsSun 17:00 — 2 commitsSun 18:00 — 4 commitsSun 19:00 — 2 commitsSun 20:00 — 0 commitsSun 21:00 — 0 commitsSun 22:00 — 0 commitsSun 23:00 — 0 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 1 commitsMon 10:00 — 1 commitsMon 11:00 — 7 commitsMon 12:00 — 0 commitsMon 13:00 — 4 commitsMon 14:00 — 3 commitsMon 15:00 — 1 commitsMon 16:00 — 4 commitsMon 17:00 — 6 commitsMon 18:00 — 3 commitsMon 19:00 — 4 commitsMon 20:00 — 1 commitsMon 21:00 — 3 commitsMon 22:00 — 9 commitsMon 23:00 — 0 commitsTue 0:00 — 0 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 6 commitsTue 10:00 — 6 commitsTue 11:00 — 1 commitsTue 12:00 — 3 commitsTue 13:00 — 4 commitsTue 14:00 — 11 commitsTue 15:00 — 4 commitsTue 16:00 — 7 commitsTue 17:00 — 0 commitsTue 18:00 — 2 commitsTue 19:00 — 0 commitsTue 20:00 — 1 commitsTue 21:00 — 6 commitsTue 22:00 — 10 commitsTue 23:00 — 12 commitsWed 0:00 — 11 commitsWed 1:00 — 0 commitsWed 2:00 — 0 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 2 commitsWed 9:00 — 2 commitsWed 10:00 — 2 commitsWed 11:00 — 3 commitsWed 12:00 — 3 commitsWed 13:00 — 4 commitsWed 14:00 — 11 commitsWed 15:00 — 8 commitsWed 16:00 — 6 commitsWed 17:00 — 1 commitsWed 18:00 — 1 commitsWed 19:00 — 0 commitsWed 20:00 — 7 commitsWed 21:00 — 5 commitsWed 22:00 — 6 commitsWed 23:00 — 3 commitsThu 0:00 — 7 commitsThu 1:00 — 1 commitsThu 2:00 — 0 commitsThu 3:00 — 0 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 1 commitsThu 8:00 — 5 commitsThu 9:00 — 4 commitsThu 10:00 — 3 commitsThu 11:00 — 2 commitsThu 12:00 — 4 commitsThu 13:00 — 2 commitsThu 14:00 — 8 commitsThu 15:00 — 3 commitsThu 16:00 — 10 commitsThu 17:00 — 4 commitsThu 18:00 — 5 commitsThu 19:00 — 0 commitsThu 20:00 — 0 commitsThu 21:00 — 9 commitsThu 22:00 — 4 commitsThu 23:00 — 2 commitsFri 0:00 — 0 commitsFri 1:00 — 0 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 0 commitsFri 8:00 — 6 commitsFri 9:00 — 5 commitsFri 10:00 — 4 commitsFri 11:00 — 9 commitsFri 12:00 — 6 commitsFri 13:00 — 5 commitsFri 14:00 — 4 commitsFri 15:00 — 6 commitsFri 16:00 — 16 commitsFri 17:00 — 4 commitsFri 18:00 — 1 commitsFri 19:00 — 1 commitsFri 20:00 — 0 commitsFri 21:00 — 9 commitsFri 22:00 — 5 commitsFri 23:00 — 20 commitsSat 0:00 — 2 commitsSat 1:00 — 0 commitsSat 2:00 — 0 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 2 commitsSat 11:00 — 0 commitsSat 12:00 — 1 commitsSat 13:00 — 3 commitsSat 14:00 — 4 commitsSat 15:00 — 0 commitsSat 16:00 — 1 commitsSat 17:00 — 0 commitsSat 18:00 — 0 commitsSat 19:00 — 0 commitsSat 20:00 — 2 commitsSat 21:00 — 0 commitsSat 22:00 — 0 commitsSat 23:00 — 0 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits270 (62%)
Community commits163 (38%)

433 commits in total over the last year.

DateListRankStars gained
Apr 7, 2026daily#19+183
  • jaywcjlove/awesome-mac

     This project is dedicated to collecting high-quality macOS software and organizing them systematically by different categories for easy search and use.

    115.4K stars · Swift

  • apple/container

    A tool for creating and running Linux containers using lightweight virtual machines on a Mac. It is written in Swift, and optimized for Apple silicon.

    50.4K stars · Swift

  • permissionlesstech/bitchat

    bluetooth mesh chat, IRC vibes

    36.3K stars · Swift

  • manaflow-ai/cmux

    Open source Ghostty-based macOS terminal with vertical tabs and notifications for AI coding agents. Built for multitasking, organization, and programmability.

    27.6K stars · Swift

  • steipete/CodexBar

    Show usage stats for OpenAI Codex and Claude Code, without having to login.

    22.1K stars · Swift

  • Lakr233/vphone-cli

    14.8K stars · Swift