Automattic/harperPublic

Offline, privacy-first grammar checker. Fast, open-source, Rust-powered

AI summary: A fast, privacy-first, offline-capable English grammar checker built in Rust.

Stars
14.2K
+37 today
Forks
547
Watchers
36
Open issues
590
Open PRs
131
Contributors
~134
Commits
4.5K
Branches
32

RustApache-2.0Created Oct 22, 2023Last push 2d agoLatest release v2.7.0+322 stars this week+405 this month

Star history

since Dec 1, 2024
05K10KDec 2024Jun 2025Jan 2026Aug 2026
14.2K stars as of Aug 6, 2026, tracked back to Dec 1, 2024. 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: 5 commits2025-08-12: 5 commits2025-08-13: 0 commits2025-08-14: 5 commits2025-08-15: 0 commits2025-08-16: 1 commit2025-08-17: 0 commits2025-08-18: 9 commits2025-08-19: 4 commits2025-08-20: 2 commits2025-08-21: 7 commits2025-08-22: 1 commit2025-08-23: 0 commits2025-08-24: 0 commits2025-08-25: 5 commits2025-08-26: 2 commits2025-08-27: 10 commits2025-08-28: 1 commit2025-08-29: 1 commit2025-08-30: 0 commits2025-08-31: 0 commits2025-09-01: 0 commits2025-09-02: 9 commits2025-09-03: 7 commits2025-09-04: 4 commits2025-09-05: 6 commits2025-09-06: 3 commits2025-09-07: 0 commits2025-09-08: 10 commits2025-09-09: 4 commits2025-09-10: 4 commits2025-09-11: 3 commits2025-09-12: 9 commits2025-09-13: 1 commit2025-09-14: 0 commits2025-09-15: 14 commits2025-09-16: 3 commits2025-09-17: 4 commits2025-09-18: 1 commit2025-09-19: 3 commits2025-09-20: 0 commits2025-09-21: 0 commits2025-09-22: 8 commits2025-09-23: 7 commits2025-09-24: 5 commits2025-09-25: 2 commits2025-09-26: 3 commits2025-09-27: 2 commits2025-09-28: 0 commits2025-09-29: 10 commits2025-09-30: 3 commits2025-10-01: 8 commits2025-10-02: 3 commits2025-10-03: 1 commit2025-10-04: 0 commits2025-10-05: 0 commits2025-10-06: 7 commits2025-10-07: 5 commits2025-10-08: 1 commit2025-10-09: 0 commits2025-10-10: 0 commits2025-10-11: 0 commits2025-10-12: 0 commits2025-10-13: 2 commits2025-10-14: 2 commits2025-10-15: 2 commits2025-10-16: 3 commits2025-10-17: 1 commit2025-10-18: 0 commits2025-10-19: 0 commits2025-10-20: 0 commits2025-10-21: 0 commits2025-10-22: 12 commits2025-10-23: 3 commits2025-10-24: 5 commits2025-10-25: 0 commits2025-10-26: 0 commits2025-10-27: 7 commits2025-10-28: 0 commits2025-10-29: 5 commits2025-10-30: 0 commits2025-10-31: 2 commits2025-11-01: 0 commits2025-11-02: 0 commits2025-11-03: 4 commits2025-11-04: 7 commits2025-11-05: 9 commits2025-11-06: 6 commits2025-11-07: 1 commit2025-11-08: 0 commits2025-11-09: 0 commits2025-11-10: 7 commits2025-11-11: 5 commits2025-11-12: 5 commits2025-11-13: 8 commits2025-11-14: 6 commits2025-11-15: 1 commit2025-11-16: 0 commits2025-11-17: 0 commits2025-11-18: 8 commits2025-11-19: 12 commits2025-11-20: 4 commits2025-11-21: 9 commits2025-11-22: 0 commits2025-11-23: 0 commits2025-11-24: 9 commits2025-11-25: 1 commit2025-11-26: 8 commits2025-11-27: 0 commits2025-11-28: 11 commits2025-11-29: 0 commits2025-11-30: 0 commits2025-12-01: 7 commits2025-12-02: 9 commits2025-12-03: 9 commits2025-12-04: 2 commits2025-12-05: 5 commits2025-12-06: 0 commits2025-12-07: 0 commits2025-12-08: 6 commits2025-12-09: 1 commit2025-12-10: 6 commits2025-12-11: 9 commits2025-12-12: 0 commits2025-12-13: 0 commits2025-12-14: 0 commits2025-12-15: 0 commits2025-12-16: 3 commits2025-12-17: 5 commits2025-12-18: 0 commits2025-12-19: 7 commits2025-12-20: 0 commits2025-12-21: 0 commits2025-12-22: 8 commits2025-12-23: 6 commits2025-12-24: 1 commit2025-12-25: 0 commits2025-12-26: 0 commits2025-12-27: 0 commits2025-12-28: 0 commits2025-12-29: 0 commits2025-12-30: 4 commits2025-12-31: 4 commits2026-01-01: 4 commits2026-01-02: 4 commits2026-01-03: 1 commit2026-01-04: 0 commits2026-01-05: 9 commits2026-01-06: 5 commits2026-01-07: 1 commit2026-01-08: 4 commits2026-01-09: 8 commits2026-01-10: 2 commits2026-01-11: 0 commits2026-01-12: 8 commits2026-01-13: 4 commits2026-01-14: 6 commits2026-01-15: 5 commits2026-01-16: 8 commits2026-01-17: 0 commits2026-01-18: 0 commits2026-01-19: 0 commits2026-01-20: 10 commits2026-01-21: 12 commits2026-01-22: 11 commits2026-01-23: 1 commit2026-01-24: 0 commits2026-01-25: 0 commits2026-01-26: 14 commits2026-01-27: 8 commits2026-01-28: 1 commit2026-01-29: 0 commits2026-01-30: 0 commits2026-01-31: 0 commits2026-02-01: 0 commits2026-02-02: 0 commits2026-02-03: 12 commits2026-02-04: 8 commits2026-02-05: 4 commits2026-02-06: 1 commit2026-02-07: 0 commits2026-02-08: 0 commits2026-02-09: 5 commits2026-02-10: 5 commits2026-02-11: 9 commits2026-02-12: 4 commits2026-02-13: 7 commits2026-02-14: 0 commits2026-02-15: 0 commits2026-02-16: 11 commits2026-02-17: 3 commits2026-02-18: 8 commits2026-02-19: 3 commits2026-02-20: 7 commits2026-02-21: 1 commit2026-02-22: 0 commits2026-02-23: 6 commits2026-02-24: 4 commits2026-02-25: 3 commits2026-02-26: 9 commits2026-02-27: 13 commits2026-02-28: 0 commits2026-03-01: 0 commits2026-03-02: 9 commits2026-03-03: 1 commit2026-03-04: 4 commits2026-03-05: 4 commits2026-03-06: 5 commits2026-03-07: 1 commit2026-03-08: 0 commits2026-03-09: 4 commits2026-03-10: 10 commits2026-03-11: 8 commits2026-03-12: 4 commits2026-03-13: 3 commits2026-03-14: 0 commits2026-03-15: 0 commits2026-03-16: 8 commits2026-03-17: 6 commits2026-03-18: 2 commits2026-03-19: 13 commits2026-03-20: 10 commits2026-03-21: 0 commits2026-03-22: 0 commits2026-03-23: 10 commits2026-03-24: 16 commits2026-03-25: 2 commits2026-03-26: 3 commits2026-03-27: 1 commit2026-03-28: 0 commits2026-03-29: 0 commits2026-03-30: 12 commits2026-03-31: 3 commits2026-04-01: 7 commits2026-04-02: 0 commits2026-04-03: 4 commits2026-04-04: 1 commit2026-04-05: 0 commits2026-04-06: 10 commits2026-04-07: 8 commits2026-04-08: 5 commits2026-04-09: 3 commits2026-04-10: 7 commits2026-04-11: 0 commits2026-04-12: 0 commits2026-04-13: 8 commits2026-04-14: 2 commits2026-04-15: 1 commit2026-04-16: 3 commits2026-04-17: 0 commits2026-04-18: 0 commits2026-04-19: 0 commits2026-04-20: 4 commits2026-04-21: 1 commit2026-04-22: 2 commits2026-04-23: 3 commits2026-04-24: 3 commits2026-04-25: 1 commit2026-04-26: 0 commits2026-04-27: 0 commits2026-04-28: 0 commits2026-04-29: 0 commits2026-04-30: 8 commits2026-05-01: 4 commits2026-05-02: 0 commits2026-05-03: 0 commits2026-05-04: 1 commit2026-05-05: 6 commits2026-05-06: 2 commits2026-05-07: 3 commits2026-05-08: 1 commit2026-05-09: 3 commits2026-05-10: 0 commits2026-05-11: 0 commits2026-05-12: 5 commits2026-05-13: 5 commits2026-05-14: 5 commits2026-05-15: 9 commits2026-05-16: 1 commit2026-05-17: 0 commits2026-05-18: 10 commits2026-05-19: 8 commits2026-05-20: 0 commits2026-05-21: 6 commits2026-05-22: 5 commits2026-05-23: 1 commit2026-05-24: 0 commits2026-05-25: 10 commits2026-05-26: 7 commits2026-05-27: 1 commit2026-05-28: 6 commits2026-05-29: 9 commits2026-05-30: 3 commits2026-05-31: 0 commits2026-06-01: 0 commits2026-06-02: 0 commits2026-06-03: 11 commits2026-06-04: 10 commits2026-06-05: 10 commits2026-06-06: 3 commits2026-06-07: 0 commits2026-06-08: 0 commits2026-06-09: 0 commits2026-06-10: 5 commits2026-06-11: 16 commits2026-06-12: 5 commits2026-06-13: 1 commit2026-06-14: 0 commits2026-06-15: 4 commits2026-06-16: 9 commits2026-06-17: 0 commits2026-06-18: 0 commits2026-06-19: 3 commits2026-06-20: 3 commits2026-06-21: 2 commits2026-06-22: 2 commits2026-06-23: 3 commits2026-06-24: 5 commits2026-06-25: 22 commits2026-06-26: 2 commits2026-06-27: 0 commits2026-06-28: 0 commits2026-06-29: 5 commits2026-06-30: 4 commits2026-07-01: 7 commits2026-07-02: 5 commits2026-07-03: 4 commits2026-07-04: 5 commits2026-07-05: 1 commit2026-07-06: 2 commits2026-07-07: 1 commit2026-07-08: 1 commit2026-07-09: 0 commits2026-07-10: 0 commits2026-07-11: 0 commits2026-07-12: 0 commits2026-07-13: 0 commits2026-07-14: 1 commit2026-07-15: 1 commit2026-07-16: 0 commits2026-07-17: 4 commits2026-07-18: 3 commits2026-07-19: 0 commits2026-07-20: 2 commits2026-07-21: 1 commit2026-07-22: 11 commits2026-07-23: 4 commits2026-07-24: 1 commit2026-07-25: 0 commits2026-07-26: 2 commits2026-07-27: 6 commits2026-07-28: 7 commits2026-07-29: 8 commits2026-07-30: 3 commits2026-07-31: 7 commits2026-08-01: 3 commits2026-08-02: 0 commits2026-08-03: 2 commits2026-08-04: 1 commit2026-08-05: 4 commits2026-08-06: 0 commits2026-08-07: 0 commits2026-08-08: 0 commits
1,267 commits in the last yearLessMore

Signals and awards

derived from tracked data
  • Widely adopted

    14,215 stars

  • Very active

    1,267 commits in 52 weeks

  • Community-driven

    ~134 contributors

  • Permissive license

    Apache-2.0

  • Continuous integration

    Automated checks passing

  • Repeat trending

    3 trending appearances

What harper does

Harper provides an extremely fast and highly accurate grammar and spell-checking engine without transmitting keystrokes to the cloud. Written entirely in Rust, it ensures maximum performance and minimal memory overhead during text analysis. It functions as a privacy-respecting alternative to entrenched commercial solutions, performing all natural language processing locally. The engine is versatile, capable of compiling to WebAssembly for browser use or running natively as a language server. It is designed to be 'just right', avoiding the overly pedantic or aggressive suggestions typical of other checkers.

Geared towards privacy-conscious writers, developers, and enterprises handling sensitive text. It is ideal for anyone dissatisfied with the cost and overbearing nature of mainstream grammar tools.

  • Offline execution: Processes all text locally to guarantee absolute user privacy.
  • Rust-powered engine: Delivers lightning-fast analysis with an exceptionally low memory footprint.
  • WebAssembly compilation: Allows seamless integration directly into web applications and browser extensions.
  • Language server protocol: Integrates natively into modern IDEs and text editors for real-time feedback.
  • Nuanced rule set: Focuses on meaningful corrections while avoiding overly prescriptive stylistic changes.

Where teams use it

Privacy-conscious writing

Authors and professionals dealing with sensitive documents who cannot use cloud-based grammar tools.

IDE integration

Developers wanting real-time spell checking for documentation and comments without latency.

Browser extension deployment

Users seeking a lightweight, local alternative to Grammarly for everyday web typing.

Automated CI checks

Repositories integrating fast, reliable markdown grammar validation into their build pipelines.

Getting started: cargo build --release

README

master branch

Harper

Harper Binaries Website Checks Crates.io NPM Version Downloads Obsidian Plugin Downloads

Harper is an English grammar checker designed to be just right. I created it after years of dealing with the shortcomings of the competition.

Grammarly was too expensive and too overbearing. Its suggestions lacked context, and were often just plain wrong. Not to mention: it's a privacy nightmare. Everything you write with Grammarly is sent to their servers. Their privacy policy claims they don't sell the data, but that doesn't mean they don't use it to train large language models and god knows what else. Not only that, but the round-trip-time of the network request makes revising your work all the more tedious.

LanguageTool is great, if you have gigabytes of RAM to spare and are willing to download the ~16GB n-gram dataset. Besides the memory requirements, I found LanguageTool too slow: it would take several seconds to lint even a moderate-size document.

That's why I created Harper: it is the grammar checker that fits my needs. Not only does it take milliseconds to lint a document, take less than 1/50th of LanguageTool's memory footprint, but it is also completely private.

Harper is even small enough to load via WebAssembly.

Language Support

Harper currently only supports English, but the core is extensible to support other languages, so we welcome contributions that allow for other language support.

Performance Issues

We consider long lint times bugs. If you encounter any significant performance issues, please create an issue on the topic.

If you find a fix to any performance issue, we would appreciate the contribution. Just please make sure to read our contribution guidelines first.

Links

Huge Thanks

This project would not be possible without the hard work from those who contribute.

Harper's logo was designed by Lukas Werner.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Discussions

all 93

Releases and announcements

111 total
  1. v2.7.0v2.7.0Jul 28, 20266.4K downloads

    ## What's Changed * refactor: more vec ctors and builders converted to iterators per #3670 by @hippietrail in https://github.com/Automattic/harper/pull/3712 * build(deps): bump egui from 0.34.2 to 0.34.3 by @dependabot[bot] in https://github.com/Automattic/harper/pull/3674 * build(deps): bump the actions-minor-patch group across 1 directory with 3 updates by @dependabot[bot] in https://github.com/Automattic/harper/pull/3695 * build(deps): bump nokogiri from 1.19.3 to 1.19.4 by @dependabot[bot] in https://github.com/Automattic/harper/pull/3701 * feat: max exodus→mass exodus by @hippietrail in https://github.com/Automattic/harper/pull/3637 * feat: add "standard option" to `Oxymorons` by @hippietrail in https://github.com/Automattic/harper/pull/3651 * feat: level of details→level of detail/levels of detail by @hippietrail in https://github.com/Automattic/harper/pull/3486 * feat: on one's own accord→of one's own accord by @hippietrail in https://github.com/Automattic/harper/pull/3646 * feat: on top off/ontop off/on topof → on top of by @hippietrail in https://github.com/Automattic/harper/pull/3400 * feat: that's here nor there→that's neither here nor there by @hippietrail in

  2. v2.6.0v2.6.0Jun 24, 202624.6K downloads

    ## What's Changed * feat: now a days→nowadays; add to discourse markers by @hippietrail in https://github.com/Automattic/harper/pull/3392 * feat: the entire of→the entirety of by @hippietrail in https://github.com/Automattic/harper/pull/3604 * feat: leaving in drones→leaving in droves by @hippietrail in https://github.com/Automattic/harper/pull/3636 * fix(core): support multiple brackets in rune matcher by @marcbachmann in https://github.com/Automattic/harper/pull/3608 * feat: tho→though by @hippietrail in https://github.com/Automattic/harper/pull/3526 * feat(desktop): mark support for Slack and Discord by @elijah-potter in https://github.com/Automattic/harper/pull/3641 * docs: grammar fix(es) in `contributors/desktop` by @hippietrail in https://github.com/Automattic/harper/pull/3645 * feat: dir → directory by @hippietrail in https://github.com/Automattic/harper/pull/3470 * fix: don't flag missing "to" between "want" and a noun+verb word by @hippietrail in https://github.com/Automattic/harper/pull/3649 * feat(cli): allow `forms` subcommand to accept multiple arguments by @abhishekDeshmukh74 in https://github.com/Automattic/harper/pull/2996 * feat: app picker bundle ID lo

  3. v2.5.0v2.5.0Jun 11, 20269.2K downloads

    ## What's Changed * fix(core): false-positive after contraction by @elijah-potter in https://github.com/Automattic/harper/pull/3595 * fix(core): ignore the letter `s` when found in a parenthesis after a word by @elijah-potter in https://github.com/Automattic/harper/pull/3596 * feat(weir): add BoarderBorder rule to catch boarder/border word confusion by @jlaportebot in https://github.com/Automattic/harper/pull/3481 * feat: impressed of→impressed by/with by @hippietrail in https://github.com/Automattic/harper/pull/3566 * fix(title_case): don't capitalize am/pm in time expressions by @jlaportebot in https://github.com/Automattic/harper/pull/3456 * fix: treat semicolons as chunk separators by @azmifarih in https://github.com/Automattic/harper/pull/3426 * feat: GOP party → GOP / Grand Old Party by @hippietrail in https://github.com/Automattic/harper/pull/3232 * fix(desktop): make macOS accessibility activation work when AXEnhancedUserInterface is rejected by @markduan in https://github.com/Automattic/harper/pull/3600 * refactor: standardize on `.to_owned()` for `message` in linters by @hippietrail in https://github.com/Automattic/harper/pull/3569 * feat: as how→as to how by @h

  4. v2.4.0v2.4.0Jun 4, 20265.9K downloads

    ## What's Changed * docs: add Desktop app to list of platforms by @hippietrail in https://github.com/Automattic/harper/pull/3530 * feat: fellow coworker→fellow worker/coworker by @hippietrail in https://github.com/Automattic/harper/pull/3478 * feat: proof-of-concepts→proofs-of-concept by @hippietrail in https://github.com/Automattic/harper/pull/3562 * feat: pay for check/fee/price→pay check/fee/price by @hippietrail in https://github.com/Automattic/harper/pull/3567 * docs: add comprehensive website contribution guide by @jdgajjar in https://github.com/Automattic/harper/pull/3561 * fix: don't flag more low-hanging fruit→lower-hanging by @hippietrail in https://github.com/Automattic/harper/pull/3571 * chore: pin third-party GitHub Actions to commit SHAs by @mahangu in https://github.com/Automattic/harper/pull/3573 * fix: don't flag CVEs by @hippietrail in https://github.com/Automattic/harper/pull/3582 * feat: at face values→at face value by @hippietrail in https://github.com/Automattic/harper/pull/3578 * chore: dictionary curation by @hippietrail in https://github.com/Automattic/harper/pull/3579 * Update vulnerable JS transitive dependencies by @lancewillett in https://git

  5. v2.3.1v2.3.1May 30, 20263.9K downloads

    ## What's Changed * feat(desktop): add report issue buttons to menus by @elijah-potter in https://github.com/Automattic/harper/pull/3543 * fix(desktop): rename to `Harper` by @elijah-potter in https://github.com/Automattic/harper/pull/3542 * Dictionary curation for May 22, 2026 by @hippietrail in https://github.com/Automattic/harper/pull/3469 * fix(desktop): exit child when parent stops by @elijah-potter in https://github.com/Automattic/harper/pull/3544 * fix(web): make correct font "important" by @elijah-potter in https://github.com/Automattic/harper/pull/3545 **Full Changelog**: https://github.com/Automattic/harper/compare/v2.3.0...v2.3.1

Code frequency

additions and deletions
+60.2K-60.2KWeek of 2025-08-10: +611 linesWeek of 2025-08-10: -147 linesWeek of 2025-08-17: +2,281 linesWeek of 2025-08-17: -1,710 linesWeek of 2025-08-24: +3,422 linesWeek of 2025-08-24: -2,542 linesWeek of 2025-08-31: +20,849 linesWeek of 2025-08-31: -18,661 linesWeek of 2025-09-07: +27,851 linesWeek of 2025-09-07: -23,675 linesWeek of 2025-09-14: +9,299 linesWeek of 2025-09-14: -6,566 linesWeek of 2025-09-21: +2,193 linesWeek of 2025-09-21: -943 linesWeek of 2025-09-28: +15,491 linesWeek of 2025-09-28: -14,653 linesWeek of 2025-10-05: +469 linesWeek of 2025-10-05: -144 linesWeek of 2025-10-12: +1,647 linesWeek of 2025-10-12: -85 linesWeek of 2025-10-19: +4,376 linesWeek of 2025-10-19: -1,743 linesWeek of 2025-10-26: +2,508 linesWeek of 2025-10-26: -431 linesWeek of 2025-11-02: +5,729 linesWeek of 2025-11-02: -1,351 linesWeek of 2025-11-09: +3,570 linesWeek of 2025-11-09: -2,077 linesWeek of 2025-11-16: +12,633 linesWeek of 2025-11-16: -9,166 linesWeek of 2025-11-23: +5,075 linesWeek of 2025-11-23: -2,166 linesWeek of 2025-11-30: +6,369 linesWeek of 2025-11-30: -3,030 linesWeek of 2025-12-07: +2,926 linesWeek of 2025-12-07: -1,105 linesWeek of 2025-12-14: +173 linesWeek of 2025-12-14: -42 linesWeek of 2025-12-21: +3,774 linesWeek of 2025-12-21: -2,964 linesWeek of 2025-12-28: +3,666 linesWeek of 2025-12-28: -2,749 linesWeek of 2026-01-04: +3,672 linesWeek of 2026-01-04: -1,622 linesWeek of 2026-01-11: +60,196 linesWeek of 2026-01-11: -5,169 linesWeek of 2026-01-18: +3,331 linesWeek of 2026-01-18: -1,077 linesWeek of 2026-01-25: +1,261 linesWeek of 2026-01-25: -415 linesWeek of 2026-02-01: +4,060 linesWeek of 2026-02-01: -1,423 linesWeek of 2026-02-08: +2,660 linesWeek of 2026-02-08: -937 linesWeek of 2026-02-15: +4,948 linesWeek of 2026-02-15: -1,025 linesWeek of 2026-02-22: +2,491 linesWeek of 2026-02-22: -448 linesWeek of 2026-03-01: +2,808 linesWeek of 2026-03-01: -427 linesWeek of 2026-03-08: +8,546 linesWeek of 2026-03-08: -3,775 linesWeek of 2026-03-15: +8,539 linesWeek of 2026-03-15: -6,487 linesWeek of 2026-03-22: +5,719 linesWeek of 2026-03-22: -4,165 linesWeek of 2026-03-29: +2,861 linesWeek of 2026-03-29: -464 linesWeek of 2026-04-05: +14,167 linesWeek of 2026-04-05: -3,201 linesWeek of 2026-04-12: +1,392 linesWeek of 2026-04-12: -570 linesWeek of 2026-04-19: +576 linesWeek of 2026-04-19: -374 linesWeek of 2026-04-26: +989 linesWeek of 2026-04-26: -418 linesWeek of 2026-05-03: +4,015 linesWeek of 2026-05-03: -428 linesWeek of 2026-05-10: +15,566 linesWeek of 2026-05-10: -750 linesWeek of 2026-05-17: +5,402 linesWeek of 2026-05-17: -1,124 linesWeek of 2026-05-24: +2,549 linesWeek of 2026-05-24: -554 linesWeek of 2026-05-31: +3,326 linesWeek of 2026-05-31: -1,003 linesWeek of 2026-06-07: +2,105 linesWeek of 2026-06-07: -921 linesWeek of 2026-06-14: +2,507 linesWeek of 2026-06-14: -501 linesWeek of 2026-06-21: +2,962 linesWeek of 2026-06-21: -708 linesWeek of 2026-06-28: +5,607 linesWeek of 2026-06-28: -3,437 linesWeek of 2026-07-05: +229 linesWeek of 2026-07-05: -15 linesWeek of 2026-07-12: +1,928 linesWeek of 2026-07-12: -504 linesWeek of 2026-07-19: +5,753 linesWeek of 2026-07-19: -2,399 linesWeek of 2026-07-26: +5,135 linesWeek of 2026-07-26: -3,423 linesWeek of 2026-08-02: +63 linesWeek of 2026-08-02: -37 linesAug 10, 2025Aug 2, 2026
+320.3K lines added, -143.8K removed over the last year.

Commits per week

last 52 weeks
390Week of 2025-08-10: 16 commitsWeek of 2025-08-17: 23 commitsWeek of 2025-08-24: 19 commitsWeek of 2025-08-31: 29 commitsWeek of 2025-09-07: 31 commitsWeek of 2025-09-14: 25 commitsWeek of 2025-09-21: 27 commitsWeek of 2025-09-28: 25 commitsWeek of 2025-10-05: 13 commitsWeek of 2025-10-12: 10 commitsWeek of 2025-10-19: 20 commitsWeek of 2025-10-26: 14 commitsWeek of 2025-11-02: 27 commitsWeek of 2025-11-09: 32 commitsWeek of 2025-11-16: 33 commitsWeek of 2025-11-23: 29 commitsWeek of 2025-11-30: 32 commitsWeek of 2025-12-07: 22 commitsWeek of 2025-12-14: 15 commitsWeek of 2025-12-21: 15 commitsWeek of 2025-12-28: 17 commitsWeek of 2026-01-04: 29 commitsWeek of 2026-01-11: 31 commitsWeek of 2026-01-18: 34 commitsWeek of 2026-01-25: 23 commitsWeek of 2026-02-01: 25 commitsWeek of 2026-02-08: 30 commitsWeek of 2026-02-15: 33 commitsWeek of 2026-02-22: 35 commitsWeek of 2026-03-01: 24 commitsWeek of 2026-03-08: 29 commitsWeek of 2026-03-15: 39 commitsWeek of 2026-03-22: 32 commitsWeek of 2026-03-29: 27 commitsWeek of 2026-04-05: 33 commitsWeek of 2026-04-12: 14 commitsWeek of 2026-04-19: 14 commitsWeek of 2026-04-26: 12 commitsWeek of 2026-05-03: 16 commitsWeek of 2026-05-10: 25 commitsWeek of 2026-05-17: 30 commitsWeek of 2026-05-24: 36 commitsWeek of 2026-05-31: 34 commitsWeek of 2026-06-07: 27 commitsWeek of 2026-06-14: 19 commitsWeek of 2026-06-21: 36 commitsWeek of 2026-06-28: 30 commitsWeek of 2026-07-05: 5 commitsWeek of 2026-07-12: 9 commitsWeek of 2026-07-19: 19 commitsWeek of 2026-07-26: 36 commitsWeek of 2026-08-02: 7 commitsAug 10, 2025Aug 2, 2026
1.3K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 5 commitsSun 1:00 — 5 commitsSun 2:00 — 6 commitsSun 3:00 — 2 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 1 commitsSun 7:00 — 0 commitsSun 8:00 — 3 commitsSun 9:00 — 11 commitsSun 10:00 — 18 commitsSun 11:00 — 12 commitsSun 12:00 — 7 commitsSun 13:00 — 12 commitsSun 14:00 — 7 commitsSun 15:00 — 12 commitsSun 16:00 — 10 commitsSun 17:00 — 19 commitsSun 18:00 — 7 commitsSun 19:00 — 12 commitsSun 20:00 — 8 commitsSun 21:00 — 10 commitsSun 22:00 — 3 commitsSun 23:00 — 10 commitsMon 0:00 — 5 commitsMon 1:00 — 87 commitsMon 2:00 — 11 commitsMon 3:00 — 0 commitsMon 4:00 — 5 commitsMon 5:00 — 4 commitsMon 6:00 — 1 commitsMon 7:00 — 12 commitsMon 8:00 — 54 commitsMon 9:00 — 62 commitsMon 10:00 — 49 commitsMon 11:00 — 35 commitsMon 12:00 — 51 commitsMon 13:00 — 57 commitsMon 14:00 — 81 commitsMon 15:00 — 70 commitsMon 16:00 — 29 commitsMon 17:00 — 21 commitsMon 18:00 — 9 commitsMon 19:00 — 11 commitsMon 20:00 — 16 commitsMon 21:00 — 43 commitsMon 22:00 — 31 commitsMon 23:00 — 36 commitsTue 0:00 — 29 commitsTue 1:00 — 29 commitsTue 2:00 — 18 commitsTue 3:00 — 19 commitsTue 4:00 — 24 commitsTue 5:00 — 2 commitsTue 6:00 — 7 commitsTue 7:00 — 4 commitsTue 8:00 — 37 commitsTue 9:00 — 41 commitsTue 10:00 — 47 commitsTue 11:00 — 31 commitsTue 12:00 — 65 commitsTue 13:00 — 53 commitsTue 14:00 — 56 commitsTue 15:00 — 53 commitsTue 16:00 — 28 commitsTue 17:00 — 24 commitsTue 18:00 — 15 commitsTue 19:00 — 10 commitsTue 20:00 — 11 commitsTue 21:00 — 24 commitsTue 22:00 — 26 commitsTue 23:00 — 34 commitsWed 0:00 — 27 commitsWed 1:00 — 15 commitsWed 2:00 — 18 commitsWed 3:00 — 17 commitsWed 4:00 — 16 commitsWed 5:00 — 6 commitsWed 6:00 — 5 commitsWed 7:00 — 10 commitsWed 8:00 — 34 commitsWed 9:00 — 50 commitsWed 10:00 — 39 commitsWed 11:00 — 38 commitsWed 12:00 — 29 commitsWed 13:00 — 49 commitsWed 14:00 — 72 commitsWed 15:00 — 62 commitsWed 16:00 — 25 commitsWed 17:00 — 20 commitsWed 18:00 — 15 commitsWed 19:00 — 14 commitsWed 20:00 — 10 commitsWed 21:00 — 30 commitsWed 22:00 — 30 commitsWed 23:00 — 15 commitsThu 0:00 — 15 commitsThu 1:00 — 9 commitsThu 2:00 — 19 commitsThu 3:00 — 22 commitsThu 4:00 — 19 commitsThu 5:00 — 8 commitsThu 6:00 — 6 commitsThu 7:00 — 7 commitsThu 8:00 — 37 commitsThu 9:00 — 41 commitsThu 10:00 — 45 commitsThu 11:00 — 31 commitsThu 12:00 — 71 commitsThu 13:00 — 48 commitsThu 14:00 — 42 commitsThu 15:00 — 51 commitsThu 16:00 — 17 commitsThu 17:00 — 20 commitsThu 18:00 — 22 commitsThu 19:00 — 11 commitsThu 20:00 — 17 commitsThu 21:00 — 26 commitsThu 22:00 — 30 commitsThu 23:00 — 18 commitsFri 0:00 — 19 commitsFri 1:00 — 10 commitsFri 2:00 — 16 commitsFri 3:00 — 18 commitsFri 4:00 — 3 commitsFri 5:00 — 4 commitsFri 6:00 — 3 commitsFri 7:00 — 2 commitsFri 8:00 — 37 commitsFri 9:00 — 62 commitsFri 10:00 — 49 commitsFri 11:00 — 32 commitsFri 12:00 — 65 commitsFri 13:00 — 45 commitsFri 14:00 — 40 commitsFri 15:00 — 40 commitsFri 16:00 — 29 commitsFri 17:00 — 13 commitsFri 18:00 — 9 commitsFri 19:00 — 8 commitsFri 20:00 — 10 commitsFri 21:00 — 23 commitsFri 22:00 — 44 commitsFri 23:00 — 30 commitsSat 0:00 — 22 commitsSat 1:00 — 21 commitsSat 2:00 — 9 commitsSat 3:00 — 13 commitsSat 4:00 — 11 commitsSat 5:00 — 2 commitsSat 6:00 — 1 commitsSat 7:00 — 2 commitsSat 8:00 — 5 commitsSat 9:00 — 8 commitsSat 10:00 — 15 commitsSat 11:00 — 19 commitsSat 12:00 — 15 commitsSat 13:00 — 8 commitsSat 14:00 — 6 commitsSat 15:00 — 8 commitsSat 16:00 — 9 commitsSat 17:00 — 9 commitsSat 18:00 — 10 commitsSat 19:00 — 15 commitsSat 20:00 — 17 commitsSat 21:00 — 8 commitsSat 22:00 — 7 commitsSat 23:00 — 6 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Aug 1, 2026weekly#13+2,026
Jul 31, 2026weekly#13+2,026
Jul 23, 2026daily#21+4
  • freeCodeCamp/freeCodeCamp

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

    453.6K stars · TypeScript

  • react/react

    The library for web and native user interfaces.

    247.1K stars · JavaScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    238.5K stars · JavaScript

  • affaan-m/ECC

    The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

    234.7K stars · JavaScript

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    195K stars · Rust

  • ultraworkers/claw-code

    An agent-managed museum exhibit, built in Rust with Gajae-Code / LazyCodex — developed and maintained with no human intervention.

    194.9K stars · Rust