Universal-Commerce-Protocol/ucpPublic

Specification and documentation for the Universal Commerce Protocol (UCP)

AI summary: An open specification providing a unified framework for seamless digital commerce integrations and agentic experiences.

Stars
3.4K
+1 today
Forks
471
Watchers
82
Open issues
112
Open PRs
104
Contributors
~61
Commits
300
Branches
40

PythonApache-2.0Created Dec 31, 2025Last push todayLatest release v2026-08-25+12 stars this week+53 this month

Quick answers

What is ucp?
An open specification providing a unified framework for seamless digital commerce integrations and agentic experiences.
What does ucp do?
The Universal Commerce Protocol (UCP) addresses the highly fragmented digital commerce landscape by providing standardized functional primitives. It establishes a common language that allows platforms, AI agents, payment processors, and businesses to communicate seamlessly without bespoke integrations. Developers can build modular checkout flows, secure identity linking, and order lifecycle management systems using this shared protocol. The architecture is transport-agnostic and relies on proven open standards, ultimately enabling AI assistants to securely autonomously discover products and complete purchases on behalf of users.
Who is ucp for?
This protocol is designed for platform developers, e-commerce architects, and payment service providers building the next generation of automated, interoperable commerce tools.
How do I get started with ucp?
https://ucp.dev/specification/overview
How popular is ucp on GitHub?
Universal-Commerce-Protocol/ucp has 3,407 stars and 471 forks on GitHub, and gained 12 stars in the last 7 days.
What license does ucp use?
Universal-Commerce-Protocol/ucp is released under the Apache-2.0 license.

Star history

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

Contribution activity

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

Signals and awards

derived from tracked data
  • Actively maintained

    Pushed within 48 hours

  • Well documented

    High community health score

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

What ucp does

The Universal Commerce Protocol (UCP) addresses the highly fragmented digital commerce landscape by providing standardized functional primitives. It establishes a common language that allows platforms, AI agents, payment processors, and businesses to communicate seamlessly without bespoke integrations. Developers can build modular checkout flows, secure identity linking, and order lifecycle management systems using this shared protocol. The architecture is transport-agnostic and relies on proven open standards, ultimately enabling AI assistants to securely autonomously discover products and complete purchases on behalf of users.

This protocol is designed for platform developers, e-commerce architects, and payment service providers building the next generation of automated, interoperable commerce tools.

  • Composable Architecture: Break down commerce into distinct capabilities and extensions, preventing integration bloat.
  • Dynamic Discovery: Businesses declare their capabilities in a standard profile, allowing client platforms to autonomously discover and configure them.
  • Agentic Commerce Ready: Built from the ground up to support AI agents acting on behalf of users to fill carts and securely complete purchases.
  • Transport Agnostic: Serve commerce capabilities over REST APIs, the Model Context Protocol (MCP), or server-to-server endpoints.
  • Identity Linking: Standardized integration with OAuth 2.0 to grant platforms verifiable authorization to perform actions on a user's behalf.
  • Standardized Schemas: Tooling provides runtime resolution of OpenAPI and JSON schemas to dynamically process relevant operations.

Where teams use it

AI Assistant Shopping

AI assistants utilize the dynamic discovery profile to independently build a cart and initiate a checkout for a user based on a conversational prompt.

Cross-Platform Checkout

E-commerce developers implement UCP capabilities once to support unified checkout logic across mobile apps, web storefronts, and third-party marketplaces.

Automated Order Tracking

Logistics providers and storefronts hook into the standard order webhook schema to push unified shipment updates across entirely different merchant systems.

Payment Token Exchange

Payment service providers rapidly integrate with hundreds of merchants through a single implementation of the UCP secure token exchange protocol.

Getting started: https://ucp.dev/specification/overview

README

main branch

Universal Commerce Protocol (UCP)

An open standard enabling interoperability between various commerce entities to facilitate seamless commerce integrations.

Documentation | Specification | Discussions

Overview

The Universal Commerce Protocol (UCP) addresses a fragmented commerce landscape by providing a standardized common language and functional primitives. It enables platforms (like AI agents and apps), businesses, Payment Service Providers (PSPs), and Credential Providers (CPs) to communicate effectively, ensuring secure and consistent commerce experiences across the web.

With UCP, businesses can:

  • Declare supported capabilities to enable autonomous discovery by platforms.
  • Facilitate secure checkout sessions, with or without human intervention.
  • Offer personalized shopping experiences through standardized data exchange.

Why UCP?

As commerce becomes increasingly agentic and distributed, the ability for different systems to interoperate without custom, one-off integrations is vital. UCP aims to:

  • Standardize Interaction: Provide a uniform way for platforms to interact with businesses, regardless of the underlying backend.
  • Modularize Commerce: Breakdown commerce into distinct Capabilities (e.g., Checkout, Order) and Extensions (e.g., Discounts, Fulfillment), allowing for flexible implementation.
  • Enable Agentic Commerce: Designed from the ground up to support AI agents acting on behalf of users to discover products, fill carts, and complete purchases securely.
  • Enhance Security: Support for advanced security patterns like AP2 mandates and verifiable credentials.

Key Features

  • Composable Architecture: UCP defines Capabilities (such as "Checkout" or "Identity Linking") that businesses implement to enable easy integration. On top of that, specific Extensions can be added to enhance the consumer experience without bloating the capability definitions.
  • Dynamic Discovery: Businesses declare their supported Capabilities in a standardized profile, allowing platforms to autonomously discover and configure themselves.
  • Transport Agnostic: The protocol is designed to work across various transports. Businesses can offer Capabilities via REST APIs, MCP (Model Context Protocol), or A2A, depending on their infrastructure.
  • Built on Standards: UCP leverages existing open standards for payments, identity, and security wherever applicable, rather than reinventing the wheel.
  • Developer Friendly: A comprehensive set of SDKs and libraries facilitates rapid development and integration.

Key Capabilities

The initial release focuses on the essential primitives for transacting:

  • Checkout: Facilitates checkout sessions including cart management and tax calculation, supporting flows with or without human intervention.
  • Identity Linking: Enables platforms to obtain authorization to perform actions on a user's behalf via OAuth 2.0.
  • Order: Webhook-based updates for order lifecycle events (shipped, delivered, returned).
  • Payment Token Exchange: Protocols for PSPs and Credential Providers to securely exchange payment tokens and credentials.

Getting Started

  • 📚 Explore the Documentation: Visit ucp.dev for a complete overview, the full protocol specification, tutorials, and guides.
  • 🎬 Review our samples for implementation examples.
  • 🛠️ Use our SDKs to start building your own integrations.
  • 📝 Check conformance with our conformance tests.

Contributing

We welcome community contributions to enhance and evolve UCP.

  • Questions & Discussions: Join our GitHub Discussions.
  • Issues & Feedback: Report issues or suggest improvements via GitHub Issues.
  • Contribution Guide: See our CONTRIBUTING.md for details on how to contribute.
  • Maintainers: See our central MAINTAINERS.md for the list of project maintainers.
  • Specific Repositories: When contributing to SDKs, Samples, Conformance, or other UCP repositories, please follow the developer instructions in the README of those repositories.

Schema Development

Schemas live in source/ and are published with ucp_* annotations intact. Agents (such as AI assistants or platforms participating in the protocol) can use the ucp-schema tool to resolve these annotations at runtime. This enables them to generate operation-specific schema variants (e.g., for 'create', 'update', or 'read' operations) from the master schemas, ensuring they only process fields relevant to the current action and direction (request vs. response).

  1. Ensure ucp-schema is installed:

    cargo install ucp-schema                 # from crates.io
    cargo install --git https://github.com/universal-commerce-protocol/ucp-schema  # from git
  2. Make updates to JSON files in source/

  3. Run ucp-schema lint source/ to validate syntax and references

Documentation Development

This project uses uv for Python dependency management.

  1. Install Python dependencies: uv sync
  2. Ensure ucp-schema is installed (see above)
  3. Run the development server: uv run mkdocs serve --watch source
  4. Open http://127.0.0.1:8000 in your browser
  5. Before submitting, run uv run mkdocs build --strict to check for warnings/errors

Alternatively, you can use the local build script to build the full site including spec versions:

./scripts/build_local.sh

This will build the site and start a local server. You can use the --draft-only flag to skip release branches and only build the current draft:

./scripts/build_local.sh --draft-only

You can start the documentation server locally by running

python3 -m http.server 8000 -d "local_preview"

The local version of the documentation website will then be available at http://127.0.0.1:8000

What's Next

Take a look at our roadmap on ucp.dev.

About

UCP is an open-source project under the Apache License 2.0 and is open to contributions from the community.

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

4 total
  1. Release v2026-08-25v2026-08-25Aug 25, 2026

    This release introduces major protocol enhancements, key structural refactorings to support multi-vertical expansion, payments security improvements (3DS2) and structured request constraints, independent capability versioning, and grocery vertical readiness. ## 📊 Executive Summary - **📂 Multi-Vertical Refactoring**: Foundation laid for supporting Food and Lodging verticals alongside Shopping, with polymorphic token binding and vertical-agnostic payment constructs. - **🛒 Grocery Vertical Readiness**: Introduction of Location Search & Lookup capabilities, deterministic operating hours, fulfillment location context, and fractional quantities with sale-basis pricing steps. - **🔑 Payments Security & Structured Constraints**: Implementation of vendor-agnostic 3D Secure (3DS2) authentication flows via Actions, response-carried `$requestConstraints` (with path targeting & `anyOf`), and split PAN / Network Token credentials. - **📅 Payment Terms & Schedules**: Deferred payments, deposits, and installment schedules, along with multi-instrument Split Payments. - **📦 Capability Versioning & Architecture**: Tightened the core version release contract for UCP and version negotiati

  2. Release v2026-04-08v2026-04-08Apr 9, 2026

    <!-- Release notes generated using configuration in .github/release.yml at release/2026-04-08 --> ## What's Changed ### ✨ New Features * feat(cart): Cart capability for basket building by @igrigorik in https://github.com/Universal-Commerce-Protocol/ucp/pull/73 * feat(extends): multi-parent support + deterministic schema resolution by @igrigorik in https://github.com/Universal-Commerce-Protocol/ucp/pull/96 * feat(errors): spec error handling for UCP negotiation failures by @igrigorik in https://github.com/Universal-Commerce-Protocol/ucp/pull/128 * feat(context): add `intent` field for relevance and personalization by @igrigorik in https://github.com/Universal-Commerce-Protocol/ucp/pull/95 * feat: Add first-class errors concept by @richmolj in https://github.com/Universal-Commerce-Protocol/ucp/pull/147 * feat: add ec_color_scheme query parameter to embedded checkouts by @westeezy in https://github.com/Universal-Commerce-Protocol/ucp/pull/157 * feat: signing for UCP requests & responses by @igrigorik in https://github.com/Universal-Commerce-Protocol/ucp/pull/156 * feat: Allow fulfillment method type (and id) to be optional on Fulfillment method updates by @matthutchinson i

  3. Release v2026-01-23v2026-01-23Jan 23, 2026

    ## What's Changed * refactor!: updates for 2026-01-23 release by @wry-ry in https://github.com/Universal-Commerce-Protocol/ucp/pull/115 * fix: Regenerate package-lock with public registry urls by @kcthota in https://github.com/Universal-Commerce-Protocol/ucp/pull/108 ## New Contributors * @kcthota made their first contribution in https://github.com/Universal-Commerce-Protocol/ucp/pull/108 **Full Changelog**: https://github.com/Universal-Commerce-Protocol/ucp/compare/v2026-01-11...v2026-01-23

  4. Release v2026-01-11v2026-01-11Jan 23, 2026

    ## What's Changed * docs: fix broken Google Pay Handler link in payment handler guide by @yanheChen in https://github.com/Universal-Commerce-Protocol/ucp/pull/4 * chore: add config for ruff by @wry-ry in https://github.com/Universal-Commerce-Protocol/ucp/pull/33 * chore: add *.code-workspace to .gitignore and .gitignore to cspell ignored files by @wry-ry in https://github.com/Universal-Commerce-Protocol/ucp/pull/36 * chore: increase verbosity of super-linter by @wry-ry in https://github.com/Universal-Commerce-Protocol/ucp/pull/42 * chore: allow super-linter to post status checks to PRs by @wry-ry in https://github.com/Universal-Commerce-Protocol/ucp/pull/43 * chore: more logging and config for linter by @wry-ry in https://github.com/Universal-Commerce-Protocol/ucp/pull/44 * chore: fix ruff format command args by @wry-ry in https://github.com/Universal-Commerce-Protocol/ucp/pull/45 * docs: Add salesforce logo to advisory partners folder by @aksbro-gpu in https://github.com/Universal-Commerce-Protocol/ucp/pull/46 * fix: updated hosted json refs to correct filenames with absolute paths by @wry-ry in https://github.com/Universal-Commerce-Protocol/ucp/pull/30 * style: Remove conflicting

Code frequency

additions and deletions
+32.4K-32.4KWeek of 2026-01-11: +32,406 linesWeek of 2026-01-11: -2,477 linesWeek of 2026-01-18: +7,259 linesWeek of 2026-01-18: -3,927 linesWeek of 2026-01-25: +4,922 linesWeek of 2026-01-25: -8,018 linesWeek of 2026-02-01: +2,400 linesWeek of 2026-02-01: -1,835 linesWeek of 2026-02-08: +428 linesWeek of 2026-02-08: -270 linesWeek of 2026-02-15: +1,310 linesWeek of 2026-02-15: -1,766 linesWeek of 2026-02-22: +2,044 linesWeek of 2026-02-22: -1,280 linesWeek of 2026-03-01: +2,979 linesWeek of 2026-03-01: -476 linesWeek of 2026-03-08: +1,957 linesWeek of 2026-03-08: -881 linesWeek of 2026-03-15: +1,069 linesWeek of 2026-03-15: -2,394 linesWeek of 2026-03-22: +271 linesWeek of 2026-03-22: -96 linesWeek of 2026-03-29: +2,493 linesWeek of 2026-03-29: -1,112 linesWeek of 2026-04-05: +2,199 linesWeek of 2026-04-05: -1,175 linesWeek of 2026-04-12: +353 linesWeek of 2026-04-12: -356 linesWeek of 2026-04-19: +645 linesWeek of 2026-04-19: -680 linesWeek of 2026-04-26: +565 linesWeek of 2026-04-26: -114 linesWeek of 2026-05-03: +1,120 linesWeek of 2026-05-03: -120 linesWeek of 2026-05-10: +826 linesWeek of 2026-05-10: -601 linesWeek of 2026-05-17: +9,924 linesWeek of 2026-05-17: -544 linesWeek of 2026-05-24: +3,266 linesWeek of 2026-05-24: -3,244 linesWeek of 2026-05-31: +18 linesWeek of 2026-05-31: -3 linesWeek of 2026-06-07: +903 linesWeek of 2026-06-07: -158 linesWeek of 2026-06-14: +264 linesWeek of 2026-06-14: -92 linesWeek of 2026-06-21: +1,090 linesWeek of 2026-06-21: -283 linesWeek of 2026-06-28: +1,088 linesWeek of 2026-06-28: -200 linesWeek of 2026-07-05: +67 linesWeek of 2026-07-05: -6 linesWeek of 2026-07-12: +1,169 linesWeek of 2026-07-12: -225 linesWeek of 2026-07-19: +1,263 linesWeek of 2026-07-19: -220 linesWeek of 2026-07-26: +92 linesWeek of 2026-07-26: -20 linesWeek of 2026-08-02: +1,170 linesWeek of 2026-08-02: -7 linesWeek of 2026-08-09: +2,550 linesWeek of 2026-08-09: -256 linesWeek of 2026-08-16: +23,714 linesWeek of 2026-08-16: -22,420 linesWeek of 2026-08-23: +9,275 linesWeek of 2026-08-23: -6,571 linesWeek of 2026-08-30: +45 linesWeek of 2026-08-30: -11 linesWeek of 2026-09-06: +355 linesWeek of 2026-09-06: -17 linesWeek of 2026-09-13: +0 linesWeek of 2026-09-13: -0 linesJan 11, 2026Sep 13, 2026
+121.5K lines added, -61.9K removed over the last year.

Commits per week

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

When work happens

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