amnezia-vpn/amnezia-clientPublic

Amnezia VPN Client (Desktop+Mobile)

AI summary: A versatile, open-source VPN client designed specifically for self-hosted server deployments.

Stars
14.4K
+40 today
Forks
1.1K
Watchers
118
Open issues
807
Open PRs
141
Contributors
~90
Commits
2.9K
Branches
313

C++GPL-3.0Created Nov 22, 2020Last push todayLatest release 4.8.21.0+162 stars this week+620 this month

Star history

since Mar 12, 2023
05K10KMar 2023Apr 2024Jun 2025Aug 2026
14.4K stars as of Aug 7, 2026, tracked back to Mar 12, 2023. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

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

Signals and awards

derived from tracked data
  • Widely adopted

    14,351 stars

  • Battle-tested

    5 years of history

  • Actively maintained

    Pushed within 48 hours

  • Repeat trending

    3 trending appearances

What amnezia-client does

Amnezia VPN Client is a multi-platform application that simplifies connection to self-hosted private networks. It focuses on bypassing deep packet inspection (DPI) and strict firewalls by supporting obfuscated protocols like Cloak and ShadowSocks. The client automates the typically complex process of configuring a secure tunnel to a personal server. It ensures that users retain full control over their routing infrastructure without relying on commercial VPN providers. The application supports a wide array of underlying protocols, providing robust flexibility for diverse networking needs.

Intended for privacy enthusiasts, remote workers, and individuals living under strict internet censorship. It is tailored for users comfortable with managing their own VPS infrastructure.

  • Automated server setup: Streamlines the deployment of VPN services onto bare-metal or cloud VPS instances.
  • Advanced obfuscation: Utilizes protocols like Cloak to hide VPN traffic from aggressive firewalls.
  • Multi-protocol support: Connects via WireGuard, OpenVPN, IKEv2, and ShadowSocks dynamically.
  • Cross-platform client: Offers native desktop and mobile applications for a unified user experience.
  • Self-hosted focus: Eliminates reliance on third-party commercial VPN logs and infrastructure.
  • Split tunneling capability: Allows granular control over which applications route through the secure tunnel.

Where teams use it

Bypassing censorship

Users in heavily restricted network environments needing reliable access to the open internet.

Private network access

Remote workers securely connecting to self-hosted corporate or home infrastructure.

Data privacy enforcement

Privacy advocates who refuse to trust commercial VPN providers with their browsing data.

Custom protocol routing

Network engineers requiring a client that seamlessly swaps between WireGuard and obfuscated tunnels.

Getting started: git clone https://github.com/amnezia-vpn/amnezia-client.git

README

dev branch

Amnezia VPN

The best client for self-hosted VPN

Build Status Gitpod ready-to-code

English | Русский

Amnezia is an open-source VPN client, with a key feature that enables you to deploy your own VPN server on your server.

Image

Tip

If the Amnezia website is blocked in your region, you can use an Alternative website link.

All releases


Features

  • Very easy to use - enter your IP address, SSH login, password and Amnezia will automatically install VPN docker containers to your server and connect to the VPN.
  • Classic VPN-protocols: OpenVPN, WireGuard and IKEv2 protocols.
  • Protocols with traffic Masking (Obfuscation): OpenVPN over Cloak plugin, Shadowsocks (OpenVPN over Shadowsocks), AmneziaWG and XRay.
  • Split tunneling support - add any sites to the client to enable VPN only for them or add Apps (only for Android and Desktop).
  • Windows, MacOS, Linux, Android, iOS releases.
  • Support for AmneziaWG protocol configuration on Keenetic beta firmware.

Links

Tech

AmneziaVPN uses several open-source projects to work:

Help us with translations

Download the most actual translation files.

Go to "Actions" tab, click on the first line. Then scroll down to the "Artifacts" section and download "AmneziaVPN_translations".

Unzip this file. Each *.ts file contains strings for one corresponding language.

Translate or correct some strings in one or multiple *.ts files and commit them back to this repository into the client/translations folder. You can do it via a web-interface or any other method you're familiar with.

Checking out the source code

Make sure to pull all submodules after checking out the repo.

git submodule update --init --recursive

Hacking guide

Want to contribute? Welcome!

Build requirements

Building the project using scripts

  • Run scripts located in deploy directory
  • Basically, if dependencies are located in default installation paths, the scripts will find them automatically.
  • If they differ, specify them using the following variables:
    • QT_INSTALL_DIR - Qt root installation folder
    • QT_ROOT_PATH - Qt framework root directory
    • QIF_ROOT_PATH - Qt Installer Framework root path
    • ANDROID_HOME - Path to Android SDK root folder
    • and others. Check scripts for more

Unix-like:

# Build executables for the host platform
deploy/build.sh

# Or just
deploy/build.sh

# Build executables and installers for the host platform
deploy/build.sh --installer all

# Build Android APK and AAB
deploy/build.sh -t android --aab

# Call for help
deploy/build.sh -h

Windows:

:: Build executables for Windows
deploy/build.bat

:: Build executables with IFW installer for Windows
deploy/build.bat --installer ifw

:: Build executables with IFW and WIX installer for Windows
deploy/build.bat --installer ifw --installer wix

:: Or just
deploy/build.bat --installer all

Developing the project in IDEs

  • Basically, you can use any IDE that handles CMake and Qt kits properly to run configure and build steps, and to navigate through the code nicely. For example:

    • Qt Creator
    • Visual Studio Code with Qt Extension Pack
    • and so on
  • To use Xcode, you have to configure project first by using cmake. The easiest way to do it is to use Qt Creator for configuration. Then open AmneziaVPN.xcodeproj file from the build folder by using Xcode. Note that none of the files changed are saved - the files actually getting changed in build directory. Copy them manually if necessary

  • Android studio could be used in the same way - just configure the project by using cmake manually or by using Qt Creator. Open <build-dir>/client/android-build in Android studio then. Do not forget to copy the changes - everything you do is saved under the build directory actually.

Installing Android SDK

  • Android SDK could be installed using the following methods:
    • Using Qt Creator. Use Preferences->SDKs
    • Using Android studio. By default it installs necessary SDKs automatically during the installation
    • Manually by using sdk-manager. Check this page for details

License

This project is licensed under the GNU General Public License v3.0 (see LICENSE) and also includes third-party components distributed under their own terms (see THIRD_PARTY_LICENSES.md).

Donate

Patreon: https://www.patreon.com/amneziavpn

Bitcoin: bc1qmhtgcf9637rl3kqyy22r2a8wa8laka4t9rx2mf
USDT BEP20: 0x6abD576765a826f87D1D95183438f9408C901bE4
USDT TRC20: TELAitazF1MZGmiNjTcnxDjEiH5oe7LC9d
XMR: 48spms39jt1L2L5vyw2RQW6CXD6odUd4jFu19GZcDyKKQV9U88wsJVjSbL4CfRys37jVMdoaWVPSvezCQPhHXUW5UKLqUp3
TON: UQDpU1CyKRmg7L8mNScKk9FRc2SlESuI7N-Hby4nX-CcVmns

Acknowledgments

This project is tested with BrowserStack. We express our gratitude to BrowserStack for supporting our project.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

73 total
  1. 5.0.0.55.0.0.5Jul 26, 2026pre-release3.3K downloads

    ## Version differences ### Android * For Android version 9 and higher, you need to use .apk that start with - AmneziaVPN_5.0.0.5_android9+ * ***The app version for Android 7 and 8 is temporarily unavailable*** ### macOS !!! The previous version (4.8.8.2 and lower) of the application (installed via the .dmg installer) must be uninstalled via “move to bin” in the applications folder * For macOS version 13 and higher, you need to use .pkg - AmneziaVPN_5.0.0.5_macos.zip * ***The app version for macOS 10.15 - 12, is temporarily unavailable*** ### Linux For Ubuntu you need to install xcb plugin: apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0 * ***The app version for Debian 12 / Ubuntu 22.04.x is temporarily unavailable*** ## Changelog ### General * Added AWG 3 support * Added MTProxy container support * Added Telemt container support * Added extended VLESS configuration (flow, SNI, host, path and other parameters with validation) * Improve stability ### Windows / Linux / macOS (.pkg) * Added built-in app updater with a changelog window ### macOS * Added AppStore version with network-extension

  2. 5.0.0.25.0.0.2Jul 25, 2026pre-release2K downloads

    ## Version differences ### Android * For Android version 9 and higher, you need to use .apk that start with - AmneziaVPN_5.0.0.2_android9+ * ***The app version for Android 7 and 8 is temporarily unavailable*** ### macOS !!! The previous version (4.8.8.2 and lower) of the application (installed via the .dmg installer) must be uninstalled via “move to bin” in the applications folder * For macOS version 13 and higher, you need to use .pkg - AmneziaVPN_5.0.0.2_macos.zip * ***The app version for macOS 10.15 - 12, is temporarily unavailable*** ### Linux For Ubuntu you need to install xcb plugin: apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0 * ***The app version for Debian 12 / Ubuntu 22.04.x is temporarily unavailable*** ## Changelog ### General * Added AWG 3 support * Added MTProxy container support * Added Telemt container support * Added extended VLESS configuration (flow, SNI, host, path and other parameters with validation) * Improve stability ### Windows / Linux / macOS (.pkg) * Added built-in app updater with a changelog window ### macOS * Added AppStore version with network-extension

  3. 4.8.21.04.8.21.0Jul 10, 2026286.7K downloads

    ## Version differences ### Android * For Android version 9 and higher, you need to use .apk that start with - AmneziaVPN_4.8.21.0_android9+ * ***The app version for Android 7 and 8 is temporarily unavailable*** ### macOS !!! The previous version (4.8.8.2 and lower) of the application (installed via the .dmg installer) must be uninstalled via “move to bin” in the applications folder * For macOS version 13 and higher, you need to use .pkg - AmneziaVPN_4.8.21.0_macos.zip * ***The app version for macOS 10.15 - 12, is temporarily unavailable*** ### Linux For Ubuntu you need to install xcb plugin: apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0 * ***The app version for Debian 12 / Ubuntu 22.04.x is temporarily unavailable*** ## Changelog ### General * improve stability **Full Changelog**: https://github.com/amnezia-vpn/amnezia-client/compare/4.8.19.0...4.8.21.0

  4. 4.8.19.04.8.19.0Jun 15, 2026718.7K downloads

    ## Version differences ### Android * For Android version 9 and higher, you need to use .apk that start with - AmneziaVPN_4.8.19.0_android9+ * ***The app version for Android 7 and 8 is temporarily unavailable*** ### macOS !!! The previous version (4.8.8.2 and lower) of the application (installed via the .dmg installer) must be uninstalled via “move to bin” in the applications folder * For macOS version 13 and higher, you need to use .pkg - AmneziaVPN_4.8.19.0_macos.zip * ***The app version for macOS 10.15 - 12, is temporarily unavailable*** ### Linux For Ubuntu you need to install xcb plugin: apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0 * ***The app version for Debian 12 / Ubuntu 22.04.x is temporarily unavailable*** ## Changelog ### General * improve stability **Full Changelog**: https://github.com/amnezia-vpn/amnezia-client/compare/4.8.18.0...4.8.19.0

  5. 4.8.18.04.8.18.0Jun 11, 2026195K downloads

    ## Version differences ### Android * For Android version 9 and higher, you need to use .apk that start with - AmneziaVPN_4.8.18.0_android9+ * ***The app version for Android 7 and 8 is temporarily unavailable*** ### macOS !!! The previous version (4.8.8.2 and lower) of the application (installed via the .dmg installer) must be uninstalled via “move to bin” in the applications folder * For macOS version 13 and higher, you need to use .pkg - AmneziaVPN_4.8.180_macos.zip * ***The app version for macOS 10.15 - 12, is temporarily unavailable*** ### Linux For Ubuntu you need to install xcb plugin: apt install libxcb-cursor0 libxcb-xinerama0 libxcb-icccm4 libxcb-keysyms1 libopengl0 libxkbcommon-x11-0 * ***The app version for Debian 12 / Ubuntu 22.04.x is temporarily unavailable*** ## Changelog ### General * improve stability **Full Changelog**: https://github.com/amnezia-vpn/amnezia-client/compare/4.8.15.4...4.8.18.0

Code frequency

additions and deletions
+37.3K-37.3KWeek of 2025-08-03: +5,362 linesWeek of 2025-08-03: -5,641 linesWeek of 2025-08-10: +1,601 linesWeek of 2025-08-10: -578 linesWeek of 2025-08-17: +90 linesWeek of 2025-08-17: -36 linesWeek of 2025-08-24: +1,078 linesWeek of 2025-08-24: -968 linesWeek of 2025-08-31: +207 linesWeek of 2025-08-31: -149 linesWeek of 2025-09-07: +521 linesWeek of 2025-09-07: -12 linesWeek of 2025-09-14: +73 linesWeek of 2025-09-14: -5 linesWeek of 2025-09-21: +0 linesWeek of 2025-09-21: -0 linesWeek of 2025-09-28: +396 linesWeek of 2025-09-28: -156 linesWeek of 2025-10-05: +1,185 linesWeek of 2025-10-05: -318 linesWeek of 2025-10-12: +0 linesWeek of 2025-10-12: -0 linesWeek of 2025-10-19: +0 linesWeek of 2025-10-19: -0 linesWeek of 2025-10-26: +142 linesWeek of 2025-10-26: -45 linesWeek of 2025-11-02: +523 linesWeek of 2025-11-02: -191 linesWeek of 2025-11-09: +482 linesWeek of 2025-11-09: -101 linesWeek of 2025-11-16: +230 linesWeek of 2025-11-16: -44 linesWeek of 2025-11-23: +123 linesWeek of 2025-11-23: -35 linesWeek of 2025-11-30: +1,406 linesWeek of 2025-11-30: -234 linesWeek of 2025-12-07: +898 linesWeek of 2025-12-07: -547 linesWeek of 2025-12-14: +2,264 linesWeek of 2025-12-14: -784 linesWeek of 2025-12-21: +309 linesWeek of 2025-12-21: -273 linesWeek of 2025-12-28: +485 linesWeek of 2025-12-28: -386 linesWeek of 2026-01-04: +0 linesWeek of 2026-01-04: -0 linesWeek of 2026-01-11: +39 linesWeek of 2026-01-11: -39 linesWeek of 2026-01-18: +15 linesWeek of 2026-01-18: -625 linesWeek of 2026-01-25: +275 linesWeek of 2026-01-25: -86 linesWeek of 2026-02-01: +382 linesWeek of 2026-02-01: -85 linesWeek of 2026-02-08: +508 linesWeek of 2026-02-08: -623 linesWeek of 2026-02-15: +135 linesWeek of 2026-02-15: -178 linesWeek of 2026-02-22: +525 linesWeek of 2026-02-22: -501 linesWeek of 2026-03-01: +180 linesWeek of 2026-03-01: -190 linesWeek of 2026-03-08: +170 linesWeek of 2026-03-08: -152 linesWeek of 2026-03-15: +224 linesWeek of 2026-03-15: -16 linesWeek of 2026-03-22: +1,006 linesWeek of 2026-03-22: -351 linesWeek of 2026-03-29: +0 linesWeek of 2026-03-29: -0 linesWeek of 2026-04-05: +3,591 linesWeek of 2026-04-05: -1,147 linesWeek of 2026-04-12: +435 linesWeek of 2026-04-12: -58 linesWeek of 2026-04-19: +57 linesWeek of 2026-04-19: -31 linesWeek of 2026-04-26: +37,309 linesWeek of 2026-04-26: -28,438 linesWeek of 2026-05-03: +5,772 linesWeek of 2026-05-03: -2,702 linesWeek of 2026-05-10: +3,772 linesWeek of 2026-05-10: -3,171 linesWeek of 2026-05-17: +11,363 linesWeek of 2026-05-17: -370 linesWeek of 2026-05-24: +3,218 linesWeek of 2026-05-24: -3,456 linesWeek of 2026-05-31: +572 linesWeek of 2026-05-31: -201 linesWeek of 2026-06-07: +0 linesWeek of 2026-06-07: -0 linesWeek of 2026-06-14: +77 linesWeek of 2026-06-14: -51 linesWeek of 2026-06-21: +590 linesWeek of 2026-06-21: -111 linesWeek of 2026-06-28: +162 linesWeek of 2026-06-28: -64 linesWeek of 2026-07-05: +4,106 linesWeek of 2026-07-05: -2,774 linesWeek of 2026-07-12: +1,151 linesWeek of 2026-07-12: -280 linesWeek of 2026-07-19: +963 linesWeek of 2026-07-19: -110 linesWeek of 2026-07-26: +3 linesWeek of 2026-07-26: -2 linesAug 3, 2025Jul 26, 2026
+94K lines added, -56.3K removed over the last year.

Commits per week

last 52 weeks
220Week of 2025-08-03: 7 commitsWeek of 2025-08-10: 3 commitsWeek of 2025-08-17: 8 commitsWeek of 2025-08-24: 9 commitsWeek of 2025-08-31: 8 commitsWeek of 2025-09-07: 3 commitsWeek of 2025-09-14: 3 commitsWeek of 2025-09-21: 0 commitsWeek of 2025-09-28: 19 commitsWeek of 2025-10-05: 8 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 1 commitsWeek of 2025-11-02: 5 commitsWeek of 2025-11-09: 5 commitsWeek of 2025-11-16: 2 commitsWeek of 2025-11-23: 6 commitsWeek of 2025-11-30: 8 commitsWeek of 2025-12-07: 4 commitsWeek of 2025-12-14: 12 commitsWeek of 2025-12-21: 5 commitsWeek of 2025-12-28: 3 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 1 commitsWeek of 2026-01-18: 4 commitsWeek of 2026-01-25: 13 commitsWeek of 2026-02-01: 7 commitsWeek of 2026-02-08: 7 commitsWeek of 2026-02-15: 6 commitsWeek of 2026-02-22: 22 commitsWeek of 2026-03-01: 5 commitsWeek of 2026-03-08: 4 commitsWeek of 2026-03-15: 4 commitsWeek of 2026-03-22: 9 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 5 commitsWeek of 2026-04-12: 7 commitsWeek of 2026-04-19: 2 commitsWeek of 2026-04-26: 5 commitsWeek of 2026-05-03: 3 commitsWeek of 2026-05-10: 9 commitsWeek of 2026-05-17: 18 commitsWeek of 2026-05-24: 11 commitsWeek of 2026-05-31: 4 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 4 commitsWeek of 2026-06-21: 5 commitsWeek of 2026-06-28: 2 commitsWeek of 2026-07-05: 10 commitsWeek of 2026-07-12: 7 commitsWeek of 2026-07-19: 13 commitsWeek of 2026-07-26: 1 commitsAug 3, 2025Jul 26, 2026
307 commits in the last 52 weeks.

When work happens

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