e2e-inc/e2ePublic

Next generation e2e testing framework for web and mobile apps.

AI summary: An open-source AI testing framework built on Playwright for generating and executing end-to-end tests.

Stars
13.8K
+278 today
Forks
728
Watchers
30
Open issues
38
Open PRs
37
Contributors
~83
Commits
1.2K
Branches
66

TypeScriptApache-2.0Created Jul 22, 2026Last push todayLatest release @e2e-dev/[email protected]+474 stars this week+3.3K this month

Quick answers

What is e2e?
An open-source AI testing framework built on Playwright for generating and executing end-to-end tests.
What does e2e do?
e2e is an AI-native testing framework that automates the creation and execution of end-to-end web and mobile tests. It leverages Playwright under the hood to interact with applications while using large language models to dynamically generate test scripts based on natural language descriptions. The system can interpret user flows, generate the necessary assertions, and execute them across different browser environments. By integrating AI into the testing pipeline, it reduces the manual maintenance overhead typically associated with brittle test selectors.
Who is e2e for?
QA engineers, software developers in test (SDETs), and full-stack developers looking to modernize their testing infrastructure. Users should be familiar with end-to-end testing concepts and Node.js environments.
How do I get started with e2e?
npm i -D e2e
How popular is e2e on GitHub?
e2e-inc/e2e has 13,783 stars and 728 forks on GitHub, and gained 474 stars in the last 7 days.
What license does e2e use?
e2e-inc/e2e is released under the Apache-2.0 license.

Star history

since Oct 4, 2026
05K10KOct 2026Oct 2026Oct 2026Nov 2026
13.8K stars as of Nov 13, 2026. Measured daily since Oct 4, 2026; GitHub no longer exposes earlier star timestamps.

Update history

4 recorded

Contribution activity

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

Signals and awards

derived from tracked data
  • Widely adopted

    13,783 stars

  • Breakout launch

    13,783 stars in 114 days

  • Very active

    1,188 commits in 52 weeks

  • Well documented

    High community health score

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    16 trending appearances

What e2e does

e2e is an AI-native testing framework that automates the creation and execution of end-to-end web and mobile tests. It leverages Playwright under the hood to interact with applications while using large language models to dynamically generate test scripts based on natural language descriptions. The system can interpret user flows, generate the necessary assertions, and execute them across different browser environments. By integrating AI into the testing pipeline, it reduces the manual maintenance overhead typically associated with brittle test selectors.

QA engineers, software developers in test (SDETs), and full-stack developers looking to modernize their testing infrastructure. Users should be familiar with end-to-end testing concepts and Node.js environments.

  • AI Test Generation: Translates plain English descriptions of user flows into executable Playwright test code.
  • Playwright Foundation: Built on top of the robust Playwright engine for reliable cross-browser automation.
  • Self-Healing Selectors: Uses AI to dynamically identify UI elements, reducing failures when DOM structures change.
  • Cross-Platform Testing: Supports automated testing across both web applications and mobile web environments.
  • Framework Agnostic: Tests the rendered application independently of the underlying frontend framework.

Where teams use it

Automated Regression Testing

Continuously verify that critical user journeys remain functional after code deployments.

Test Suite Bootstrapping

Rapidly generate a baseline suite of end-to-end tests for a legacy application without existing coverage.

Non-Technical QA Automation

Allow product managers and QA analysts to write functional tests using natural language.

Cross-Browser Verification

Ensure consistent application behavior across Chromium, WebKit, and Firefox engines.

Getting started: npm i -D e2e

README

main branch

e2e, the agentic testing framework

npm version License: Apache-2.0 Join the community on Discord

e2e-inc/e2e | Trendshift

e2e

e2e is an end-to-end testing framework for web and mobile apps. Describe a goal in natural language and an agent drives the app to reach it. Check the result with locators and assertions in the same test.

// tests/checkout.e2e.ts
import { test, expect } from 'e2e';

test('a member upgrades to Pro', async ({ app, agent, screen }) => {
  await app.open('/settings/billing');

  await agent.act('upgrade the workspace to the Pro plan');
  await agent.assert('the invoice preview shows a prorated amount');

  await expect(screen.getByRole('status')).toContainText('Pro');
});

An agent step that a later assertion verifies records its actions, and the next run replays them with no model calls until the app changes. Tests without agent steps need no model. Bring your own subscription, API key, or local model.

Quick start

npx e2e init

init asks for an engine, web or mobile, and a model provider, then writes a config and an example test. The quickstart covers the rest.

To see a finished setup in your stack, open examples/: Vite, Next.js, Astro, Angular, Expo, SwiftUI, Jetpack Compose, Kotlin Multiplatform, Flutter, and .NET MAUI, each a standalone project with a passing suite.

Packages

Core

Package What it does
e2e The SDK, runner, and CLI.
@e2e-dev/web Browser engine: Chromium, Firefox, and WebKit through Playwright.
@e2e-dev/mobile iOS and Android engine: simulators and emulators through agent-device.
@e2e-dev/decision Decision-model executors for bounded semantic actions and assertions, and decisionFilter(), which leaves out the tests a pull request is unlikely to affect.
@e2e-dev/acp Runs agent steps on your own coding agent (Claude Code or Codex) over the Agent Client Protocol.

Integrations

Package What it does
@e2e-dev/kernel Kernel hosted browsers for the web engine.
@e2e-dev/lightpanda Lightpanda, the open-source headless browser, started per run for the web engine.
@e2e-dev/smol smol machines browsers for the web engine: by default, each attempt branches a warm Chromium microVM.
@e2e-dev/testmu TestMu AI (formerly LambdaTest) hosted Android emulators, iOS simulators, and real devices for the mobile engine, and hosted Chrome and Edge for the web engine.
@e2e-dev/e2b E2B sandboxes: Android 16 for the mobile engine, and Chromium for the web engine.
@e2e-dev/browserstack BrowserStack App Automate real Android and iOS devices for the mobile engine.
@e2e-dev/limrun Limrun hosted iOS simulators and Android emulators for mobile tests.
@e2e-dev/eas Expo Simulators hosted iOS simulators and Android emulators for the mobile engine.
@e2e-dev/github Reporter that posts results as a pull request comment.
@e2e-dev/html-reporter Reporter that writes the run as one HTML page, with steps, screenshots, and video.

Community

See Community packages for third-party integrations and how to add yours.

Documentation

e2e.com/docs. The e2e package ships every page, so coding agents can read them offline in node_modules/e2e/docs.

Join us

Join us in changing how software gets tested. We are hiring.

Questions? Ask on Discord. Issues are for bugs and feature requests.

Want to hack on e2e? See Contributing. We prefer an issue or a Discord discussion before a pull request.

Security

Please don't open public issues for security vulnerabilities. Follow SECURITY.md and report them to [email protected].

Telemetry

The CLI sends anonymous usage data, such as which commands and engines run and where runs fail, but no test content, app content, or credentials. Opt out with npx e2e telemetry disable or E2E_TELEMETRY_DISABLED=1. Telemetry lists every field.

Status

Note

e2e is in active development on the way to 1.0. APIs and config can still change between minor releases.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

80 total
  1. ### Minor Changes - [#1552](https://github.com/tester-army/e2e/pull/1552) [`d2556bc`](https://github.com/tester-army/e2e/commit/d2556bc23fd01afe8f72a2e94e5fc18b4787b433) Thanks [@okwasniewski](https://github.com/okwasniewski)! - **Breaking:** `inputValue()` on a node with no value, such as a heading or a button, and `isChecked()` on a node with no checked state throw `ACTION_FAILED`, as in Playwright, instead of returning `""` and `false`. A field with no value still reads `""`, and a checkable role with no state reported still reads `false`. `uncheck()` on an ARIA `role="radio"` now clicks it, as in Playwright; a native radio still refuses. ### Patch Changes - [#1524](https://github.com/tester-army/e2e/pull/1524) [`cba5e0e`](https://github.com/tester-army/e2e/commit/cba5e0ecfbb7a1b0c61d0328dad9485cc87c2ab6) Thanks [@okwasniewski](https://github.com/okwasniewski)! - The built-in agent can resize the viewport with the new `resize_viewport` tool, so `agent.act` and `e2e explore` can check layouts at desktop, tablet, and phone widths. The tool is offered when the target's engine implements the new optional `session.resize` hook. Custom executors call `ctx.actions.resize({ width, he

  2. ### Patch Changes - [#1479](https://github.com/tester-army/e2e/pull/1479) [`d15a98e`](https://github.com/tester-army/e2e/commit/d15a98e0711a185873a7a57a108dd254673e327c) Thanks [@okwasniewski](https://github.com/okwasniewski)! - `app.baseUrl` no longer ends in a slash, so `${app.baseUrl}/api/users` requests `/api/users` instead of `//api/users`. With `test` from `@e2e-dev/web`, `app.baseUrl` is typed `string`, since a `web()` target always declares `app.url`. A test that relied on the trailing slash, such as `${app.baseUrl}api/users` or `new URL('users', app.baseUrl)` on a URL with a path, adds the slash itself. - [#1553](https://github.com/tester-army/e2e/pull/1553) [`9267248`](https://github.com/tester-army/e2e/commit/9267248c4c45716f87bda581563023c9c6b4a067) Thanks [@okwasniewski](https://github.com/okwasniewski)! - `browser.evaluate` returns its result when the evaluated code deletes or replaces page globals such as `Map` or `Object`, and on pages that delete `Array` or `JSON`. When a page replaces a built-in the engine's in-page code needs, such as `Map`, later evaluates and locators fail with `EVALUATE_FAILED` instead of `ENGINE_FAILURE`. `browser.evaluate` now returns

  3. ### Patch Changes - [#1516](https://github.com/tester-army/e2e/pull/1516) [`0410fc9`](https://github.com/tester-army/e2e/commit/0410fc9c74ffac45d5174b7a3a5b3e6f15fdf32f) Thanks [@okwasniewski](https://github.com/okwasniewski)! - Bump agent-device to 0.21.36, @agentclientprotocol/sdk to 2.4.0, @vitest/expect to 5.1.0, and oxc to 0.157.0.

  4. ### Patch Changes - [#1516](https://github.com/tester-army/e2e/pull/1516) [`0410fc9`](https://github.com/tester-army/e2e/commit/0410fc9c74ffac45d5174b7a3a5b3e6f15fdf32f) Thanks [@okwasniewski](https://github.com/okwasniewski)! - Bump agent-device to 0.21.36, @agentclientprotocol/sdk to 2.4.0, @vitest/expect to 5.1.0, and oxc to 0.157.0. - [#1493](https://github.com/tester-army/e2e/pull/1493) [`91bd614`](https://github.com/tester-army/e2e/commit/91bd61490d20c7536a77ed5ed74e556a856da738) Thanks [@okwasniewski](https://github.com/okwasniewski)! - `e2e doctor` checks a mobile target: agent-device, the platform toolchain, each configured device, an installed `bundleId`, and the `appPath` build. Requires e2e 0.22.1 or newer. `mobile({ device })` now rejects a blank device name at config load instead of failing the run's boot. - [#1464](https://github.com/tester-army/e2e/pull/1464) [`57f9ed9`](https://github.com/tester-army/e2e/commit/57f9ed9eda7469535fba72bd24f9ff2ce7ad023e) Thanks [@okwasniewski](https://github.com/okwasniewski)! - Snapshots and screenshots now run within the timeout of the call that takes them (an action's `timeout`, an `expect` timeout), so a device that stops

  5. ### Patch Changes - [#1516](https://github.com/tester-army/e2e/pull/1516) [`0410fc9`](https://github.com/tester-army/e2e/commit/0410fc9c74ffac45d5174b7a3a5b3e6f15fdf32f) Thanks [@okwasniewski](https://github.com/okwasniewski)! - Bump agent-device to 0.21.36, @agentclientprotocol/sdk to 2.4.0, @vitest/expect to 5.1.0, and oxc to 0.157.0. - [#1576](https://github.com/tester-army/e2e/pull/1576) [`33a1541`](https://github.com/tester-army/e2e/commit/33a154157975bb38a421a912052e4d0e436067c8) Thanks [@kdy1](https://github.com/kdy1)! - Start faster by loading heavy dependencies when a command or session needs them. The CLI no longer loads the MCP server, the prompt library, or the schema library until `mcp`, `init`, `login`, `logout`, `models`, `explore`, `upgrade`, `doctor`, or `--watch` runs, so `e2e --version` and `--help` take about 25% less time. `@e2e-dev/web` imports Playwright when a browser is first launched or looked up, so a process that only reads the config skips it: `e2e list` on a web project takes about 44% less time, and importing the package half as long. A worker loads Playwright for its first browser instead of before its first test, so that test's reported duration g

Code frequency

additions and deletions
+101.1K-101.1KWeek of 2026-07-19: +21,510 linesWeek of 2026-07-19: -436 linesWeek of 2026-07-26: +35,000 linesWeek of 2026-07-26: -5,218 linesWeek of 2026-08-02: +0 linesWeek of 2026-08-02: -0 linesWeek of 2026-08-09: +0 linesWeek of 2026-08-09: -0 linesWeek of 2026-08-16: +0 linesWeek of 2026-08-16: -0 linesWeek of 2026-08-23: +0 linesWeek of 2026-08-23: -0 linesWeek of 2026-08-30: +46,633 linesWeek of 2026-08-30: -25,196 linesWeek of 2026-09-06: +95,886 linesWeek of 2026-09-06: -46,259 linesWeek of 2026-09-13: +36,565 linesWeek of 2026-09-13: -13,661 linesWeek of 2026-09-20: +101,134 linesWeek of 2026-09-20: -59,229 linesWeek of 2026-09-27: +96,556 linesWeek of 2026-09-27: -26,339 linesWeek of 2026-10-04: +58,617 linesWeek of 2026-10-04: -32,794 linesWeek of 2026-10-11: +38,436 linesWeek of 2026-10-11: -9,056 linesWeek of 2026-10-18: +20,064 linesWeek of 2026-10-18: -3,483 linesWeek of 2026-10-25: +32,607 linesWeek of 2026-10-25: -17,319 linesWeek of 2026-11-01: +25,205 linesWeek of 2026-11-01: -5,348 linesWeek of 2026-11-08: +24,380 linesWeek of 2026-11-08: -3,634 linesJul 19, 2026Nov 8, 2026
+632.6K lines added, -248K removed over the last year.

Commits per week

last 52 weeks
1760Week of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 0 commitsWeek of 2026-04-26: 0 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 0 commitsWeek of 2026-05-17: 0 commitsWeek of 2026-05-24: 0 commitsWeek of 2026-05-31: 0 commitsWeek of 2026-06-07: 0 commitsWeek of 2026-06-14: 0 commitsWeek of 2026-06-21: 0 commitsWeek of 2026-06-28: 0 commitsWeek of 2026-07-05: 0 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 3 commitsWeek of 2026-07-26: 23 commitsWeek of 2026-08-02: 0 commitsWeek of 2026-08-09: 0 commitsWeek of 2026-08-16: 0 commitsWeek of 2026-08-23: 0 commitsWeek of 2026-08-30: 42 commitsWeek of 2026-09-06: 138 commitsWeek of 2026-09-13: 57 commitsWeek of 2026-09-20: 153 commitsWeek of 2026-09-27: 176 commitsWeek of 2026-10-04: 137 commitsWeek of 2026-10-11: 119 commitsWeek of 2026-10-18: 76 commitsWeek of 2026-10-25: 100 commitsWeek of 2026-11-01: 85 commitsWeek of 2026-11-08: 79 commitsNov 16, 2025Nov 8, 2026
1.2K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 1 commitsSun 1:00 — 0 commitsSun 2:00 — 0 commitsSun 3:00 — 0 commitsSun 4:00 — 1 commitsSun 5:00 — 1 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 2 commitsSun 10:00 — 10 commitsSun 11:00 — 1 commitsSun 12:00 — 1 commitsSun 13:00 — 0 commitsSun 14:00 — 3 commitsSun 15:00 — 1 commitsSun 16:00 — 0 commitsSun 17:00 — 1 commitsSun 18:00 — 0 commitsSun 19:00 — 1 commitsSun 20:00 — 0 commitsSun 21:00 — 4 commitsSun 22:00 — 5 commitsSun 23:00 — 0 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 1 commitsMon 3:00 — 2 commitsMon 4:00 — 0 commitsMon 5:00 — 1 commitsMon 6:00 — 1 commitsMon 7:00 — 3 commitsMon 8:00 — 7 commitsMon 9:00 — 5 commitsMon 10:00 — 4 commitsMon 11:00 — 19 commitsMon 12:00 — 12 commitsMon 13:00 — 19 commitsMon 14:00 — 5 commitsMon 15:00 — 27 commitsMon 16:00 — 37 commitsMon 17:00 — 22 commitsMon 18:00 — 13 commitsMon 19:00 — 15 commitsMon 20:00 — 20 commitsMon 21:00 — 3 commitsMon 22:00 — 2 commitsMon 23:00 — 1 commitsTue 0:00 — 1 commitsTue 1:00 — 1 commitsTue 2:00 — 2 commitsTue 3:00 — 1 commitsTue 4:00 — 5 commitsTue 5:00 — 2 commitsTue 6:00 — 3 commitsTue 7:00 — 3 commitsTue 8:00 — 1 commitsTue 9:00 — 13 commitsTue 10:00 — 23 commitsTue 11:00 — 29 commitsTue 12:00 — 17 commitsTue 13:00 — 20 commitsTue 14:00 — 14 commitsTue 15:00 — 11 commitsTue 16:00 — 13 commitsTue 17:00 — 10 commitsTue 18:00 — 9 commitsTue 19:00 — 14 commitsTue 20:00 — 11 commitsTue 21:00 — 3 commitsTue 22:00 — 7 commitsTue 23:00 — 8 commitsWed 0:00 — 1 commitsWed 1:00 — 1 commitsWed 2:00 — 1 commitsWed 3:00 — 3 commitsWed 4:00 — 2 commitsWed 5:00 — 1 commitsWed 6:00 — 1 commitsWed 7:00 — 1 commitsWed 8:00 — 18 commitsWed 9:00 — 24 commitsWed 10:00 — 22 commitsWed 11:00 — 23 commitsWed 12:00 — 10 commitsWed 13:00 — 10 commitsWed 14:00 — 17 commitsWed 15:00 — 8 commitsWed 16:00 — 10 commitsWed 17:00 — 14 commitsWed 18:00 — 15 commitsWed 19:00 — 16 commitsWed 20:00 — 13 commitsWed 21:00 — 10 commitsWed 22:00 — 8 commitsWed 23:00 — 1 commitsThu 0:00 — 2 commitsThu 1:00 — 1 commitsThu 2:00 — 2 commitsThu 3:00 — 1 commitsThu 4:00 — 7 commitsThu 5:00 — 0 commitsThu 6:00 — 1 commitsThu 7:00 — 8 commitsThu 8:00 — 15 commitsThu 9:00 — 16 commitsThu 10:00 — 9 commitsThu 11:00 — 12 commitsThu 12:00 — 16 commitsThu 13:00 — 12 commitsThu 14:00 — 17 commitsThu 15:00 — 6 commitsThu 16:00 — 10 commitsThu 17:00 — 14 commitsThu 18:00 — 16 commitsThu 19:00 — 3 commitsThu 20:00 — 4 commitsThu 21:00 — 6 commitsThu 22:00 — 14 commitsThu 23:00 — 6 commitsFri 0:00 — 3 commitsFri 1:00 — 3 commitsFri 2:00 — 1 commitsFri 3:00 — 1 commitsFri 4:00 — 0 commitsFri 5:00 — 0 commitsFri 6:00 — 1 commitsFri 7:00 — 1 commitsFri 8:00 — 7 commitsFri 9:00 — 14 commitsFri 10:00 — 6 commitsFri 11:00 — 11 commitsFri 12:00 — 28 commitsFri 13:00 — 15 commitsFri 14:00 — 14 commitsFri 15:00 — 14 commitsFri 16:00 — 9 commitsFri 17:00 — 11 commitsFri 18:00 — 11 commitsFri 19:00 — 14 commitsFri 20:00 — 10 commitsFri 21:00 — 1 commitsFri 22:00 — 3 commitsFri 23:00 — 0 commitsSat 0:00 — 0 commitsSat 1:00 — 2 commitsSat 2:00 — 0 commitsSat 3:00 — 1 commitsSat 4:00 — 3 commitsSat 5:00 — 1 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 1 commitsSat 9:00 — 2 commitsSat 10:00 — 8 commitsSat 11:00 — 21 commitsSat 12:00 — 7 commitsSat 13:00 — 6 commitsSat 14:00 — 8 commitsSat 15:00 — 4 commitsSat 16:00 — 6 commitsSat 17:00 — 5 commitsSat 18:00 — 10 commitsSat 19:00 — 5 commitsSat 20:00 — 5 commitsSat 21:00 — 5 commitsSat 22:00 — 11 commitsSat 23:00 — 1 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Nov 5, 2026monthly#11+10,768
Nov 4, 2026monthly#11+10,768
Nov 3, 2026monthly#9+11,344
Nov 2, 2026monthly#3+12,433
Oct 16, 2026weekly#5+3,505
Oct 15, 2026weekly#5+3,505
Oct 14, 2026weekly#2+4,426
Oct 13, 2026weekly#2+5,582
Oct 12, 2026weekly#2+6,440
Oct 11, 2026weekly#2+6,564
Oct 10, 2026weekly#10+6,566
Oct 8, 2026daily#8+1,391
Oct 7, 2026daily#8+1,391
Oct 6, 2026daily#1+1,430
Oct 5, 2026daily#1+1,430
  • freeCodeCamp/freeCodeCamp

    freeCodeCamp.org's open-source codebase and curriculum. Learn math, programming, and computer science for free.

    459.1K stars · TypeScript

  • morluto/rea

    Reverse engineer anything with agents, from app behavior down to native binaries.

    455.4K stars · TypeScript

  • openclaw/openclaw

    The AI that really does things. Any OS. Any Platform. The lobster way. 🦞

    394.4K stars · TypeScript

  • donnemartin/system-design-primer

    Learn how to design large-scale systems. Prep for the system design interview. Includes Anki flashcards.

    377.7K stars · Python

  • anomalyco/opencode

    The open source coding agent.

    226.5K stars · TypeScript

  • n8n-io/n8n

    Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

    210.3K stars · TypeScript