alibaba/page-agentPublic

JavaScript in-page GUI agent. Control web interfaces with natural language.

AI summary: JavaScript in-page GUI agent for controlling web interfaces with natural language.

Stars
28.5K
+39 today
Forks
2.5K
Watchers
113
Open issues
36
Open PRs
29
Contributors
~33
Commits
1.1K
Branches
6

TypeScriptMITCreated Sep 23, 2025Last push 1d agoLatest release v1.12.2+170 stars this week+500 this month

Star history

since Sep 21, 2025
010K20KSep 2025Jan 2026Apr 2026Aug 2026
28.5K stars as of Aug 7, 2026, tracked back to Sep 21, 2025. Historical curve reconstructed from public GitHub event archives, calibrated to the current total.

Contribution activity

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

Signals and awards

derived from tracked data
  • Widely adopted

    28,488 stars

  • Very active

    910 commits in 52 weeks

  • Well documented

    High community health score

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    18 trending appearances

What page-agent does

Page Agent is a client-side JavaScript tool that enables natural language control of web interfaces. It operates entirely within the webpage, eliminating the need for browser extensions, Python, or headless browsers. The agent integrates with mainstream LLMs, including locally deployed ones, to interpret text-based commands and manipulate the DOM directly. It also provides an optional Chrome extension and MCP Server for more advanced multi-page or external control scenarios.

Page Agent is for frontend developers, product managers, and automation engineers looking to add AI-driven natural language interfaces to their web applications. It requires basic web development knowledge to integrate.

  • In-page execution: Runs entirely via JavaScript inside the target web page.
  • Text-based DOM manipulation: Interacts with the page without requiring screenshots or multi-modal models.
  • LLM agnostic: Works with most mainstream language models, allowing you to bring your own API key.
  • Chrome extension support: Extends capabilities to handle multi-page tasks across browser tabs.
  • MCP Server integration: Allows external clients to control the browser agent via the Model Context Protocol.

Where teams use it

SaaS AI Copilot

Developers can embed an AI assistant into their product without rewriting the backend.

Smart Form Filling

Users can automate tedious data entry tasks in ERP or CRM systems using natural language.

Accessibility Assistant

Enables users to navigate and interact with complex web applications via text or voice commands.

External Automation

Developers can use the MCP server to control web browsers from external agent frameworks.

Getting started: npm install page-agent

README

main branch

Page Agent

Page Agent Banner

CI npm downloads size license typescript Chrome Web Store Rating GitHub stars

The GUI Agent Living in Your Webpage. One script gives any web page its own AI agent.

alibaba%2Fpage-agent | Trendshift

🌐 English | 中文

🚀 Demo | 📖 Docs | 📢 HN Discussion | 𝕏 Follow on X

page-agent-demo-0227.mp4

✨ Features

  • 🎯 Easy integration
    • No need for browser extension / python / headless browser.
    • Just in-page javascript. Everything happens in your web page.
  • 📖 Text-based DOM manipulation
    • No screenshots. No multi-modal LLMs or special permissions needed.
  • 🧠 Bring your own LLMs
    • Works with most mainstream models, including locally deployed ones. See supported models.
  • 🐙 Optional chrome extension for multi-page tasks.

💡 Use Cases

  • SaaS AI Copilot — Ship an AI copilot in your product in lines of code. No backend rewrite.
  • Smart Form Filling — Turn 20-click workflows into one sentence. Perfect for ERP, CRM, and admin systems.
  • Accessibility — Make any web app accessible through natural language. Voice commands, screen readers, zero barrier.
  • Multi-page Agent — Extend your own web agent's reach across browser tabs via the Chrome extension.
  • MCP - Allow your agent clients to control your browser.

🚀 Quick Start

One-line integration

Fastest way to try PageAgent with our free Demo LLM:

<script
    src="https://cdn.jsdelivr.net/npm/page-agent@1.12.2/dist/iife/page-agent.demo.js"
    crossorigin="anonymous"
></script>

<!-- China CDN mirror if you can't access jsDelivr -->
<!-- https://registry.npmmirror.com/page-agent/1.12.2/files/dist/iife/page-agent.demo.js -->

⚠️ For technical evaluation only. This demo CDN uses our free testing LLM API. By using it, you agree to its terms.

Add ?autoInit=false to load the script without creating the demo agent automatically. You can then instantiate it with new window.PageAgent(...) and your own LLMs.

NPM Installation

npm install page-agent
import { PageAgent } from 'page-agent'

const agent = new PageAgent({
    model: 'qwen3.5-plus',
    baseURL: 'https://dashscope.aliyuncs.com/compatible-mode/v1',
    apiKey: 'YOUR_API_KEY',
    language: 'en-US',
})

await agent.execute('Click the login button')

For more programmatic usage, see 📖 Documentations.

🤝 Contributing

We welcome contributions from the community! See CONTRIBUTING.md for guidelines and docs/developer-guide.md for local development workflows.

Built something cool with PageAgent? Share it in Show and Tell. 🙌

Please read the maintainer's note on principles and current state.

Contributions generated entirely by bots or AI without substantial human involvement will not be accepted.

⚖️ License

MIT License

👏 Acknowledgments

This project builds upon the excellent work of browser-use.

PageAgent is designed for client-side web enhancement, not server-side automation.

DOM processing components and prompt are derived from browser-use:

Browser Use <https://github.com/browser-use/browser-use>
Copyright (c) 2024 Gregor Zunic
Licensed under the MIT License

We gratefully acknowledge the browser-use project and its contributors for their
excellent work on web automation and DOM interaction patterns that helped make
this project possible.

⭐ Star this repo if you find PageAgent helpful!

View on GitHub

Recent activity

commits and pull requests

Releases and announcements

37 total
  1. 🌟v1.12.2v1.12.2Jul 16, 2026446 downloads

    ## What's Changed * chore(deps): bump root, website, and extension dependencies by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/612 * chore(deps-dev): bump the development-dependencies group with 4 updates by @dependabot[bot] in https://github.com/alibaba/page-agent/pull/615 * docs: CDN quick start in README and website by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/617 * feat(extension): honor AbortSignal in tab tools and tab-load wait by @Mordris in https://github.com/alibaba/page-agent/pull/590 ## New Contributors * @Mordris made their first contribution in https://github.com/alibaba/page-agent/pull/590 **Full Changelog**: https://github.com/alibaba/page-agent/compare/v1.12.1...v1.12.2

  2. 🌟v1.12.1v1.12.1Jul 10, 2026258 downloads

    ## What's Changed * chore(ci): remove workflow_dispatch from main workflows by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/605 * fix(ci): pin release workflow to npm 11 by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/609 * chore(llms): gate live model tests behind test:live by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/610 * feat(llms): update model list and patches by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/611 **Full Changelog**: https://github.com/alibaba/page-agent/compare/v1.12.0...v1.12.1

  3. 🌟v1.12.0v1.12.0Jul 9, 202666 downloads

    ## What's Changed **Stateless extension tab sync** - TabsController pulls tab state on demand instead of long-lived ports, so the MV3 service worker stays stateless and survives idle kills without stalling the side panel. **Tab status in agent context** - Tab summaries now include each tab's loading status for the LLM. * docs: improve README copy and quick start by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/592 * fix(ci): format README and align markdown tooling with Prettier by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/593 * chore(deps-dev): bump the development-dependencies group with 8 updates by @dependabot[bot] in https://github.com/alibaba/page-agent/pull/595 * fix(extension): stateless SW, pull tab state instead of ports by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/596 * feat(extension): add tab status to context by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/599 * chore: add self-hosted runners by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/602 * docs: point CI badge at main-ci.yml by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/603 * chore(llms): limit live test co

  4. 🌟v1.11.0v1.11.0Jul 3, 2026306 downloads

    ## What's Changed Rewrote per-model request patching for and updated the recommended model list. Added real-API CI testing for all the models listed. * refactor(llms): rewrite model patching and deprecate temperature by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/581 * fix(deps): hoist happy-dom to root devDependencies by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/559 * fix(assets): migrate img.alicdn.com URLs to page-agent.github.io by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/573 * fix(llms): skip reasoning_effort patch for chat-latest models by @itxaiohanglover in https://github.com/alibaba/page-agent/pull/568 * fix: wrong active tab/window in multi-window scenarios by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/578 * chore: Set the bookmark script to English locale by @ErwannRobin in https://github.com/alibaba/page-agent/pull/580 * chore: move cSpell config to .vscode/cspell.json by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/579 * chore(ui): remove legacy motion-css code by @gaomeng1900 in https://github.com/alibaba/page-agent/pull/583 * chore(deps-dev): bump the development-dependenci

  5. 🌟v1.10.0v1.10.0Jun 15, 2026655 downloads

    ## Breaking Changes - **Agent run lifecycle rework** - `stop()` is now async and resolves only after the run fully settles. Run status is decoupled from task outcome: a new `stopped` state was added, and LLM self-reported failures now end as `completed`. Lifecycle hooks re-throw instead of folding errors into the result, agent errors are recorded in history, and `agent.lastResult` was added. ## Features - **Abortable JavaScript execution** - `execute_javascript` now honors the `AbortSignal`. - **Leaner agent prompts** - Simplified the waiting-response flow and removed navigation-back instructions to reduce LLM cognitive load. - **MultiPageAgent safety** - Disabled `ScriptExecutionTool` for `MultiPageAgent`. ## Improvements - **Dark mode detection** - Refined detection heuristics and made `isMainContentDark` less aggressive by checking `html` and `body` data attributes independently. - **Extension lifecycle robustness** - Drove heartbeat and running state from status changes, cleared stale activity on any non-running status, handled the stopped lifecycle state, and cleared `currentTabId` on `TabsController.init`. ## Bug Fixes - **Accurate wait reporting** - W

Code frequency

additions and deletions
+41.8K-41.8KWeek of 2025-09-21: +21 linesWeek of 2025-09-21: -0 linesWeek of 2025-09-28: +22,153 linesWeek of 2025-09-28: -580 linesWeek of 2025-10-05: +596 linesWeek of 2025-10-05: -1,002 linesWeek of 2025-10-12: +2,344 linesWeek of 2025-10-12: -1,778 linesWeek of 2025-10-19: +3,598 linesWeek of 2025-10-19: -1,545 linesWeek of 2025-10-26: +0 linesWeek of 2025-10-26: -0 linesWeek of 2025-11-02: +0 linesWeek of 2025-11-02: -0 linesWeek of 2025-11-09: +0 linesWeek of 2025-11-09: -0 linesWeek of 2025-11-16: +320 linesWeek of 2025-11-16: -326 linesWeek of 2025-11-23: +221 linesWeek of 2025-11-23: -193 linesWeek of 2025-11-30: +20,095 linesWeek of 2025-11-30: -19,433 linesWeek of 2025-12-07: +11 linesWeek of 2025-12-07: -9 linesWeek of 2025-12-14: +3,905 linesWeek of 2025-12-14: -3,502 linesWeek of 2025-12-21: +5,187 linesWeek of 2025-12-21: -1,611 linesWeek of 2025-12-28: +0 linesWeek of 2025-12-28: -0 linesWeek of 2026-01-04: +615 linesWeek of 2026-01-04: -680 linesWeek of 2026-01-11: +25,868 linesWeek of 2026-01-11: -28,863 linesWeek of 2026-01-18: +41,768 linesWeek of 2026-01-18: -32,432 linesWeek of 2026-01-25: +5,496 linesWeek of 2026-01-25: -6,678 linesWeek of 2026-02-01: +1,713 linesWeek of 2026-02-01: -1,166 linesWeek of 2026-02-08: +3,942 linesWeek of 2026-02-08: -2,646 linesWeek of 2026-02-15: +0 linesWeek of 2026-02-15: -0 linesWeek of 2026-02-22: +2,293 linesWeek of 2026-02-22: -1,712 linesWeek of 2026-03-01: +1,952 linesWeek of 2026-03-01: -1,690 linesWeek of 2026-03-08: +1,256 linesWeek of 2026-03-08: -974 linesWeek of 2026-03-15: +4,485 linesWeek of 2026-03-15: -2,388 linesWeek of 2026-03-22: +725 linesWeek of 2026-03-22: -623 linesWeek of 2026-03-29: +1,106 linesWeek of 2026-03-29: -586 linesWeek of 2026-04-05: +3,285 linesWeek of 2026-04-05: -2,211 linesWeek of 2026-04-12: +1,183 linesWeek of 2026-04-12: -849 linesWeek of 2026-04-19: +1,232 linesWeek of 2026-04-19: -1,166 linesWeek of 2026-04-26: +1,637 linesWeek of 2026-04-26: -3,018 linesWeek of 2026-05-03: +0 linesWeek of 2026-05-03: -0 linesWeek of 2026-05-10: +529 linesWeek of 2026-05-10: -510 linesWeek of 2026-05-17: +22 linesWeek of 2026-05-17: -12 linesWeek of 2026-05-24: +1,010 linesWeek of 2026-05-24: -840 linesWeek of 2026-05-31: +1,767 linesWeek of 2026-05-31: -678 linesWeek of 2026-06-07: +1,525 linesWeek of 2026-06-07: -1,195 linesWeek of 2026-06-14: +617 linesWeek of 2026-06-14: -529 linesWeek of 2026-06-21: +252 linesWeek of 2026-06-21: -252 linesWeek of 2026-06-28: +6,163 linesWeek of 2026-06-28: -6,339 linesWeek of 2026-07-05: +1,225 linesWeek of 2026-07-05: -1,200 linesWeek of 2026-07-12: +437 linesWeek of 2026-07-12: -303 linesWeek of 2026-07-19: +448 linesWeek of 2026-07-19: -447 linesWeek of 2026-07-26: +0 linesWeek of 2026-07-26: -0 linesSep 21, 2025Jul 26, 2026
+171K lines added, -130K removed over the last year.

Commits per week

last 52 weeks
840Week of 2025-08-10: 0 commitsWeek of 2025-08-17: 0 commitsWeek of 2025-08-24: 0 commitsWeek of 2025-08-31: 0 commitsWeek of 2025-09-07: 0 commitsWeek of 2025-09-14: 0 commitsWeek of 2025-09-21: 1 commitsWeek of 2025-09-28: 35 commitsWeek of 2025-10-05: 13 commitsWeek of 2025-10-12: 11 commitsWeek of 2025-10-19: 75 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 1 commitsWeek of 2025-11-23: 7 commitsWeek of 2025-11-30: 23 commitsWeek of 2025-12-07: 3 commitsWeek of 2025-12-14: 28 commitsWeek of 2025-12-21: 25 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 14 commitsWeek of 2026-01-11: 82 commitsWeek of 2026-01-18: 84 commitsWeek of 2026-01-25: 51 commitsWeek of 2026-02-01: 21 commitsWeek of 2026-02-08: 35 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 24 commitsWeek of 2026-03-01: 41 commitsWeek of 2026-03-08: 54 commitsWeek of 2026-03-15: 42 commitsWeek of 2026-03-22: 17 commitsWeek of 2026-03-29: 37 commitsWeek of 2026-04-05: 17 commitsWeek of 2026-04-12: 26 commitsWeek of 2026-04-19: 8 commitsWeek of 2026-04-26: 15 commitsWeek of 2026-05-03: 0 commitsWeek of 2026-05-10: 7 commitsWeek of 2026-05-17: 2 commitsWeek of 2026-05-24: 1 commitsWeek of 2026-05-31: 13 commitsWeek of 2026-06-07: 33 commitsWeek of 2026-06-14: 6 commitsWeek of 2026-06-21: 6 commitsWeek of 2026-06-28: 20 commitsWeek of 2026-07-05: 19 commitsWeek of 2026-07-12: 6 commitsWeek of 2026-07-19: 5 commitsWeek of 2026-07-26: 0 commitsWeek of 2026-08-02: 2 commitsAug 10, 2025Aug 2, 2026
910 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 7 commitsSun 1:00 — 5 commitsSun 2:00 — 1 commitsSun 3:00 — 6 commitsSun 4:00 — 1 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 0 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 0 commitsSun 12:00 — 1 commitsSun 13:00 — 0 commitsSun 14:00 — 0 commitsSun 15:00 — 0 commitsSun 16:00 — 2 commitsSun 17:00 — 0 commitsSun 18:00 — 0 commitsSun 19:00 — 0 commitsSun 20:00 — 0 commitsSun 21:00 — 0 commitsSun 22:00 — 0 commitsSun 23:00 — 1 commitsMon 0:00 — 0 commitsMon 1:00 — 0 commitsMon 2:00 — 0 commitsMon 3:00 — 1 commitsMon 4:00 — 0 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 3 commitsMon 10:00 — 1 commitsMon 11:00 — 0 commitsMon 12:00 — 1 commitsMon 13:00 — 2 commitsMon 14:00 — 7 commitsMon 15:00 — 10 commitsMon 16:00 — 17 commitsMon 17:00 — 36 commitsMon 18:00 — 5 commitsMon 19:00 — 51 commitsMon 20:00 — 35 commitsMon 21:00 — 19 commitsMon 22:00 — 21 commitsMon 23:00 — 6 commitsTue 0:00 — 8 commitsTue 1:00 — 3 commitsTue 2:00 — 4 commitsTue 3:00 — 1 commitsTue 4:00 — 0 commitsTue 5:00 — 1 commitsTue 6:00 — 3 commitsTue 7:00 — 0 commitsTue 8:00 — 1 commitsTue 9:00 — 2 commitsTue 10:00 — 1 commitsTue 11:00 — 1 commitsTue 12:00 — 4 commitsTue 13:00 — 7 commitsTue 14:00 — 11 commitsTue 15:00 — 18 commitsTue 16:00 — 13 commitsTue 17:00 — 26 commitsTue 18:00 — 10 commitsTue 19:00 — 14 commitsTue 20:00 — 15 commitsTue 21:00 — 20 commitsTue 22:00 — 10 commitsTue 23:00 — 0 commitsWed 0:00 — 3 commitsWed 1:00 — 12 commitsWed 2:00 — 13 commitsWed 3:00 — 7 commitsWed 4:00 — 1 commitsWed 5:00 — 0 commitsWed 6:00 — 1 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 2 commitsWed 10:00 — 0 commitsWed 11:00 — 0 commitsWed 12:00 — 0 commitsWed 13:00 — 2 commitsWed 14:00 — 9 commitsWed 15:00 — 11 commitsWed 16:00 — 18 commitsWed 17:00 — 25 commitsWed 18:00 — 11 commitsWed 19:00 — 25 commitsWed 20:00 — 15 commitsWed 21:00 — 5 commitsWed 22:00 — 6 commitsWed 23:00 — 9 commitsThu 0:00 — 4 commitsThu 1:00 — 1 commitsThu 2:00 — 3 commitsThu 3:00 — 3 commitsThu 4:00 — 0 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 1 commitsThu 9:00 — 0 commitsThu 10:00 — 0 commitsThu 11:00 — 4 commitsThu 12:00 — 1 commitsThu 13:00 — 0 commitsThu 14:00 — 9 commitsThu 15:00 — 19 commitsThu 16:00 — 18 commitsThu 17:00 — 11 commitsThu 18:00 — 2 commitsThu 19:00 — 13 commitsThu 20:00 — 22 commitsThu 21:00 — 8 commitsThu 22:00 — 4 commitsThu 23:00 — 4 commitsFri 0:00 — 6 commitsFri 1:00 — 3 commitsFri 2:00 — 6 commitsFri 3:00 — 1 commitsFri 4:00 — 1 commitsFri 5:00 — 1 commitsFri 6:00 — 1 commitsFri 7:00 — 1 commitsFri 8:00 — 0 commitsFri 9:00 — 0 commitsFri 10:00 — 0 commitsFri 11:00 — 0 commitsFri 12:00 — 0 commitsFri 13:00 — 0 commitsFri 14:00 — 2 commitsFri 15:00 — 8 commitsFri 16:00 — 14 commitsFri 17:00 — 23 commitsFri 18:00 — 4 commitsFri 19:00 — 14 commitsFri 20:00 — 14 commitsFri 21:00 — 5 commitsFri 22:00 — 3 commitsFri 23:00 — 2 commitsSat 0:00 — 3 commitsSat 1:00 — 9 commitsSat 2:00 — 8 commitsSat 3:00 — 7 commitsSat 4:00 — 1 commitsSat 5:00 — 0 commitsSat 6:00 — 0 commitsSat 7:00 — 0 commitsSat 8:00 — 1 commitsSat 9:00 — 0 commitsSat 10:00 — 1 commitsSat 11:00 — 0 commitsSat 12:00 — 0 commitsSat 13:00 — 0 commitsSat 14:00 — 1 commitsSat 15:00 — 8 commitsSat 16:00 — 7 commitsSat 17:00 — 11 commitsSat 18:00 — 3 commitsSat 19:00 — 9 commitsSat 20:00 — 1 commitsSat 21:00 — 1 commitsSat 22:00 — 4 commitsSat 23:00 — 15 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Aug 1, 2026monthly#15+7,914
Jul 31, 2026monthly#15+7,914
Jul 30, 2026monthly#15+7,802
Jul 29, 2026monthly#15+7,926
Jul 28, 2026monthly#15+7,926
Jul 27, 2026monthly#13+7,959
Jul 11, 2026daily#21+2
Jul 7, 2026daily#19+6
Jul 5, 2026daily#20+20
Jul 4, 2026daily#6+36
Jul 3, 2026daily#7+17
Mar 21, 2026daily#16+208
Mar 17, 2026daily#23+143
Mar 14, 2026daily#15+258
Mar 13, 2026daily#10+308
  • freeCodeCamp/freeCodeCamp

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

    453.6K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    385.5K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • openclaw/openclaw

    Your own personal AI assistant. Any OS. Any Platform. The lobster way. 🦞

    384.4K stars · TypeScript

  • donnemartin/system-design-primer

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

    362.2K stars · Python