browser-use/browser-harnessPublic

Browser Harness | Self-healing harness that enables LLMs to complete any task.

AI summary: A robust CDP-based bridge for connecting AI agents directly to live browser sessions for complex web automation.

Stars
18.3K
+23 today
Forks
1.8K
Watchers
56
Open issues
43
Open PRs
358
Contributors
~80
Commits
635
Branches
189

PythonMITCreated Apr 17, 2026Last push 6d agoLatest release v0.1.13+165 stars this week+912 this month

Quick answers

What is browser-harness?
A robust CDP-based bridge for connecting AI agents directly to live browser sessions for complex web automation.
What does browser-harness do?
Browser-Harness provides a highly reliable, bidirectional bridge connecting AI agents to live browser sessions using the Chrome DevTools Protocol (CDP). Unlike standard automation frameworks, it is specifically designed to allow language models to inspect the DOM, intercept network traffic, and inject JavaScript asynchronously while the browser remains fully interactive. It standardizes the complex state of a web page into a clean, token-efficient JSON format that LLMs can easily parse. The harness handles the complexities of dynamic page loads, shadow DOMs, and iframe isolation, ensuring the agent always has an accurate, up-to-date view of the browser state before making its next move.
Who is browser-harness for?
Browser-Harness is designed for AI developers and automation engineers building sophisticated agents that require deep, reliable integration with live web browsers. It requires experience with Node.js and CDP concepts.
How do I get started with browser-harness?
npm install browser-harness
How popular is browser-harness on GitHub?
browser-use/browser-harness has 18,283 stars and 1,789 forks on GitHub, and gained 165 stars in the last 7 days.
What license does browser-harness use?
browser-use/browser-harness is released under the MIT license.

Star history

since Jul 28, 2026
05K10K15KJul 2026Aug 2026Sep 2026Oct 2026
18.3K 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-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-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: 5 commits2026-04-17: 51 commits2026-04-18: 38 commits2026-04-19: 10 commits2026-04-20: 7 commits2026-04-21: 5 commits2026-04-22: 5 commits2026-04-23: 6 commits2026-04-24: 12 commits2026-04-25: 5 commits2026-04-26: 3 commits2026-04-27: 9 commits2026-04-28: 16 commits2026-04-29: 8 commits2026-04-30: 13 commits2026-05-01: 7 commits2026-05-02: 17 commits2026-05-03: 8 commits2026-05-04: 17 commits2026-05-05: 7 commits2026-05-06: 5 commits2026-05-07: 3 commits2026-05-08: 0 commits2026-05-09: 0 commits2026-05-10: 1 commit2026-05-11: 1 commit2026-05-12: 2 commits2026-05-13: 2 commits2026-05-14: 3 commits2026-05-15: 3 commits2026-05-16: 0 commits2026-05-17: 0 commits2026-05-18: 0 commits2026-05-19: 2 commits2026-05-20: 0 commits2026-05-21: 0 commits2026-05-22: 0 commits2026-05-23: 0 commits2026-05-24: 0 commits2026-05-25: 0 commits2026-05-26: 0 commits2026-05-27: 0 commits2026-05-28: 0 commits2026-05-29: 0 commits2026-05-30: 0 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 0 commits2026-06-04: 0 commits2026-06-05: 0 commits2026-06-06: 0 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 0 commits2026-06-11: 0 commits2026-06-12: 0 commits2026-06-13: 5 commits2026-06-14: 0 commits2026-06-15: 0 commits2026-06-16: 0 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 2 commits2026-06-20: 4 commits2026-06-21: 8 commits2026-06-22: 0 commits2026-06-23: 0 commits2026-06-24: 0 commits2026-06-25: 0 commits2026-06-26: 0 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 2 commits2026-06-30: 0 commits2026-07-01: 4 commits2026-07-02: 0 commits2026-07-03: 0 commits2026-07-04: 0 commits2026-07-05: 0 commits2026-07-06: 0 commits2026-07-07: 7 commits2026-07-08: 0 commits2026-07-09: 0 commits2026-07-10: 2 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 1 commit2026-07-14: 3 commits2026-07-15: 9 commits2026-07-16: 6 commits2026-07-17: 0 commits2026-07-18: 0 commits2026-07-19: 0 commits2026-07-20: 0 commits2026-07-21: 5 commits2026-07-22: 0 commits2026-07-23: 0 commits2026-07-24: 1 commit2026-07-25: 3 commits2026-07-26: 0 commits2026-07-27: 1 commit2026-07-28: 1 commit2026-07-29: 0 commits2026-07-30: 0 commits2026-07-31: 0 commits2026-08-01: 0 commits2026-08-02: 2 commits2026-08-03: 1 commit2026-08-04: 0 commits2026-08-05: 0 commits2026-08-06: 0 commits2026-08-07: 1 commit2026-08-08: 0 commits2026-08-09: 0 commits2026-08-10: 0 commits2026-08-11: 0 commits2026-08-12: 0 commits2026-08-13: 0 commits2026-08-14: 16 commits2026-08-15: 8 commits2026-08-16: 1 commit2026-08-17: 0 commits2026-08-18: 0 commits2026-08-19: 4 commits2026-08-20: 1 commit2026-08-21: 0 commits2026-08-22: 1 commit2026-08-23: 0 commits2026-08-24: 0 commits2026-08-25: 7 commits2026-08-26: 1 commit2026-08-27: 5 commits2026-08-28: 0 commits2026-08-29: 1 commit2026-08-30: 14 commits2026-08-31: 0 commits2026-09-01: 2 commits2026-09-02: 7 commits2026-09-03: 16 commits2026-09-04: 2 commits2026-09-05: 4 commits2026-09-06: 0 commits2026-09-07: 0 commits2026-09-08: 0 commits2026-09-09: 0 commits2026-09-10: 0 commits2026-09-11: 0 commits2026-09-12: 0 commits2026-09-13: 0 commits2026-09-14: 0 commits2026-09-15: 0 commits2026-09-16: 0 commits2026-09-17: 0 commits2026-09-18: 0 commits2026-09-19: 0 commits2026-09-20: 0 commits2026-09-21: 0 commits2026-09-22: 0 commits2026-09-23: 0 commits2026-09-24: 0 commits2026-09-25: 0 commits2026-09-26: 0 commits2026-09-27: 0 commits2026-09-28: 0 commits2026-09-29: 0 commits2026-09-30: 0 commits2026-10-01: 0 commits2026-10-02: 0 commits2026-10-03: 0 commits
429 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    18,283 stars

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What browser-harness does

Browser-Harness provides a highly reliable, bidirectional bridge connecting AI agents to live browser sessions using the Chrome DevTools Protocol (CDP). Unlike standard automation frameworks, it is specifically designed to allow language models to inspect the DOM, intercept network traffic, and inject JavaScript asynchronously while the browser remains fully interactive. It standardizes the complex state of a web page into a clean, token-efficient JSON format that LLMs can easily parse. The harness handles the complexities of dynamic page loads, shadow DOMs, and iframe isolation, ensuring the agent always has an accurate, up-to-date view of the browser state before making its next move.

Browser-Harness is designed for AI developers and automation engineers building sophisticated agents that require deep, reliable integration with live web browsers. It requires experience with Node.js and CDP concepts.

  • Direct CDP integration: Bypasses bulky abstraction layers to communicate natively with Chrome via WebSockets for maximum speed.
  • LLM-optimized DOM extraction: Cleans and compresses the raw DOM into a token-efficient JSON structure designed specifically for language models.
  • Asynchronous action execution: Allows the agent to issue commands (like clicks or typing) without blocking the main event loop.
  • Network traffic interception: Exposes raw HTTP requests and responses to the agent for analyzing API calls directly.
  • Shadow DOM traversal: Automatically flattens and exposes elements hidden inside shadow roots or isolated iframes.
  • Interactive headful mode: Allows developers to watch the agent operate the browser in real-time while retaining the ability to intervene manually.
  • State diffing engine: Only sends the parts of the page that have changed since the last action, drastically reducing token usage.

Where teams use it

Autonomous web scraping

Developers can instruct an agent to navigate a heavily obfuscated SPA and extract data without writing fragile CSS selectors.

AI assistant web delegation

Users can ask their AI assistant to log into an authenticated dashboard and configure complex settings automatically.

Visual regression testing

QA engineers can prompt an agent to verify that specific elements render correctly across various viewport sizes.

Complex workflow automation

Agents can handle multi-step processes like filling out government forms or booking flights by reading the live screen state.

Getting started: npm install browser-harness

README

main branch

Browser Harness

Browser Harness ♞

Connect an LLM directly to your real browser through one editable CDP websocket. The agent writes missing helpers as it works, so the harness improves with every task.

Try browser-harness in Browser Use Cloud or paste the setup prompt into your coding agent.

  ● agent: wants to upload a file
  │
  ● agent-workspace/agent_helpers.py → helper missing
  │
  ● agent writes it                         agent_helpers.py
  │                                                       + custom helper
  ✓ file uploaded

You will never use the browser again.

See it work

Task: "Open my X profile, find my latest 20 video posts, and download them."

Download my latest 20 X videos

Setup prompt

Paste into Claude Code or Codex:

Install or upgrade browser-harness to the latest stable version with uv using Python 3.12, register the skill from `browser-harness skill`, and connect it to my browser. Ask whether I want local browser recordings enabled; default to no and preserve my existing preference on upgrades. Follow https://github.com/browser-use/browser-harness/blob/main/install.md if setup or connection fails.

The agent will open chrome://inspect/#remote-debugging. On first setup, tick the checkbox so the agent can connect to your browser:

Remote debugging setup

How it works

  • install.md connects the agent to your browser.
  • SKILL.md teaches it the browser workflow.
  • src/browser_harness/ stays protected while the agent writes reusable helpers in its local workspace.

Scale with Browser Use Cloud

Use your local browser for logged-in, personal work. When you want many browsers in parallel—with live previews, proxies, stealth, CAPTCHA solving, and more—scale with Browser Use Cloud.

MCP server

browser-harness-mcp exposes the browser control helpers as MCP tools over stdio, so any MCP client (Claude Code, Devin, Cursor, etc.) can drive the browser without writing a second CDP layer. See docs/MCP.md for setup and client configuration.

Contributing

Bug fixes, documentation improvements, and agent-generated domain skills are welcome. See CONTRIBUTING.md.


The Bitter Lesson of Agent Harnesses · Web Agents That Actually Learn

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

14 total
  1. v0.1.13v0.1.13Sep 4, 2026

    ## What changed - Pin the MCP extra to mcp 2.1.1. - Pin release build tooling to build 1.6.0 and setuptools 84.0.0. - Preserve the Chrome permission and macOS accessibility reliability improvements from 0.1.12. ## Verification - 251 unit tests passed with the MCP extra. - pip-audit found no known vulnerabilities in the resolved environment. - Wheel and source distribution built successfully.

  2. v0.1.12v0.1.12Sep 4, 2026

    ## What's Changed * fix: discover Brave Origin profiles on macOS by @MagMueller in https://github.com/browser-use/browser-harness/pull/728 * Keep one Chrome approval pending per daemon by @MagMueller in https://github.com/browser-use/browser-harness/pull/737 * Bump browser-harness to 0.1.12 by @MagMueller in https://github.com/browser-use/browser-harness/pull/740 **Full Changelog**: https://github.com/browser-use/browser-harness/compare/v0.1.11...v0.1.12

  3. v0.1.11v0.1.11Sep 3, 2026

    ## What's Changed * fix: clean up unused browser recovery launch by @MagMueller in https://github.com/browser-use/browser-harness/pull/657 * docs: retry hidden-tab scrolling after activation by @MagMueller in https://github.com/browser-use/browser-harness/pull/658 * docs: prevent duplicate tabs across harness calls by @gregpr07 in https://github.com/browser-use/browser-harness/pull/665 * Add MCP server wrapper over browser-harness helpers by @cckyros in https://github.com/browser-use/browser-harness/pull/601 * fix: validate local Chrome probe by @ShiroKSH in https://github.com/browser-use/browser-harness/pull/522 * shopify-admin: Forms app popup editing skill by @NoamAAO in https://github.com/browser-use/browser-harness/pull/568 * docs: add X article source recovery fallback by @kleberAbreu in https://github.com/browser-use/browser-harness/pull/515 * fix: give recorder frames the screenshot IPC timeout by @rajarshidattapy in https://github.com/browser-use/browser-harness/pull/700 * fix: send real physical key codes for printable characters by @rajarshidattapy in https://github.com/browser-use/browser-harness/pull/705 * fix: pick select-all modifier by browser OS, not host OS by @ep

  4. v0.1.10v0.1.10Aug 26, 2026

    ## What's Changed * Add machine-readable daemon health check by @laithrw in https://github.com/browser-use/browser-harness/pull/653 * feat: allow disabling update checks by @MagMueller in https://github.com/browser-use/browser-harness/pull/634 * fix: redact CDP credentials from daemon logs by @MagMueller in https://github.com/browser-use/browser-harness/pull/639 * feat: fail closed for orchestrator-owned daemons by @MagMueller in https://github.com/browser-use/browser-harness/pull/640 * fix: separate screenshot response timeout from IPC connect timeout by @MagMueller in https://github.com/browser-use/browser-harness/pull/641 * feat: allow suppressing Cloud live viewer by @MagMueller in https://github.com/browser-use/browser-harness/pull/642 * fix: reuse relay blank tab placeholder by @MagMueller in https://github.com/browser-use/browser-harness/pull/643 **Full Changelog**: https://github.com/browser-use/browser-harness/compare/v0.1.9...v0.1.10

  5. v0.1.9v0.1.9Aug 16, 2026

    ## What's Changed * Improve CDP hostname logging by @MagMueller in https://github.com/browser-use/browser-harness/pull/574 * Upgrade Pillow dependency to 12.3.0 by @sauravpanda in https://github.com/browser-use/browser-harness/pull/578 * Document optional macOS remote-debugging approval by @MagMueller in https://github.com/browser-use/browser-harness/pull/607 * Add macOS remote debugging approval helper by @MagMueller in https://github.com/browser-use/browser-harness/pull/610 * Remove agent cloud signup link by @MagMueller in https://github.com/browser-use/browser-harness/pull/611 * Simplify README and add Browser Harness demo by @MagMueller in https://github.com/browser-use/browser-harness/pull/612 * Improve README demo and cloud section by @MagMueller in https://github.com/browser-use/browser-harness/pull/614 * Use X video showcase in README by @MagMueller in https://github.com/browser-use/browser-harness/pull/615 * daemon: keep named automation in reusable background tabs by @MagMueller in https://github.com/browser-use/browser-harness/pull/618 * Bump browser-harness to 0.1.9 by @gregpr07 in https://github.com/browser-use/browser-harness/pull/623 **Full Changelog**: https://gi

Code frequency

additions and deletions
+34.3K-34.3KWeek of 2026-04-12: +28,147 linesWeek of 2026-04-12: -3,207 linesWeek of 2026-04-19: +4,221 linesWeek of 2026-04-19: -413 linesWeek of 2026-04-26: +34,333 linesWeek of 2026-04-26: -30,312 linesWeek of 2026-05-03: +4,261 linesWeek of 2026-05-03: -536 linesWeek of 2026-05-10: +765 linesWeek of 2026-05-10: -352 linesWeek of 2026-05-17: +16 linesWeek of 2026-05-17: -225 linesWeek of 2026-05-24: +0 linesWeek of 2026-05-24: -0 linesWeek of 2026-05-31: +0 linesWeek of 2026-05-31: -0 linesWeek of 2026-06-07: +357 linesWeek of 2026-06-07: -208 linesWeek of 2026-06-14: +1,414 linesWeek of 2026-06-14: -464 linesWeek of 2026-06-21: +56 linesWeek of 2026-06-21: -17 linesWeek of 2026-06-28: +19 linesWeek of 2026-06-28: -15 linesWeek of 2026-07-05: +426 linesWeek of 2026-07-05: -102 linesWeek of 2026-07-12: +7,576 linesWeek of 2026-07-12: -4,753 linesWeek of 2026-07-19: +420 linesWeek of 2026-07-19: -45 linesWeek of 2026-07-26: +145 linesWeek of 2026-07-26: -4 linesWeek of 2026-08-02: +63 linesWeek of 2026-08-02: -27 linesWeek of 2026-08-09: +1,790 linesWeek of 2026-08-09: -521 linesWeek of 2026-08-16: +434 linesWeek of 2026-08-16: -45 linesWeek of 2026-08-23: +684 linesWeek of 2026-08-23: -330 linesWeek of 2026-08-30: +2,343 linesWeek of 2026-08-30: -640 linesWeek of 2026-09-06: +0 linesWeek of 2026-09-06: -0 linesWeek of 2026-09-13: +0 linesWeek of 2026-09-13: -0 linesWeek of 2026-09-20: +0 linesWeek of 2026-09-20: -0 linesWeek of 2026-09-27: +0 linesWeek of 2026-09-27: -0 linesApr 12, 2026Sep 27, 2026
+87.5K lines added, -42.2K removed over the last year.

Commits per week

last 52 weeks
940Week of 2025-10-05: 0 commitsWeek 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: 94 commitsWeek of 2026-04-19: 50 commitsWeek of 2026-04-26: 73 commitsWeek of 2026-05-03: 40 commitsWeek of 2026-05-10: 12 commitsWeek of 2026-05-17: 2 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 5 commitsWeek of 2026-06-14: 6 commitsWeek of 2026-06-21: 8 commitsWeek of 2026-06-28: 6 commitsWeek of 2026-07-05: 9 commitsWeek of 2026-07-12: 19 commitsWeek of 2026-07-19: 9 commitsWeek of 2026-07-26: 2 commitsWeek of 2026-08-02: 4 commitsWeek of 2026-08-09: 24 commitsWeek of 2026-08-16: 7 commitsWeek of 2026-08-23: 14 commitsWeek of 2026-08-30: 45 commitsWeek of 2026-09-06: 0 commitsWeek of 2026-09-13: 0 commitsWeek of 2026-09-20: 0 commitsWeek of 2026-09-27: 0 commitsOct 5, 2025Sep 27, 2026
429 commits in the last 52 weeks.

When work happens

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