twentyhq/twentyPublic

The open alternative to Salesforce, designed for AI.

AI summary: A modern, open-source CRM platform allowing extensive customization and extension through code and AI agents.

Stars
57.8K
+110 today
Forks
9.4K
Watchers
231
Open issues
58
Open PRs
58
Contributors
~756
Commits
15.9K
Branches
1.9K

TypeScriptOtherCreated Dec 1, 2022Last push 1d agoLatest release sdk/v2.41.0+396 stars this week+1.7K this month

Quick answers

What is twenty?
A modern, open-source CRM platform allowing extensive customization and extension through code and AI agents.
What does twenty do?
Twenty provides the foundational building blocks of a modern Customer Relationship Management system, including objects, views, workflows, and agents. It distinguishes itself by allowing developers to extend and customize the platform heavily through code, treating the CRM as a programmable infrastructure rather than a rigid SaaS application. The platform features an integrated app development ecosystem where users can define custom objects and logic functions using TypeScript, which can then be published and version-controlled. Furthermore, it incorporates AI agents and chat interfaces directly into the CRM experience, streamlining data entry and customer interactions. It is built on a robust enterprise-ready stack including NestJS, PostgreSQL, React, and Redis.
Who is twenty for?
Twenty is designed for engineering and revenue operations teams who find traditional CRMs too restrictive and desire a programmable, open-source alternative. It requires technical familiarity with TypeScript, React, and database management.
How do I get started with twenty?
npx twenty app:publish --private
How popular is twenty on GitHub?
twentyhq/twenty has 57,843 stars and 9,397 forks on GitHub, and gained 396 stars in the last 7 days.
What license does twenty use?
twentyhq/twenty is released under the Other license.

Star history

since Apr 9, 2023
020K40KApr 2023Jun 2024Jul 2025Oct 2026
57.8K stars as of Oct 3, 2026. Before Jul 29, 2026, reconstructed from public GitHub event archives (checked against the repository's real star total); since then measured daily.

Contribution activity

commits per day, last 52 weeks
SepOctNovDecJanFebMarAprMayJunJulAugSepMonWedFri2025-09-28: 0 commits2025-09-29: 12 commits2025-09-30: 33 commits2025-10-01: 22 commits2025-10-02: 27 commits2025-10-03: 12 commits2025-10-04: 3 commits2025-10-05: 0 commits2025-10-06: 28 commits2025-10-07: 31 commits2025-10-08: 19 commits2025-10-09: 17 commits2025-10-10: 14 commits2025-10-11: 9 commits2025-10-12: 6 commits2025-10-13: 12 commits2025-10-14: 12 commits2025-10-15: 15 commits2025-10-16: 26 commits2025-10-17: 18 commits2025-10-18: 11 commits2025-10-19: 4 commits2025-10-20: 19 commits2025-10-21: 25 commits2025-10-22: 34 commits2025-10-23: 25 commits2025-10-24: 37 commits2025-10-25: 1 commit2025-10-26: 3 commits2025-10-27: 16 commits2025-10-28: 23 commits2025-10-29: 17 commits2025-10-30: 33 commits2025-10-31: 20 commits2025-11-01: 4 commits2025-11-02: 3 commits2025-11-03: 45 commits2025-11-04: 35 commits2025-11-05: 25 commits2025-11-06: 21 commits2025-11-07: 14 commits2025-11-08: 13 commits2025-11-09: 8 commits2025-11-10: 10 commits2025-11-11: 12 commits2025-11-12: 10 commits2025-11-13: 31 commits2025-11-14: 7 commits2025-11-15: 2 commits2025-11-16: 2 commits2025-11-17: 12 commits2025-11-18: 36 commits2025-11-19: 14 commits2025-11-20: 17 commits2025-11-21: 29 commits2025-11-22: 5 commits2025-11-23: 8 commits2025-11-24: 28 commits2025-11-25: 25 commits2025-11-26: 20 commits2025-11-27: 45 commits2025-11-28: 34 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 26 commits2025-12-02: 27 commits2025-12-03: 28 commits2025-12-04: 37 commits2025-12-05: 14 commits2025-12-06: 2 commits2025-12-07: 0 commits2025-12-08: 21 commits2025-12-09: 25 commits2025-12-10: 26 commits2025-12-11: 27 commits2025-12-12: 30 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 29 commits2025-12-16: 12 commits2025-12-17: 24 commits2025-12-18: 38 commits2025-12-19: 33 commits2025-12-20: 1 commit2025-12-21: 0 commits2025-12-22: 22 commits2025-12-23: 24 commits2025-12-24: 13 commits2025-12-25: 1 commit2025-12-26: 5 commits2025-12-27: 3 commits2025-12-28: 2 commits2025-12-29: 26 commits2025-12-30: 24 commits2025-12-31: 17 commits2026-01-01: 8 commits2026-01-02: 7 commits2026-01-03: 1 commit2026-01-04: 0 commits2026-01-05: 26 commits2026-01-06: 27 commits2026-01-07: 20 commits2026-01-08: 31 commits2026-01-09: 24 commits2026-01-10: 14 commits2026-01-11: 2 commits2026-01-12: 33 commits2026-01-13: 14 commits2026-01-14: 22 commits2026-01-15: 12 commits2026-01-16: 16 commits2026-01-17: 2 commits2026-01-18: 7 commits2026-01-19: 40 commits2026-01-20: 23 commits2026-01-21: 24 commits2026-01-22: 52 commits2026-01-23: 15 commits2026-01-24: 2 commits2026-01-25: 13 commits2026-01-26: 17 commits2026-01-27: 34 commits2026-01-28: 21 commits2026-01-29: 29 commits2026-01-30: 43 commits2026-01-31: 1 commit2026-02-01: 0 commits2026-02-02: 40 commits2026-02-03: 27 commits2026-02-04: 32 commits2026-02-05: 25 commits2026-02-06: 11 commits2026-02-07: 0 commits2026-02-08: 13 commits2026-02-09: 50 commits2026-02-10: 30 commits2026-02-11: 32 commits2026-02-12: 27 commits2026-02-13: 38 commits2026-02-14: 5 commits2026-02-15: 3 commits2026-02-16: 13 commits2026-02-17: 47 commits2026-02-18: 56 commits2026-02-19: 38 commits2026-02-20: 34 commits2026-02-21: 2 commits2026-02-22: 8 commits2026-02-23: 16 commits2026-02-24: 14 commits2026-02-25: 31 commits2026-02-26: 23 commits2026-02-27: 9 commits2026-02-28: 13 commits2026-03-01: 1 commit2026-03-02: 23 commits2026-03-03: 18 commits2026-03-04: 38 commits2026-03-05: 47 commits2026-03-06: 32 commits2026-03-07: 0 commits2026-03-08: 0 commits2026-03-09: 15 commits2026-03-10: 34 commits2026-03-11: 23 commits2026-03-12: 36 commits2026-03-13: 29 commits2026-03-14: 11 commits2026-03-15: 0 commits2026-03-16: 28 commits2026-03-17: 25 commits2026-03-18: 23 commits2026-03-19: 14 commits2026-03-20: 30 commits2026-03-21: 16 commits2026-03-22: 24 commits2026-03-23: 27 commits2026-03-24: 50 commits2026-03-25: 40 commits2026-03-26: 36 commits2026-03-27: 27 commits2026-03-28: 3 commits2026-03-29: 9 commits2026-03-30: 36 commits2026-03-31: 31 commits2026-04-01: 16 commits2026-04-02: 70 commits2026-04-03: 21 commits2026-04-04: 9 commits2026-04-05: 3 commits2026-04-06: 25 commits2026-04-07: 61 commits2026-04-08: 39 commits2026-04-09: 55 commits2026-04-10: 49 commits2026-04-11: 12 commits2026-04-12: 13 commits2026-04-13: 47 commits2026-04-14: 47 commits2026-04-15: 30 commits2026-04-16: 38 commits2026-04-17: 39 commits2026-04-18: 20 commits2026-04-19: 9 commits2026-04-20: 30 commits2026-04-21: 54 commits2026-04-22: 35 commits2026-04-23: 19 commits2026-04-24: 24 commits2026-04-25: 4 commits2026-04-26: 6 commits2026-04-27: 31 commits2026-04-28: 16 commits2026-04-29: 20 commits2026-04-30: 19 commits2026-05-01: 7 commits2026-05-02: 0 commits2026-05-03: 5 commits2026-05-04: 40 commits2026-05-05: 43 commits2026-05-06: 11 commits2026-05-07: 36 commits2026-05-08: 17 commits2026-05-09: 8 commits2026-05-10: 11 commits2026-05-11: 19 commits2026-05-12: 16 commits2026-05-13: 31 commits2026-05-14: 33 commits2026-05-15: 13 commits2026-05-16: 2 commits2026-05-17: 0 commits2026-05-18: 26 commits2026-05-19: 31 commits2026-05-20: 35 commits2026-05-21: 41 commits2026-05-22: 29 commits2026-05-23: 9 commits2026-05-24: 0 commits2026-05-25: 15 commits2026-05-26: 16 commits2026-05-27: 37 commits2026-05-28: 23 commits2026-05-29: 29 commits2026-05-30: 0 commits2026-05-31: 4 commits2026-06-01: 16 commits2026-06-02: 44 commits2026-06-03: 21 commits2026-06-04: 35 commits2026-06-05: 29 commits2026-06-06: 10 commits2026-06-07: 3 commits2026-06-08: 48 commits2026-06-09: 30 commits2026-06-10: 31 commits2026-06-11: 40 commits2026-06-12: 40 commits2026-06-13: 23 commits2026-06-14: 31 commits2026-06-15: 34 commits2026-06-16: 39 commits2026-06-17: 37 commits2026-06-18: 44 commits2026-06-19: 85 commits2026-06-20: 4 commits2026-06-21: 14 commits2026-06-22: 52 commits2026-06-23: 59 commits2026-06-24: 74 commits2026-06-25: 64 commits2026-06-26: 40 commits2026-06-27: 10 commits2026-06-28: 8 commits2026-06-29: 35 commits2026-06-30: 38 commits2026-07-01: 32 commits2026-07-02: 51 commits2026-07-03: 43 commits2026-07-04: 16 commits2026-07-05: 12 commits2026-07-06: 19 commits2026-07-07: 31 commits2026-07-08: 49 commits2026-07-09: 55 commits2026-07-10: 76 commits2026-07-11: 2 commits2026-07-12: 0 commits2026-07-13: 23 commits2026-07-14: 3 commits2026-07-15: 27 commits2026-07-16: 23 commits2026-07-17: 25 commits2026-07-18: 1 commit2026-07-19: 2 commits2026-07-20: 36 commits2026-07-21: 28 commits2026-07-22: 42 commits2026-07-23: 19 commits2026-07-24: 66 commits2026-07-25: 2 commits2026-07-26: 10 commits2026-07-27: 49 commits2026-07-28: 49 commits2026-07-29: 38 commits2026-07-30: 49 commits2026-07-31: 37 commits2026-08-01: 4 commits2026-08-02: 0 commits2026-08-03: 30 commits2026-08-04: 32 commits2026-08-05: 38 commits2026-08-06: 31 commits2026-08-07: 16 commits2026-08-08: 7 commits2026-08-09: 4 commits2026-08-10: 23 commits2026-08-11: 23 commits2026-08-12: 34 commits2026-08-13: 55 commits2026-08-14: 41 commits2026-08-15: 10 commits2026-08-16: 2 commits2026-08-17: 20 commits2026-08-18: 35 commits2026-08-19: 33 commits2026-08-20: 40 commits2026-08-21: 68 commits2026-08-22: 56 commits2026-08-23: 18 commits2026-08-24: 39 commits2026-08-25: 57 commits2026-08-26: 41 commits2026-08-27: 40 commits2026-08-28: 45 commits2026-08-29: 8 commits2026-08-30: 17 commits2026-08-31: 27 commits2026-09-01: 32 commits2026-09-02: 34 commits2026-09-03: 27 commits2026-09-04: 57 commits2026-09-05: 17 commits2026-09-06: 6 commits2026-09-07: 55 commits2026-09-08: 43 commits2026-09-09: 32 commits2026-09-10: 57 commits2026-09-11: 43 commits2026-09-12: 2 commits2026-09-13: 24 commits2026-09-14: 37 commits2026-09-15: 66 commits2026-09-16: 67 commits2026-09-17: 32 commits2026-09-18: 39 commits2026-09-19: 7 commits2026-09-20: 13 commits2026-09-21: 48 commits2026-09-22: 37 commits2026-09-23: 74 commits2026-09-24: 49 commits2026-09-25: 0 commits2026-09-26: 0 commits
8,772 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Landmark project

    57,843 stars

  • Very active

    8,772 commits in 52 weeks

  • Community-driven

    ~756 contributors

  • Well documented

    High community health score

  • Continuous integration

    Automated checks passing

What twenty does

Twenty provides the foundational building blocks of a modern Customer Relationship Management system, including objects, views, workflows, and agents. It distinguishes itself by allowing developers to extend and customize the platform heavily through code, treating the CRM as a programmable infrastructure rather than a rigid SaaS application. The platform features an integrated app development ecosystem where users can define custom objects and logic functions using TypeScript, which can then be published and version-controlled. Furthermore, it incorporates AI agents and chat interfaces directly into the CRM experience, streamlining data entry and customer interactions. It is built on a robust enterprise-ready stack including NestJS, PostgreSQL, React, and Redis.

Twenty is designed for engineering and revenue operations teams who find traditional CRMs too restrictive and desire a programmable, open-source alternative. It requires technical familiarity with TypeScript, React, and database management.

  • Programmable Infrastructure: Allows developers to extend CRM functionalities using custom code and defined logic functions.
  • Custom Objects: Enables the creation of bespoke data models and fields using a TypeScript-based schema definition.
  • Version Control Integration: Supports publishing and managing custom CRM applications with integrated version control.
  • AI Agent Workflows: Incorporates AI agents and chat interfaces to automate tasks and enhance user interaction.
  • Self-Hosted Deployment: Offers full self-hosting capabilities via Docker Compose for complete data sovereignty.
  • Modern Technology Stack: Built on a high-performance stack featuring NestJS, PostgreSQL, Redis, and React.

Where teams use it

Bespoke CRM Development

Companies customize the CRM data model with unique objects and fields tailored to their specific industry workflows.

Automated Sales Workflows

Sales teams utilize integrated AI agents to automatically summarize interactions and update deal stages.

Data Sovereignty Compliance

Enterprises deploy the platform on their own infrastructure using Docker to maintain strict control over customer data.

Developer-Centric Customization

Engineering teams build and version-control CRM extensions using familiar TypeScript and Node.js tooling.

Getting started: npx twenty app:publish --private

README

main branch

Twenty logo

The #1 Open-Source CRM

Website · Documentation · Roadmap · Discord · Figma

Twenty banner


Why Twenty

Twenty gives technical teams the building blocks for a custom CRM that meets complex business needs and quickly adapts as the business evolves. Twenty is the CRM you build, ship, and version like the rest of your stack.

Learn more about why we built Twenty


Installation

Cloud

The fastest way to get started. Sign up at twenty.com and spin up a workspace in under a minute, with no infrastructure to manage and always up to date.

Build an app

Scaffold a new app with the Twenty CLI:

npx create-twenty-app my-app

Define objects, fields, and views as code:

import { defineObject, FieldType } from 'twenty-sdk/define';

export default defineObject({
  nameSingular: 'deal',
  namePlural: 'deals',
  labelSingular: 'Deal',
  labelPlural: 'Deals',
  fields: [
    { name: 'name', label: 'Name', type: FieldType.TEXT },
    { name: 'amount', label: 'Amount', type: FieldType.CURRENCY },
    { name: 'closeDate', label: 'Close Date', type: FieldType.DATE_TIME },
  ],
});

Then ship it to your workspace:

npx twenty app:publish --private

See the app development guide for objects, views, agents, and logic functions.

Building with a coding agent? Install the official Twenty app skills, which work in Claude Code, Codex, Cursor, Pi, and any other harness supported by the skills CLI:

npx skills add https://github.com/twentyhq/twenty/tree/agent-skills --list

The agent-skills branch is created by the first successful publish from main. Until then, use the local build instructions. SKILLS.md explains the other skill families in this repository and who they are for.

Self-hosting

Run Twenty on your own infrastructure with Docker Compose, or contribute locally via the local setup guide.



Everything you need

Twenty gives you the building blocks of a modern CRM (objects, views, workflows, and agents) and lets you extend them as code. Here's a tour of what's in the box.

Want to go deeper? Read the User Guide for product walkthroughs, or the Documentation for developer reference.

Create your apps

Learn more about apps in doc

Stay on top with version control

Learn more about version control in doc

All the tools you need to build anything

Learn more about primitives in doc

Customize your layouts

Learn more about layouts in doc

AI agents and chats

Learn more about AI in doc

Plus all the tools of a good CRM

Learn more about CRM features in doc


Stack

Thanks

Greptile      Sentry      Crowdin

Thanks to these amazing services that we use and recommend for code review (Greptile), catching bugs (Sentry) and translating (Crowdin).

Join the Community

Star the repo · Discord · Feature requests · Releases · X · LinkedIn · Crowdin · Contribute

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

118 total
  1. twenty/v2.41.0twenty/v2.41.0Sep 17, 2026

    <!-- generated-release-notes v1 --> ## ⚠️ Breaking changes - Let every application admin manage a workspace-shared connection ([#25773](https://github.com/twentyhq/twenty/pull/25773)) by @abdulrahmancodes ## ✨ New features - feat(server): validate workflow versions through exceptions, malformed at write and non-activable on activate or validate ([#24964](https://github.com/twentyhq/twenty/pull/24964)) by @charlesBochet - feat(metadata): author-keyed overrides blob (steps 1 to 3) ([#25284](https://github.com/twentyhq/twenty/pull/25284)) by @prastoin - feat(view): seed a user-owned initial view per object alongside the INDEX view ([#25416](https://github.com/twentyhq/twenty/pull/25416)) by @thomtrp - feat(workflow): add workspaceWorkflowId to core workflows ([#25723](https://github.com/twentyhq/twenty/pull/25723)) by @thomtrp - feat(usage-limit): expose usage limits over the metadata API ([#25740](https://github.com/twentyhq/twenty/pull/25740)) by @etiennejouan - feat(usage-limit): list workspace limits in a billing tab ([#25741](https://github.com/twentyhq/twenty/pull/25741)) by @etiennejouan - feat(usage-limit): create and edit limits from settings billing ([#2574

  2. sdk/v2.41.0sdk/v2.41.0Sep 23, 2026

    <!-- generated-release-notes v1 --> ## ⚠️ Breaking changes - Let every application admin manage a workspace-shared connection ([#25773](https://github.com/twentyhq/twenty/pull/25773)) by @abdulrahmancodes ## ✨ New features - feat(view): seed a user-owned initial view per object alongside the INDEX view ([#25416](https://github.com/twentyhq/twenty/pull/25416)) by @thomtrp - feat(usage-limit): expose usage limits over the metadata API ([#25740](https://github.com/twentyhq/twenty/pull/25740)) by @etiennejouan - feat(workflow): point core workflows and command menu items at core version ids ([#25757](https://github.com/twentyhq/twenty/pull/25757)) by @thomtrp - feat(skills): split agent-only skills from user skills, rewrite the catalog ([#25798](https://github.com/twentyhq/twenty/pull/25798)) by @FelixMalfait - feat(messaging): let apps own message channels ([#25903](https://github.com/twentyhq/twenty/pull/25903)) by @FelixMalfait - feat(messaging): let apps ingest messages into their channels ([#25905](https://github.com/twentyhq/twenty/pull/25905)) by @FelixMalfait - feat(messaging): resolve identity for non-email participants ([#25906](https://github.com/twentyhq/t

  3. twenty/v2.40.0twenty/v2.40.0Sep 15, 2026

    <!-- generated-release-notes v1 --> ## ⚠️ Breaking changes - Track application installs and uninstalls with deterministic queue jobs ([#25502](https://github.com/twentyhq/twenty/pull/25502)) by @martmull - feat(ai): replace model pickers with a five-tier model slider ([#25721](https://github.com/twentyhq/twenty/pull/25721)) by @FelixMalfait ## ✨ New features - feat(search): expose isSearchable on field metadata and make the object search section editable ([#25166](https://github.com/twentyhq/twenty/pull/25166)) by @prastoin - feat(record-form): render the record creation form behind a flag ([#25203](https://github.com/twentyhq/twenty/pull/25203)) by @thomtrp - feat(core): let apps report a connection auth failure with a reason ([#25297](https://github.com/twentyhq/twenty/pull/25297)) by @abdulrahmancodes - feat(workflow): polish the core workflows index and gate workflow run workspace relations ([#25356](https://github.com/twentyhq/twenty/pull/25356)) by @thomtrp - feat(workflow): select core workflows and delete them in bulk ([#25415](https://github.com/twentyhq/twenty/pull/25415)) by @thomtrp - feat(call-recorder): toggle to send the bot to all calendar meetings

  4. sdk/v2.40.0sdk/v2.40.0Sep 15, 2026

    <!-- generated-release-notes v1 --> Two breaking changes ship in this release. Install job inputs no longer carry a `version` field; remove it from any call sites. AI model configuration moves from name-based pickers to a five-tier system; update any code that references specific model identifiers. `yarn twenty pull` now writes views, page layouts, navigation menu items, and translations as typed `define*` files. `yarn twenty apply` no longer prunes translations when your project has no `locales/` folder, and empty built files no longer abort the upload batch. Two new `FieldMetadata` flags ship: `isSearchable` controls which fields feed the search vector, and `isAuditLogged` keeps scheduled writes off the record timeline. `definePageLayoutWidget` lets an app place a widget on a tab it does not own. ## ⚠️ Breaking changes - `TriggerInstallApplicationJobInput` no longer carries a `version` field; the installer resolves version from the app registration. Remove `version` from any call sites. ([#25502](https://github.com/twentyhq/twenty/pull/25502)) by @martmull - AI model configuration now uses five named tiers (`EXTRA_FAST`, `FAST`, `BALANCED`, `SMART`, `EXTRA_SMART`)

  5. twenty/v2.39.0twenty/v2.39.0Sep 9, 2026

    <!-- generated-release-notes v1 --> ## ⚠️ Breaking changes - Generate the twenty-ui theme artifacts from a single design-tokens source ([#24375](https://github.com/twentyhq/twenty/pull/24375)) by @bosiraphael ## ✨ New features - feat(call-recorder): custom settings tab with grouped sections ([#24913](https://github.com/twentyhq/twenty/pull/24913)) by @ehconitin - feat(record-form): provision a RECORD_FORM page layout per object ([#24999](https://github.com/twentyhq/twenty/pull/24999)) by @thomtrp - feat(workflow): honor retryOnFailure in the executor ([#25248](https://github.com/twentyhq/twenty/pull/25248)) by @thomtrp - feat(usage-limit): gate intra-workspace limits behind the Organization entitlement ([#25292](https://github.com/twentyhq/twenty/pull/25292)) by @etiennejouan - feat(slack): render task links as Slack's typed task entity ([#25303](https://github.com/twentyhq/twenty/pull/25303)) by @abdulrahmancodes - feat(slack): log Slack event retry deliveries ([#25304](https://github.com/twentyhq/twenty/pull/25304)) by @abdulrahmancodes - feat(workflow): Node settings page for step error handling ([#25314](https://github.com/twentyhq/twenty/pull/25314)) by @thomtrp - feat(wor

Commits per week

last 52 weeks
3130Week of 2025-09-28: 109 commitsWeek of 2025-10-05: 118 commitsWeek of 2025-10-12: 100 commitsWeek of 2025-10-19: 145 commitsWeek of 2025-10-26: 116 commitsWeek of 2025-11-02: 156 commitsWeek of 2025-11-09: 80 commitsWeek of 2025-11-16: 115 commitsWeek of 2025-11-23: 160 commitsWeek of 2025-11-30: 134 commitsWeek of 2025-12-07: 129 commitsWeek of 2025-12-14: 137 commitsWeek of 2025-12-21: 68 commitsWeek of 2025-12-28: 85 commitsWeek of 2026-01-04: 142 commitsWeek of 2026-01-11: 101 commitsWeek of 2026-01-18: 163 commitsWeek of 2026-01-25: 158 commitsWeek of 2026-02-01: 135 commitsWeek of 2026-02-08: 195 commitsWeek of 2026-02-15: 193 commitsWeek of 2026-02-22: 114 commitsWeek of 2026-03-01: 159 commitsWeek of 2026-03-08: 148 commitsWeek of 2026-03-15: 136 commitsWeek of 2026-03-22: 207 commitsWeek of 2026-03-29: 192 commitsWeek of 2026-04-05: 244 commitsWeek of 2026-04-12: 234 commitsWeek of 2026-04-19: 175 commitsWeek of 2026-04-26: 99 commitsWeek of 2026-05-03: 160 commitsWeek of 2026-05-10: 125 commitsWeek of 2026-05-17: 171 commitsWeek of 2026-05-24: 120 commitsWeek of 2026-05-31: 159 commitsWeek of 2026-06-07: 215 commitsWeek of 2026-06-14: 274 commitsWeek of 2026-06-21: 313 commitsWeek of 2026-06-28: 223 commitsWeek of 2026-07-05: 244 commitsWeek of 2026-07-12: 102 commitsWeek of 2026-07-19: 195 commitsWeek of 2026-07-26: 236 commitsWeek of 2026-08-02: 154 commitsWeek of 2026-08-09: 190 commitsWeek of 2026-08-16: 254 commitsWeek of 2026-08-23: 248 commitsWeek of 2026-08-30: 211 commitsWeek of 2026-09-06: 238 commitsWeek of 2026-09-13: 272 commitsWeek of 2026-09-20: 221 commitsSep 28, 2025Sep 20, 2026
8.8K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 18 commitsSun 1:00 — 8 commitsSun 2:00 — 6 commitsSun 3:00 — 6 commitsSun 4:00 — 2 commitsSun 5:00 — 3 commitsSun 6:00 — 5 commitsSun 7:00 — 9 commitsSun 8:00 — 17 commitsSun 9:00 — 20 commitsSun 10:00 — 23 commitsSun 11:00 — 24 commitsSun 12:00 — 19 commitsSun 13:00 — 28 commitsSun 14:00 — 34 commitsSun 15:00 — 22 commitsSun 16:00 — 21 commitsSun 17:00 — 28 commitsSun 18:00 — 33 commitsSun 19:00 — 23 commitsSun 20:00 — 41 commitsSun 21:00 — 51 commitsSun 22:00 — 35 commitsSun 23:00 — 40 commitsMon 0:00 — 27 commitsMon 1:00 — 15 commitsMon 2:00 — 13 commitsMon 3:00 — 8 commitsMon 4:00 — 4 commitsMon 5:00 — 5 commitsMon 6:00 — 13 commitsMon 7:00 — 8 commitsMon 8:00 — 37 commitsMon 9:00 — 64 commitsMon 10:00 — 131 commitsMon 11:00 — 160 commitsMon 12:00 — 146 commitsMon 13:00 — 177 commitsMon 14:00 — 232 commitsMon 15:00 — 273 commitsMon 16:00 — 244 commitsMon 17:00 — 316 commitsMon 18:00 — 245 commitsMon 19:00 — 170 commitsMon 20:00 — 76 commitsMon 21:00 — 101 commitsMon 22:00 — 73 commitsMon 23:00 — 48 commitsTue 0:00 — 45 commitsTue 1:00 — 21 commitsTue 2:00 — 22 commitsTue 3:00 — 21 commitsTue 4:00 — 8 commitsTue 5:00 — 12 commitsTue 6:00 — 11 commitsTue 7:00 — 24 commitsTue 8:00 — 59 commitsTue 9:00 — 101 commitsTue 10:00 — 182 commitsTue 11:00 — 250 commitsTue 12:00 — 192 commitsTue 13:00 — 184 commitsTue 14:00 — 310 commitsTue 15:00 — 309 commitsTue 16:00 — 308 commitsTue 17:00 — 309 commitsTue 18:00 — 271 commitsTue 19:00 — 140 commitsTue 20:00 — 97 commitsTue 21:00 — 87 commitsTue 22:00 — 65 commitsTue 23:00 — 71 commitsWed 0:00 — 43 commitsWed 1:00 — 32 commitsWed 2:00 — 24 commitsWed 3:00 — 11 commitsWed 4:00 — 16 commitsWed 5:00 — 12 commitsWed 6:00 — 13 commitsWed 7:00 — 21 commitsWed 8:00 — 54 commitsWed 9:00 — 93 commitsWed 10:00 — 158 commitsWed 11:00 — 220 commitsWed 12:00 — 160 commitsWed 13:00 — 180 commitsWed 14:00 — 286 commitsWed 15:00 — 334 commitsWed 16:00 — 285 commitsWed 17:00 — 313 commitsWed 18:00 — 287 commitsWed 19:00 — 159 commitsWed 20:00 — 93 commitsWed 21:00 — 96 commitsWed 22:00 — 72 commitsWed 23:00 — 60 commitsThu 0:00 — 36 commitsThu 1:00 — 26 commitsThu 2:00 — 32 commitsThu 3:00 — 13 commitsThu 4:00 — 9 commitsThu 5:00 — 10 commitsThu 6:00 — 16 commitsThu 7:00 — 38 commitsThu 8:00 — 72 commitsThu 9:00 — 123 commitsThu 10:00 — 182 commitsThu 11:00 — 247 commitsThu 12:00 — 194 commitsThu 13:00 — 207 commitsThu 14:00 — 313 commitsThu 15:00 — 332 commitsThu 16:00 — 297 commitsThu 17:00 — 308 commitsThu 18:00 — 293 commitsThu 19:00 — 135 commitsThu 20:00 — 86 commitsThu 21:00 — 86 commitsThu 22:00 — 82 commitsThu 23:00 — 51 commitsFri 0:00 — 43 commitsFri 1:00 — 29 commitsFri 2:00 — 26 commitsFri 3:00 — 11 commitsFri 4:00 — 8 commitsFri 5:00 — 10 commitsFri 6:00 — 14 commitsFri 7:00 — 26 commitsFri 8:00 — 68 commitsFri 9:00 — 102 commitsFri 10:00 — 186 commitsFri 11:00 — 233 commitsFri 12:00 — 162 commitsFri 13:00 — 170 commitsFri 14:00 — 269 commitsFri 15:00 — 297 commitsFri 16:00 — 266 commitsFri 17:00 — 272 commitsFri 18:00 — 266 commitsFri 19:00 — 138 commitsFri 20:00 — 76 commitsFri 21:00 — 60 commitsFri 22:00 — 64 commitsFri 23:00 — 44 commitsSat 0:00 — 32 commitsSat 1:00 — 10 commitsSat 2:00 — 17 commitsSat 3:00 — 12 commitsSat 4:00 — 8 commitsSat 5:00 — 5 commitsSat 6:00 — 12 commitsSat 7:00 — 17 commitsSat 8:00 — 37 commitsSat 9:00 — 19 commitsSat 10:00 — 34 commitsSat 11:00 — 41 commitsSat 12:00 — 49 commitsSat 13:00 — 26 commitsSat 14:00 — 43 commitsSat 15:00 — 31 commitsSat 16:00 — 30 commitsSat 17:00 — 34 commitsSat 18:00 — 30 commitsSat 19:00 — 22 commitsSat 20:00 — 20 commitsSat 21:00 — 20 commitsSat 22:00 — 23 commitsSat 23:00 — 17 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Jan 10, 2026daily#24+124