derv82/wifit3Public

Wifite but USB-only & cross-platform.

AI summary: A standalone, cross-platform USB Wi-Fi auditor that aggregates packet captures without complex driver installations.

Stars
1.7K
+81 today
Forks
150
Watchers
10
Open issues
6
Open PRs
4
Contributors
~12
Commits
2.5K
Branches
5

PythonGPL-2.0Created Jun 20, 2026Last push todayLatest release v0.4.1+631 stars this week+841 this month

Quick answers

What is wifit3?
A standalone, cross-platform USB Wi-Fi auditor that aggregates packet captures without complex driver installations.
What does wifit3 do?
Wifit3 simplifies wireless security auditing by embedding a custom Wi-Fi driver stack directly into a Python application. This completely bypasses the notoriously difficult kernel driver setup on Linux and NDIS restrictions on Windows. It interfaces directly with supported USB Wi-Fi adapters via PyUSB, allowing users to capture packets and perform reconnaissance seamlessly across macOS, Linux, and Windows. It eliminates the need for legacy tools like aircrack-ng, providing a modern Terminal UI for analyzing wireless environments.
Who is wifit3 for?
Security researchers, penetration testers, and network administrators. Requires a compatible USB Wi-Fi adapter and basic terminal skills.
How do I get started with wifit3?
pip install wifit3
How popular is wifit3 on GitHub?
derv82/wifit3 has 1,722 stars and 150 forks on GitHub, and gained 631 stars in the last 7 days.
What license does wifit3 use?
derv82/wifit3 is released under the GPL-2.0 license.

Star history

since Sep 25, 2026
05001K1.5KSep 2026Sep 2026Sep 2026Oct 2026
1.7K stars as of Oct 4, 2026. Measured daily since Sep 25, 2026; GitHub no longer exposes earlier star timestamps.

Update history

1 recorded
  • Oct 4, 2026New release v0.4.1 (previously v0.3.3).

Contribution activity

commits per day, last 52 weeks
OctNovDecJanFebMarAprMayJunJulAugSepOctMonWedFri2025-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: 0 commits2026-03-20: 0 commits2026-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: 0 commits2026-03-29: 0 commits2026-03-30: 0 commits2026-03-31: 0 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: 0 commits2026-04-08: 0 commits2026-04-09: 0 commits2026-04-10: 0 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 0 commits2026-04-14: 0 commits2026-04-15: 0 commits2026-04-16: 0 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 0 commits2026-04-21: 0 commits2026-04-22: 0 commits2026-04-23: 0 commits2026-04-24: 0 commits2026-04-25: 0 commits2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 0 commits2026-05-01: 1 commit2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 3 commits2026-05-05: 1 commit2026-05-06: 6 commits2026-05-07: 5 commits2026-05-08: 3 commits2026-05-09: 12 commits2026-05-10: 8 commits2026-05-11: 5 commits2026-05-12: 6 commits2026-05-13: 2 commits2026-05-14: 7 commits2026-05-15: 12 commits2026-05-16: 2 commits2026-05-17: 17 commits2026-05-18: 8 commits2026-05-19: 9 commits2026-05-20: 11 commits2026-05-21: 25 commits2026-05-22: 17 commits2026-05-23: 17 commits2026-05-24: 66 commits2026-05-25: 54 commits2026-05-26: 48 commits2026-05-27: 29 commits2026-05-28: 36 commits2026-05-29: 37 commits2026-05-30: 10 commits2026-05-31: 26 commits2026-06-01: 5 commits2026-06-02: 18 commits2026-06-03: 45 commits2026-06-04: 32 commits2026-06-05: 40 commits2026-06-06: 21 commits2026-06-07: 58 commits2026-06-08: 28 commits2026-06-09: 36 commits2026-06-10: 46 commits2026-06-11: 55 commits2026-06-12: 16 commits2026-06-13: 21 commits2026-06-14: 22 commits2026-06-15: 61 commits2026-06-16: 73 commits2026-06-17: 36 commits2026-06-18: 16 commits2026-06-19: 23 commits2026-06-20: 15 commits2026-06-21: 43 commits2026-06-22: 73 commits2026-06-23: 39 commits2026-06-24: 32 commits2026-06-25: 75 commits2026-06-26: 13 commits2026-06-27: 12 commits2026-06-28: 2 commits2026-06-29: 2 commits2026-06-30: 10 commits2026-07-01: 4 commits2026-07-02: 12 commits2026-07-03: 19 commits2026-07-04: 12 commits2026-07-05: 2 commits2026-07-06: 14 commits2026-07-07: 28 commits2026-07-08: 36 commits2026-07-09: 27 commits2026-07-10: 18 commits2026-07-11: 49 commits2026-07-12: 25 commits2026-07-13: 12 commits2026-07-14: 11 commits2026-07-15: 5 commits2026-07-16: 19 commits2026-07-17: 13 commits2026-07-18: 0 commits2026-07-19: 10 commits2026-07-20: 49 commits2026-07-21: 11 commits2026-07-22: 11 commits2026-07-23: 27 commits2026-07-24: 17 commits2026-07-25: 7 commits2026-07-26: 100 commits2026-07-27: 53 commits2026-07-28: 6 commits2026-07-29: 9 commits2026-07-30: 8 commits2026-07-31: 20 commits2026-08-01: 9 commits2026-08-02: 16 commits2026-08-03: 22 commits2026-08-04: 10 commits2026-08-05: 9 commits2026-08-06: 0 commits2026-08-07: 2 commits2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 4 commits2026-08-12: 2 commits2026-08-13: 1 commit2026-08-14: 2 commits2026-08-15: 9 commits2026-08-16: 6 commits2026-08-17: 9 commits2026-08-18: 3 commits2026-08-19: 1 commit2026-08-20: 17 commits2026-08-21: 13 commits2026-08-22: 17 commits2026-08-23: 9 commits2026-08-24: 13 commits2026-08-25: 0 commits2026-08-26: 10 commits2026-08-27: 3 commits2026-08-28: 6 commits2026-08-29: 8 commits2026-08-30: 5 commits2026-08-31: 10 commits2026-09-01: 1 commit2026-09-02: 9 commits2026-09-03: 3 commits2026-09-04: 8 commits2026-09-05: 2 commits2026-09-06: 2 commits2026-09-07: 10 commits2026-09-08: 11 commits2026-09-09: 13 commits2026-09-10: 7 commits2026-09-11: 12 commits2026-09-12: 10 commits2026-09-13: 2 commits2026-09-14: 4 commits2026-09-15: 1 commit2026-09-16: 8 commits2026-09-17: 4 commits2026-09-18: 4 commits2026-09-19: 4 commits2026-09-20: 5 commits2026-09-21: 0 commits2026-09-22: 6 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 1 commit2026-09-27: 3 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 9 commits2026-10-01: 2 commits2026-10-02: 0 commits2026-10-03: 3 commits2026-10-04: 1 commit2026-10-05: 0 commits2026-10-06: 0 commits2026-10-07: 0 commits2026-10-08: 0 commits2026-10-09: 0 commits2026-10-10: 0 commits
2,446 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Rising fast

    +631 stars this week

  • Very active

    2,446 commits in 52 weeks

  • Continuous integration

    Automated checks passing

What wifit3 does

Wifit3 simplifies wireless security auditing by embedding a custom Wi-Fi driver stack directly into a Python application. This completely bypasses the notoriously difficult kernel driver setup on Linux and NDIS restrictions on Windows. It interfaces directly with supported USB Wi-Fi adapters via PyUSB, allowing users to capture packets and perform reconnaissance seamlessly across macOS, Linux, and Windows. It eliminates the need for legacy tools like aircrack-ng, providing a modern Terminal UI for analyzing wireless environments.

Security researchers, penetration testers, and network administrators. Requires a compatible USB Wi-Fi adapter and basic terminal skills.

  • User-space drivers: Bypasses OS kernel drivers to communicate directly with USB hardware, eliminating version conflicts.
  • Cross-platform parity: Functions identically on macOS, Windows, and Linux without requiring OS-specific configurations.
  • Zero dependencies: Operates purely in Python without relying on external C-based suites like aircrack-ng.
  • Multi-card aggregation: Combines packet captures from multiple connected Wi-Fi adapters to monitor wider spectrums.
  • Terminal UI: Provides a rich, responsive text-based interface built with the Textual library for easy navigation.

Where teams use it

Cross-platform Auditing

Perform wireless security assessments from a macOS laptop without needing to boot into a specialized Linux VM.

Rapid Deployment

Deploy a Wi-Fi monitoring tool instantly on any machine with Python, avoiding complex kernel module compilation.

Environment Reconnaissance

Scan and log surrounding wireless networks, clients, and handshake packets across multiple channels simultaneously.

Hardware Integration

Quickly interface with off-the-shelf USB Wi-Fi dongles for custom packet capture scripts.

Getting started: pip install wifit3

README

master branch

wifit3

A standalone USB Wi-Fi auditor for Linux, Windows, and macOS.

wifit3 splash / adapter picker

At least one of the supported USB adapters is required.

Why?

  • Cross-Platform: Runs identically on Linux, macOS, and Windows.
  • Wireless Driver Heaven: Built-in wireless stack avoids kernel driver versioning hell and Windows' NDIS.
  • Zero Runtime Dependencies: No aircrack-ng or reaver, just pure Python with PyUSB & Textual libraries.

wifit3 in action: WPS PushButton PSK capture


Features

Reconnaissance & Analysis

  • Multi-Card Aggregation: Capture packets across multiple adapters simultaneously; pick a dedicated card to inject.
  • Real-time Scanner: 2.4GHz & 5GHz channel-hopping (split for multi-cards); tracks signal strength, encryption suites, WPA3/SAE transition modes.
  • AP & Client Identification: Fingerprints device vendors and categories; extracts router make and model from WPS beacons.
  • VAP Decloaking: Identifies hidden networks by correlating their BSSIDs with known visible siblings.
  • Packet Dashboard: Visualizes real-time beacon, data, injection, and deauthentication packet rates.

Attacks & Captures

  • WPA/WPA2 Handshakes: Passive sniffing and targeted deauthentication; validates crackable pairs; exports .pcap and .hc22000 files.
  • PMKID Harvesting: Active association harvest and passive sniffing for WPA/WPA2 PMKID key material (.hc22000).
  • EvilTwin WPA3 Downgrade: Clones the AP and evicts clients (via CSA, BTM, and de-auths) to capture handshakes. Works on single and multiple cards.
  • WPS Recovery Suite:
    • PixieDust (2 Modes): Instant offline PIN recovery exploiting Null Secret and Static Secret PRNG weaknesses.
    • PushButton (PBC): Detects physical WPS button presses and immediately extracts the plaintext WPA PSK.
    • PIN Brute-Force: Resumable WPS PIN cracking with known-PIN database and AP lock monitoring.
  • WEP Suite: Pure Python ARP replay, ChopChop, Fake Authentication, and PTW key recovery.

Screenshots

Scanner Focus (single target)
Scanner Focus

Supported Hardware

Important: At least one supported USB wireless adapter is required.

Chipset Bands Cards (Make + Model)
Atheros AR9271 2.4 GHz ALFA AWUS036NHA, TP-Link TL-WN722N V1
MediaTek MT7610U 2.4 / 5 GHz ALFA AWUS036ACHM, Panda PAU0B
MediaTek MT7612U 2.4 / 5 GHz ALFA AWUS036ACM
MediaTek MT7921AU 2.4 / 5 GHz ALFA AWUS036AXML, Panda PAU0F
MediaTek MT7925U 2.4 / 5 GHz Netgear A9000
Realtek RTL8812AU 2.4 / 5 GHz ALFA AWUS036ACH
Realtek RTL8814AU 2.4 / 5 GHz ALFA AWUS1900
Realtek RTL8821AU 2.4 / 5 GHz ALFA AWUS036ACS, TP-Link Archer T2U Plus/Nano
Realtek RTL8821CU 2.4 / 5 GHz Auscoumer 600 Mbps
Realtek RTL8922AU 2.4 / 5 GHz ASUS USB-BE93
Realtek RTL8822BU 2.4 / 5 GHz TP-Link T3U Plus, Archer T4U v3 / T4U+
Realtek RTL8822CU 2.4 / 5 GHz D-Link AC13U
Realtek RTL8187L 2.4 GHz ALFA AWUS036H
Realtek RTL8188EUS 2.4 GHz TP-Link TL-WN722N v2/v3
Ralink RT2570 2.4 GHz Buffalo Nintendo Wi-Fi USB Controller
Ralink RT3070 2.4 GHz ALFA AWUS036NH
Ralink RT5370 2.4 GHz LOTEKOO 150 Mbps
Ralink RT5372 2.4 GHz Panda PAU05/PAU06
Ralink RT5572 2.4 / 5 GHz Panda PAU09 N600

Breakdown of each device's capabilities and limitations: Supported Hardware Doc.

Installation & Running

Option 1: Download Prebuilt Binaries (Recommended)

Download the latest standalone executable from Releases:

  • Windows: Download and run wifit3-windows-x64.exe.
  • Linux (non-sudo): chmod +x wifit3-linux-x64 && ./wifit3-linux-x64
  • macOS: (bypass quarantine)
    xattr -d com.apple.quarantine wifit3-macos-universal2
    chmod +x wifit3-macos-universal2
    ./wifit3-macos-universal2

Option 2: Run from Source

wifit3 uses Astral's uv. sync sets up dependencies:

uv sync
uv run wifit3

Option 3: Build your own binary

uv run pyinstaller wifit3.spec --noconfirm --clean

Binary executable is written to dist/ subdirectory.

One-Time Driver Setup

wifit3 automatically handles hardware configuration within the app, after clicking the START button:

  • Linux: Prompts once via pkexec/sudo to write udev permissions and blocklists in /etc/modprobe.d/.
  • macOS: No installation required; plug in the device and select Allow in the authorization dialog.
  • Windows: Prompts once via UAC to install WinUSB for the device.
  • VirtualBox: Add your device(s) to VirtualBox's USB Filters before plugging in.

Uninstalling

Return the previously-installed device to your operating system's Wi-Fi stack:

  1. Select the card on the wifit3 splash screen.
  2. Click the Uninstall button and confirm.
  3. Accept the elevation prompt (UAC on Windows or pkexec on Linux).
  4. Unplug and re-plug the adapter.

On Linux, this deletes wifit3's udev and modprobe rules. On Windows, this uninstalls the WinUSB binding, and triggers a PnP device rescan (old driver reattaches).

Thank you, Linux!

wifit3 only exists because of the great people who reverse-engineered and maintained these Linux wireless drivers. It's usually a thankless job.

Special thanks to:

  • Christian "kimo" B. (@kimocoder) who maintains wifite2 and aircrack-ng's RTL8188EUS DKMS driver.
  • Neur0sp1cy: Close friend and the master to my Linux & wireless-hacking apprenticeship.
  • Nick Morrow (@morrownr), legend, maintains the out-of-tree Realtek USB DKMS drivers.

The full list is in CREDITS.md.

How it Works: Mini-Drivers

wifit3 bypasses the operating system's native Wi-Fi stack entirely. It ships with lightweight Python ports of Linux kernel drivers (src/wifit3/chips/*) that directly control wireless devices over USB bulk and control transfers.

Because register-level frame injection and monitor mode are performed entirely in user space, Windows NDIS restrictions and Linux kernel driver locking do not apply.

For architecture details, driver porting methodology, and USB trace replay tooling, see the Porting Documentation.

License & Disclaimer

Code: Licensed under GNU General Public License v2.0 (matching upstream Linux drivers).

Firmware: Vendor firmware blobs loaded onto adapters are redistributed verbatim under their respective manufacturers' licenses (details in FIRMWARE.md).

⚠️ Notice & Disclaimer: For use only on networks and equipment you own or are explicitly authorized to audit. wifit3 operates directly on USB hardware registers without kernel guardrails; use at your own risk.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 14

Releases and announcements

22 total
  1. v0.4.1 (BETA)v0.4.1Oct 1, 20261.1K downloads

    ## What's Changed * ui(scanner): option to hide silenced APs from the Scanner list, by @Yi-111-a in https://github.com/derv82/wifit3/pull/67 ## New Contributors * @Yi-111-a made their first contribution in https://github.com/derv82/wifit3/pull/67 **Full Changelog**: https://github.com/derv82/wifit3/compare/v0.4.0...v0.4.1

  2. v0.4.0 (BETA)v0.4.0Oct 1, 2026123 downloads

    ### Changes in this release: - Rewrote Scanner view to update far less frequently, should reduce CPU usage and alleviate some problems in #66 - Fix WinUSB installation & removal on Windows - File/directory pickers for Captures Dir (Preferences) Hashcat Exec/Wordlist (Vault) - ANSI art for D-Link DWA-140 2/3 **Full Changelog**: https://github.com/derv82/wifit3/compare/v0.3.4...v0.4.0

  3. v0.3.4 (BETA)v0.3.4Sep 27, 20261.5K downloads

    - Auto-eject ZeroCD devices while wifit3 is running (ZeroCD: wireless USB dongles that appear as storage devices / CD-ROMs on first plugin). - MT7921AU: Fail loudly when attaching to a device that has a different firmware already running. **Full Changelog**: https://github.com/derv82/wifit3/compare/v0.3.3...v0.3.4

  4. v0.3.3 (BETA)v0.3.3Sep 22, 20261.9K downloads

    ## What's Changed * New "Vault" feature: Review stored captures, launch Hashcat. * fix(wps): push wps_probe campaign through run() by @pzlabuda in https://github.com/derv82/wifit3/pull/57 * chore(uv): bump libusb-package to 1.0.30.0 (CPython 3.14 support) by @pzlabuda in https://github.com/derv82/wifit3/pull/58 ## New Contributors * @pzlabuda made their first contribution in https://github.com/derv82/wifit3/pull/57 **Full Changelog**: https://github.com/derv82/wifit3/compare/v0.3.2...v0.3.3

  5. v0.3.2 (BETA)v0.3.2Sep 15, 2026866 downloads

    ## What's Changed Linux ARM64 binaries are now included in each release (as `wifit3-linux-arm64`), for #53 ### Correctness Fixes * RTL8821AU honors EFUSE by @xxcosita3czxx in #49 & #50 * RTL8822BE honors EFUSE by @xxcosita3czxx in #51 * RTL8821CU supports wifi-only / BT-coex path for #53 * RT3070 now supports RT3072 devices ### Cosmetic Changes * Art for D-Link DWA-140 **Full Changelog**: https://github.com/derv82/wifit3/compare/v0.3.1...v0.3.2

Commits per week

last 52 weeks
2870Week 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: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 1 commitsWeek of 2026-05-03: 30 commitsWeek of 2026-05-10: 42 commitsWeek of 2026-05-17: 104 commitsWeek of 2026-05-24: 280 commitsWeek of 2026-05-31: 187 commitsWeek of 2026-06-07: 260 commitsWeek of 2026-06-14: 246 commitsWeek of 2026-06-21: 287 commitsWeek of 2026-06-28: 61 commitsWeek of 2026-07-05: 174 commitsWeek of 2026-07-12: 85 commitsWeek of 2026-07-19: 132 commitsWeek of 2026-07-26: 205 commitsWeek of 2026-08-02: 59 commitsWeek of 2026-08-09: 18 commitsWeek of 2026-08-16: 66 commitsWeek of 2026-08-23: 49 commitsWeek of 2026-08-30: 38 commitsWeek of 2026-09-06: 65 commitsWeek of 2026-09-13: 27 commitsWeek of 2026-09-20: 12 commitsWeek of 2026-09-27: 17 commitsWeek of 2026-10-04: 1 commitsOct 12, 2025Oct 4, 2026
2.4K commits in the last 52 weeks.

When work happens

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

Who is committing

last 52 weeks
Maintainer commits2,334 (95%)
Community commits132 (5%)

2,466 commits in total over the last year.

DateListRankStars gained
Sep 26, 2026daily#7+168
Sep 25, 2026daily#7+168