Lakr233/vphone-cliPublic

AI summary: A command-line tool for interacting with VirtualPhone, enabling automated management of virtual iOS devices.

Stars
7.6K
+42 today
Forks
1.1K
Watchers
49
Open issues
20
Open PRs
7
Contributors
~36
Commits
340
Branches
3

SwiftMITCreated Feb 26, 2026Last push 2d agoLatest release 1.0.3+169 stars this week+193 this month

Star history

since Feb 22, 2026
02K4K6KFeb 2026Apr 2026Jun 2026Aug 2026
7.6K stars as of Aug 7, 2026, tracked back to Feb 22, 2026. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

commits per day, last 52 weeks
AugSepOctNovDecJanFebMarAprMayJunJulAugMonWedFri2025-08-09: 0 commits2025-08-10: 0 commits2025-08-11: 0 commits2025-08-12: 0 commits2025-08-13: 0 commits2025-08-14: 0 commits2025-08-15: 0 commits2025-08-16: 0 commits2025-08-17: 0 commits2025-08-18: 0 commits2025-08-19: 0 commits2025-08-20: 0 commits2025-08-21: 0 commits2025-08-22: 0 commits2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 0 commits2025-08-26: 0 commits2025-08-27: 0 commits2025-08-28: 0 commits2025-08-29: 0 commits2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 0 commits2025-09-03: 0 commits2025-09-04: 0 commits2025-09-05: 0 commits2025-09-06: 0 commits2025-09-07: 0 commits2025-09-08: 0 commits2025-09-09: 0 commits2025-09-10: 0 commits2025-09-11: 0 commits2025-09-12: 0 commits2025-09-13: 0 commits2025-09-14: 0 commits2025-09-15: 0 commits2025-09-16: 0 commits2025-09-17: 0 commits2025-09-18: 0 commits2025-09-19: 0 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 0 commits2025-09-23: 0 commits2025-09-24: 0 commits2025-09-25: 0 commits2025-09-26: 0 commits2025-09-27: 0 commits2025-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-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: 2 commits2026-02-28: 2 commits2026-03-01: 4 commits2026-03-02: 7 commits2026-03-03: 6 commits2026-03-04: 37 commits2026-03-05: 14 commits2026-03-06: 17 commits2026-03-07: 25 commits2026-03-08: 17 commits2026-03-09: 6 commits2026-03-10: 9 commits2026-03-11: 9 commits2026-03-12: 6 commits2026-03-13: 2 commits2026-03-14: 5 commits2026-03-15: 5 commits2026-03-16: 1 commit2026-03-17: 5 commits2026-03-18: 0 commits2026-03-19: 1 commit2026-03-20: 1 commit2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 0 commits2026-03-24: 0 commits2026-03-25: 0 commits2026-03-26: 0 commits2026-03-27: 0 commits2026-03-28: 1 commit2026-03-29: 8 commits2026-03-30: 0 commits2026-03-31: 5 commits2026-04-01: 0 commits2026-04-02: 0 commits2026-04-03: 0 commits2026-04-04: 0 commits2026-04-05: 0 commits2026-04-06: 0 commits2026-04-07: 2 commits2026-04-08: 1 commit2026-04-09: 0 commits2026-04-10: 1 commit2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 2 commits2026-04-16: 0 commits2026-04-17: 3 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 3 commits2026-04-21: 4 commits2026-04-22: 1 commit2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 1 commit2026-04-26: 1 commit2026-04-27: 1 commit2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 2 commits2026-05-01: 0 commits2026-05-02: 1 commit2026-05-03: 0 commits2026-05-04: 0 commits2026-05-05: 0 commits2026-05-06: 1 commit2026-05-07: 2 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 1 commit2026-05-13: 0 commits2026-05-14: 6 commits2026-05-15: 0 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 0 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 4 commits2026-05-25: 1 commit2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 1 commit2026-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: 4 commits2026-06-16: 5 commits2026-06-17: 4 commits2026-06-18: 0 commits2026-06-19: 0 commits2026-06-20: 0 commits2026-06-21: 0 commits2026-06-22: 5 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 1 commit2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 0 commits2026-06-30: 0 commits2026-07-01: 5 commits2026-07-02: 4 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 4 commits2026-07-06: 5 commits2026-07-07: 2 commits2026-07-08: 1 commit2026-07-09: 3 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 5 commits2026-07-14: 3 commits2026-07-15: 4 commits2026-07-16: 0 commits2026-07-17: 1 commit2026-07-18: 1 commit2026-07-19: 2 commits2026-07-20: 1 commit2026-07-21: 2 commits2026-07-22: 1 commit2026-07-23: 2 commits2026-07-24: 0 commits2026-07-25: 0 commits2026-07-26: 2 commits2026-07-27: 5 commits2026-07-28: 8 commits2026-07-29: 0 commits2026-07-30: 3 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 3 commits2026-08-03: 3 commits2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits
323 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

What vphone-cli does

vphone-cli provides a terminal-based interface and automation toolkit for managing VirtualPhone instances (a platform for running virtualized iOS devices). It bridges the gap between the VirtualPhone GUI and automated CI/CD workflows by allowing developers to programmatically control device lifecycles. Users can use the CLI to create, start, stop, and snapshot virtual iPhones, as well as install applications, push files, and execute shell commands inside the virtual environment. This abstraction is critical for teams that need to integrate iOS testing, security analysis, or app deployment into headless scripts without relying on manual interaction.

This tool is built for iOS developers, QA automation engineers, and security researchers who need programmatic control over virtualized iOS environments. It requires access to VirtualPhone and familiarity with command-line interfaces.

  • Device lifecycle management: Commands to boot, shutdown, and reset virtual iOS devices.
  • App installation: Sideload IPA files directly into the virtual environment from the command line.
  • File system interaction: Push and pull files between the host machine and the virtual device.
  • Snapshot control: Create and restore device states for reproducible testing scenarios.
  • Shell execution: Run commands directly within the virtual iOS environment.
  • CI/CD integration: Designed for headless operation within automated testing pipelines.

Where teams use it

Automated iOS testing

QA engineers use the CLI in CI/CD pipelines to spin up a clean virtual iPhone, install a new build, and run tests.

Security research

Security analysts script the rapid deployment and teardown of specific iOS versions for vulnerability analysis.

App reverse engineering

Researchers use the tool to automate the extraction of app data and memory dumps from virtualized devices.

Headless device management

DevOps teams manage fleets of virtual iOS devices on remote servers without requiring graphical access.

Getting started: npm install -g vphone-cli && vphone login

README

main branch

vphone-cli

Boot a virtual iPhone via Apple's Virtualization.framework using PCC research VM infrastructure.

poc

Prerequisites

Host:

Dependencies:

brew install python@3.13 aria2 wget gnu-tar openssl@3 ldid-procursus sshpass keystone libusb ipsw zstd

Install

brew install zqxwce/tap/vphone-cli

Build

git clone --recurse-submodules https://github.com/Lakr233/vphone-cli.git

./scripts/setup_tools.sh      # install deps, build toolchain submodules, create the Python venv
./scripts/build.sh            # build + sign vphone-cli, bundle the .app, cross-compile vphoned

cd .build/vphone-cli.app/Contents/MacOS/
vphone-cli --help

Quick Start

One command creates a VM end-to-end (download → patch → DFU restore → CFW install → first boot):

vphone-cli vm create myphone -V jb        # -V / --variant

vphone-cli vm launch myphone

Commands

vphone-cli vm create runs the whole pipeline; the individual steps below let you drive it manually or re-run one stage.

Manage

vphone-cli vm list                         # list VMs (--json for scripting)
vphone-cli vm info myphone                  # show one VM
vphone-cli vm new myphone                   # create an empty bundle (cpu/mem/disk options)
vphone-cli vm config myphone --cpu 8 --memory 8192
vphone-cli vm clone myphone myphone-2       # fast APFS clone, fresh device identity
vphone-cli vm export myphone --out myphone.tar.xz   # xz -9; skips restore dir + staging files
vphone-cli vm import --in myphone.tar.xz --name restored
vphone-cli vm rename myphone iphone16
vphone-cli vm delete iphone16

Build a VM manually (what vm create automates)

vphone-cli vm new myphone                              # 1. empty bundle
vphone-cli fw prepare myphone --iphone-version 26.1     # 2. download + merge IPSWs
vphone-cli fw patch myphone --variant jb                # 3. patch the boot chain

vphone-cli vm launch myphone --dfu &                    # 4. boot into DFU (background)
vphone-cli restore myphone --get-shsh                   #    fetch SHSH
vphone-cli restore myphone                              #    DFU restore
vphone-cli vm stop myphone                              #    stop the DFU boot

vphone-cli cfw install myphone --variant jb             # 5. install CFW (host-mount; asks for sudo)
vphone-cli vm launch myphone                            # 6. first boot

Update to a newer iOS by pointing fw prepare at an IPSW: --iphone-source /path/to.ipsw --cloudos-source /path/to.ipsw.

Firmware Variants

Five patch variants with increasing security bypass — pass one to --variant:

Variant Boot Chain CFW Notes
less 4 patches 2 phases Patchless — keeps iOS mitigations enabled
regular 42 patches 10 phases AMFI/SSV/Img4/TXM bypass
dev 53 patches 12 phases + TXM entitlement/debug bypass
jb 113 patches 14 phases + full jailbreak (Sileo, TrollStore auto-install on first boot)
exp 141 patches 18 phases JB superset + anti-VM-detection research patches

See research/0_binary_patch_comparison.md for the per-component breakdown.

Running & Connecting

  • SSH (jailbreak): ssh -p 22222 mobile@<vm-ip> (password alpine)
  • SSH (regular/dev): ssh -p 22222 root@<vm-ip>
  • VNC: vnc://<vm-ip>:5901

Locations

Everything vphone-cli creates lives under ~/.vphone/ — kept outside the repo and the .app so the signed bundle stays portable:

Path Contents
~/.vphone/VMs/ VM bundles — one directory per VM. This is the library; override with $VPHONE_LIBRARY_ROOT.
~/.vphone/ipsws/ Downloaded iPhone + cloudOS IPSWs, cached and reused across VMs.
~/.vphone/tools/ Cached APFS seal-volume artifacts (apfs_sealvolume_<version>) fetched during fw prepare.
~/.vphone/debs/ Cached .deb packages the jb/exp CFW install lays into the guest (Sileo, apt, …).
~/.vphone/venv/ Auto-provisioned Python environment (see Python runtime; override with $VPHONE_VENV_DIR).

SIP/AMFI Relaxation

Option A — fully disable SIP, then disable AMFI via boot-arg (most permissive).

In Recovery (long-press power → Terminal):

csrutil disable
csrutil allow-research-guests enable

Then reboot into macOS and set the AMFI boot-arg (needs SIP fully off to take effect):

sudo nvram boot-args="amfi_get_out_of_my_way=1 -v"   # reboot after

Option B — keep SIP on (debug-only relaxed), then allowlist the binary with amfidont (leaves AMFI enabled system-wide).

In Recovery:

csrutil enable --without debug
csrutil allow-research-guests enable

Then reboot into macOS and:

vphone-amfidont         # .build/vphone-cli.app/Contents/Resources/vphone-amfidont for local builds

Tested Environments

Host iPhone CloudOS
Mac16,11 27.0b2 17,3_18.6.2_22G100 26.1-23B85
Mac16,8 26.5.1 17,3_26.0_23A341 26.1-23B85
Mac16,8 26.5.1 17,3_26.0.1_23A355 26.1-23B85
Mac16,12 26.3 17,3_26.1_23B85 26.1-23B85
Mac16,12 26.3 17,3_26.3_23D127 26.1-23B85
Mac16,12 26.3 17,3_26.3_23D127 26.3-23D128
Mac16,12 26.3 17,3_26.3.1_23D8133 26.3-23D128
Mac16,11 26.2 17,3_26.4_23E246 26.4-23E5207q
Mac16,11 26.2 17,3_26.5_23F77 26.4-23E5207q
Mac16,11 27.0b2 17,3_26.5.2_23F84 26.4-23E5207q
Mac16,6 25.4.1 17,3_26.6_23G71 26.4-23E5207q
Mac16,11 27.0b2 17,3_27.0_24A5380h 26.4-23E5207q
Mac16,6 25.4.1 17,3_27.0_24A5390f 26.4-23E5207q

FAQ

zsh: killed ./vphone-cli — AMFI/debug restrictions aren't bypassed; see Prerequisites (amfi_get_out_of_my_way=1 or amfidont).

Virtualization is not available on this hardware — your Mac is itself a VM; PV=3 guest boot can't nest. Use a non-nested macOS 15+ host.

Stuck on "Press home to continue" — connect via VNC and right-click (two-finger click) to simulate the home button.

System apps won't install — during iOS setup, don't pick Japan or the EU as your region (extra regulatory checks the VM can't satisfy); pick e.g. United States.

App crashes on launch with EXC_GUARD / GUARD_TYPE_MACH_PORT — re-patch with vphone-cli fw patch <name> --variant <v> --force-exc-guard, then re-restore/install (#291). Always on for iOS 18 bases.

Install a .ipa/.tipa — use the running VM's Install menu (drag-drop or file picker).

Automation

vphone-cli exposes a host control socket (<bundle>/vphone.sock) for programmatic control — screenshots, touch, swipes, hardware keys, clipboard — each action returning an inline screenshot for AI-driven E2E testing. See vphone-mcp for an MCP server wrapping it.

Acknowledgements

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 13

Releases and announcements

12 total
  1. v1.0.31.0.3Aug 3, 2026176 downloads

    Preparation for vphone-ws ## What's Changed * docs: streamline README and re-sync ko/ja/zh translations by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/401 * fix(bridge): skip unpaired devices when resolving SHSH target by @Kila2 in https://github.com/Lakr233/vphone-cli/pull/402 * feat(vm): record iOS + cloudOS versions on restore by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/403 * Reclaim intermediate build artifacts after use by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/404 * Feature/root popup by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/405 * networking: Add `vm config --network` to edit VM network mode after creation by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/406 * vphone-cli: Add variant, udid, and device to `vm info` by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/407 * vphone-cli: Add network to `vm info`/`vm list` JSON by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/408 * vphone-cli: Add `fw catalog` with recommended pairings and `--json` by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/409 * vphone-cli: Add `--disk-size` to `vm create` by @zqxwce in https://github.com/Lakr233/

  2. v1.0.21.0.2Jul 28, 2026215 downloads

    ## What's Changed * fix: resolve all paths correctly for the bundled / brew-installed app by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/397 * vm create: prompt for firmware pairing when a source is omitted by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/398 * Add vphone-amfidont helper to allowlist the .app through amfid by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/399 * Fix release build: bundle vphone-amfidont in Resources, not MacOS by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/400 **Full Changelog**: https://github.com/Lakr233/vphone-cli/compare/1.0.1...1.0.2

  3. v1.0.11.0.1Jul 28, 20261 downloads

    ## What's Changed * ci: build the portable .app in the release workflow by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/394 * fix: run the CFW-install sudo as a foreground terminal job by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/395 * fix: preflight checks the running binary, not a dev .build path by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/396 **Full Changelog**: https://github.com/Lakr233/vphone-cli/compare/1.0.0...1.0.1

  4. v1.0.01.0.0Jul 27, 202625 downloads

    ## What's Changed * MAJOR Refactor/single tool cli by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/392 **Full Changelog**: https://github.com/Lakr233/vphone-cli/compare/0.1.10...1.0.0

  5. v0.1.100.1.10Jul 27, 20264 downloads

    ## What's Changed * doc: Add 27b4 and 26.6RC tested envs by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/381 * Bugfix/ios27 various crashes by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/387 * cfw: dsc: Add FORCE_DSC_MAXSLIDE opt-in to zero maxSlide on non-27 bases by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/389 * cfw: Add opt-in --force-exc-guard for the EXC_GUARD Mach-port-guard p… by @zqxwce in https://github.com/Lakr233/vphone-cli/pull/391 * adapt macos 27 beta by @Kila2 in https://github.com/Lakr233/vphone-cli/pull/383 ## New Contributors * @Kila2 made their first contribution in https://github.com/Lakr233/vphone-cli/pull/383 **Full Changelog**: https://github.com/Lakr233/vphone-cli/compare/0.1.9...0.1.10

Commits per week

last 52 weeks
1100Week of 2025-08-09: 0 commitsWeek of 2025-08-16: 0 commitsWeek of 2025-08-23: 0 commitsWeek of 2025-08-30: 0 commitsWeek of 2025-09-06: 0 commitsWeek of 2025-09-13: 0 commitsWeek of 2025-09-20: 0 commitsWeek of 2025-09-27: 0 commitsWeek of 2025-10-04: 0 commitsWeek of 2025-10-11: 0 commitsWeek of 2025-10-18: 0 commitsWeek of 2025-10-25: 0 commitsWeek of 2025-11-01: 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: 4 commitsWeek of 2026-03-01: 110 commitsWeek of 2026-03-08: 54 commitsWeek of 2026-03-15: 13 commitsWeek of 2026-03-22: 1 commitsWeek of 2026-03-29: 13 commitsWeek of 2026-04-05: 4 commitsWeek of 2026-04-12: 5 commitsWeek of 2026-04-19: 9 commitsWeek of 2026-04-26: 5 commitsWeek of 2026-05-03: 3 commitsWeek of 2026-05-10: 7 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 6 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 13 commitsWeek of 2026-06-21: 6 commitsWeek of 2026-06-28: 9 commitsWeek of 2026-07-05: 15 commitsWeek of 2026-07-12: 14 commitsWeek of 2026-07-19: 8 commitsWeek of 2026-07-26: 18 commitsWeek of 2026-08-02: 6 commitsAug 9, 2025Aug 2, 2026
323 commits in the last 52 weeks.

When work happens

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

Who is committing

last 52 weeks
Maintainer commits123 (36%)
Community commits217 (64%)

340 commits in total over the last year.

DateListRankStars gained
Mar 2, 2026daily#11+300
Mar 1, 2026daily#18+235
  • 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.

    109.3K 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.

    48.7K stars · Swift

  • permissionlesstech/bitchat

    bluetooth mesh chat, IRC vibes

    34.7K 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.

    25.7K stars · Swift

  • steipete/CodexBar

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

    19.7K stars · Swift

  • supertone-inc/supertonic

    Lightning-Fast, On-Device, Multilingual TTS — running natively via ONNX.

    13.6K stars · Swift