pydantic/montyPublic

A minimal, secure Python interpreter written in Rust for use by AI

AI summary: A minimal, secure Python interpreter written in Rust specifically designed for executing AI-generated code.

Stars
8.5K
+34 today
Forks
443
Watchers
41
Open issues
74
Open PRs
49
Contributors
~55
Commits
807
Branches
45

RustMITCreated May 28, 2023Last push 2d agoLatest release v1.0.0+254 stars this week+367 this month

Quick answers

What is monty?
A minimal, secure Python interpreter written in Rust specifically designed for executing AI-generated code.
What does monty do?
Monty is a lightweight Python interpreter built in Rust that provides a secure, fast sandbox for running code written by LLM agents. It completely blocks access to the host environment, such as the filesystem and network, routing any required interactions through controllable external function calls. Unlike traditional container-based sandboxes, Monty boasts startup times under a microsecond, allowing for near-instantaneous execution loops necessary for real-time agentic workflows. It supports a subset of modern Python, including type hints and basic standard libraries, providing just enough functionality for an AI to express its logic safely without risking the underlying system.
Who is monty for?
Developers building AI agents and coding assistants who need a fast, secure, and controllable environment to execute LLM-generated Python code.
How do I get started with monty?
uv add pydantic-monty
How popular is monty on GitHub?
pydantic/monty has 8,522 stars and 443 forks on GitHub, and gained 254 stars in the last 7 days.
What license does monty use?
pydantic/monty is released under the MIT license.

Star history

since Jul 29, 2026
02.5K5K7.5KJul 2026Aug 2026Sep 2026Oct 2026
8.5K stars as of Oct 3, 2026. Measured daily since Jul 29, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

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

Signals and awards

derived from tracked data
  • Very active

    749 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    5 trending appearances

What monty does

Monty is a lightweight Python interpreter built in Rust that provides a secure, fast sandbox for running code written by LLM agents. It completely blocks access to the host environment, such as the filesystem and network, routing any required interactions through controllable external function calls. Unlike traditional container-based sandboxes, Monty boasts startup times under a microsecond, allowing for near-instantaneous execution loops necessary for real-time agentic workflows. It supports a subset of modern Python, including type hints and basic standard libraries, providing just enough functionality for an AI to express its logic safely without risking the underlying system.

Developers building AI agents and coding assistants who need a fast, secure, and controllable environment to execute LLM-generated Python code.

  • Microsecond startup: Eliminates the latency of container-based sandboxing, executing code almost instantly.
  • Secure isolation: Completely blocks native access to the filesystem, network, and environment variables.
  • Host function bridging: Allows developers to expose only specific, safe functions from the host environment to the agent.
  • Resource constraints: Tracks memory usage and execution time, automatically terminating code that exceeds preset limits.
  • Interpreter snapshotting: Enables saving the execution state to a file or database, allowing agents to resume interrupted workflows.

Where teams use it

Programmatic tool calling

AI agents use the interpreter to write and execute Python scripts dynamically rather than relying on predefined API tools.

Safe code execution

Security teams use the sandbox to execute potentially untrusted code generated by LLMs without risking the host machine.

Real-time agent workflows

Developer tools integrate the engine to allow rapid, iterative code generation and testing loops within a single session.

Stateful agent sessions

Systems use the snapshotting feature to pause an agent's execution, wait for user input, and resume exactly where it left off.

Getting started: uv add pydantic-monty

README

main branch

Monty

A secure Python sandbox, written in Rust, for code written by AI.

CI Codspeed Coverage PyPI NPM crates.io license Join Slack

Monty avoids the latency, complexity and cost of a container based sandbox for running LLM generated code. It comes in two forms: OSS Monty, the MIT licensed Python 3.14 sandbox you install as a package, and Full Monty, the commercial server that runs the same sandbox behind a WebSocket as a service.

A new OSS Monty sandbox takes under 1ms from a running pool (Full Monty: about 2ms) compared to around 1500ms for a sandbox service.

Filesystem, environment variables and network do not exist inside the sandbox: it reaches the host only through the functions and mounts you pass in.

Documentation: pydantic.dev/docs/monty

Install

uv add pydantic-monty        # Python
npm install @pydantic/monty  # JavaScript / TypeScript
cargo add monty              # Rust

The commercial Full Monty runs the same workers as a container image.

Example

The code string is what a model writes when asked how long a bar of chocolate could power a lightbulb:

from pydantic_monty import Monty

code = """
kcal = nutrition('chocolate bar')['kcal']
hours = kcal * 4184 / (bulb_watts * 3600)
print(f'a chocolate bar powers a {bulb_watts} W bulb for {hours:.1f} hours')
"""

with Monty() as pool:
    with pool.checkout() as session:
        session.feed_run(
            code,
            inputs={'bulb_watts': 10},
            external_lookup={'nutrition': lambda food: {'kcal': 230}},
        )
        #> a chocolate bar powers a 10 W bulb for 26.7 hours

nutrition ran on the host and the sandbox saw only its return value.

Documentation

Monty runs Code Mode in Pydantic AI. Community bindings: gomonty (Go) and dart_monty (Dart / Flutter).

Part of the Pydantic Stack

The Pydantic Stack is everything you need to ship production-grade AI agents:

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all

Releases and announcements

33 total
  1. v1.0.0 - 2026-09-25v1.0.0Sep 25, 2026

    ## What's Changed * Drop the experimental framing ahead of v1 by @rewitt94 in https://github.com/pydantic/monty/pull/811 * Percent formatting: `'...' % foo` and `b'...' % bar` by @samuelcolvin in https://github.com/pydantic/monty/pull/825 * fix flakey js test by @samuelcolvin in https://github.com/pydantic/monty/pull/826 * Implement the `format()` builtin by @samuelcolvin in https://github.com/pydantic/monty/pull/827 * Answer `date.today()` / `datetime.now()` in standard execution by @rewitt94 in https://github.com/pydantic/monty/pull/812 * Implement remaining math aggregation functions and `fma` by @samuelcolvin in https://github.com/pydantic/monty/pull/831 * fix telemetry context propagation by @davidhewitt in https://github.com/pydantic/monty/pull/830 * Support `print(file=sys.stderr)` by @rewitt94 in https://github.com/pydantic/monty/pull/818 * Finish `binascii` with the uu, quoted-printable and CRC-16 conversions by @rewitt94 in https://github.com/pydantic/monty/pull/816 * Build Python 3.14t wheels by @Kludex in https://github.com/pydantic/monty/pull/832 * make it possible to run smoke test from npm by @davidhewitt in https://github.com/pydantic/monty/pull/619 * fi

  2. v1.0.0-beta.3 - 2026-09-24v1.0.0-beta.3Sep 24, 2026

    ## What's Changed * Switch dumps to use `CBOR` instead of `postcard` by @samuelcolvin in https://github.com/pydantic/monty/pull/913 * Give hot dumped types one-letter serde names by @samuelcolvin in https://github.com/pydantic/monty/pull/922 * Report the source position of every suspension by @samuelcolvin in https://github.com/pydantic/monty/pull/909 * Bump version to v1.0.0-beta.3 by @samuelcolvin in https://github.com/pydantic/monty/pull/927 **Full Changelog**: https://github.com/pydantic/monty/compare/v1.0.0-beta.2...v1.0.0-beta.3

  3. v1.0.0-beta.2 - 2026-09-21v1.0.0-beta.2Sep 21, 2026

    ## What's Changed * bump to b2, fix `monty-proto`'s self dev-dependency by @samuelcolvin in https://github.com/pydantic/monty/pull/908 ## v1.0.0-beta.1 - 2026-09-21 (`v1.0.0-beta.1` released failed on crates.io, hence beta 2 release) * Drop the experimental framing ahead of v1 by @rewitt94 in https://github.com/pydantic/monty/pull/811 * Percent formatting: `'...' % foo` and `b'...' % bar` by @samuelcolvin in https://github.com/pydantic/monty/pull/825 * fix flakey js test by @samuelcolvin in https://github.com/pydantic/monty/pull/826 * Implement the `format()` builtin by @samuelcolvin in https://github.com/pydantic/monty/pull/827 * Answer `date.today()` / `datetime.now()` in standard execution by @rewitt94 in https://github.com/pydantic/monty/pull/812 * Implement remaining math aggregation functions and `fma` by @samuelcolvin in https://github.com/pydantic/monty/pull/831 * fix telemetry context propagation by @davidhewitt in https://github.com/pydantic/monty/pull/830 * Support `print(file=sys.stderr)` by @rewitt94 in https://github.com/pydantic/monty/pull/818 * Finish `binascii` with the uu, quoted-printable and CRC-16 conversions by @rewitt94 in https://github.com

  4. v1.0.0-beta.1 - 2026-09-21v1.0.0-beta.1Sep 21, 2026

    ## What's Changed * Drop the experimental framing ahead of v1 by @rewitt94 in https://github.com/pydantic/monty/pull/811 * Percent formatting: `'...' % foo` and `b'...' % bar` by @samuelcolvin in https://github.com/pydantic/monty/pull/825 * fix flakey js test by @samuelcolvin in https://github.com/pydantic/monty/pull/826 * Implement the `format()` builtin by @samuelcolvin in https://github.com/pydantic/monty/pull/827 * Answer `date.today()` / `datetime.now()` in standard execution by @rewitt94 in https://github.com/pydantic/monty/pull/812 * Implement remaining math aggregation functions and `fma` by @samuelcolvin in https://github.com/pydantic/monty/pull/831 * fix telemetry context propagation by @davidhewitt in https://github.com/pydantic/monty/pull/830 * Support `print(file=sys.stderr)` by @rewitt94 in https://github.com/pydantic/monty/pull/818 * Finish `binascii` with the uu, quoted-printable and CRC-16 conversions by @rewitt94 in https://github.com/pydantic/monty/pull/816 * Build Python 3.14t wheels by @Kludex in https://github.com/pydantic/monty/pull/832 * make it possible to run smoke test from npm by @davidhewitt in https://github.com/pydantic/monty/pull/619 * fi

  5. v0.0.23 - 2026-09-05v0.0.23Sep 5, 2026

    ## What's Changed * Debounce print output in the worker by @rewitt94 in https://github.com/pydantic/monty/pull/809 * Docs improvements by @samuelcolvin in https://github.com/pydantic/monty/pull/813 * Define snapshotting on the alternatives page and fix the #813 review findings by @samuelcolvin in https://github.com/pydantic/monty/pull/817 * Link Python and Rust types in the docs to their API pages by @samuelcolvin in https://github.com/pydantic/monty/pull/820 * Add `itertools` adaptors: `accumulate`, `batched`, `zip_longest` by @rewitt94 in https://github.com/pydantic/monty/pull/779 * Implement str.format by @smigolsmigol in https://github.com/pydantic/monty/pull/775 * refactor telemetry bridge to receive language-specific otel components by @davidhewitt in https://github.com/pydantic/monty/pull/815 * bump to 0.0.23 by @davidhewitt in https://github.com/pydantic/monty/pull/823 **Full Changelog**: https://github.com/pydantic/monty/compare/v0.0.22...v0.0.23

Code frequency

additions and deletions
+59K-59KWeek of 2025-10-05: +0 linesWeek of 2025-10-05: -0 linesWeek of 2025-10-12: +0 linesWeek of 2025-10-12: -0 linesWeek of 2025-10-19: +0 linesWeek of 2025-10-19: -0 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: +5,533 linesWeek of 2025-11-16: -2,111 linesWeek of 2025-11-23: +10,050 linesWeek of 2025-11-23: -5,148 linesWeek of 2025-11-30: +7,140 linesWeek of 2025-11-30: -3,871 linesWeek of 2025-12-07: +13,333 linesWeek of 2025-12-07: -9,491 linesWeek of 2025-12-14: +19,385 linesWeek of 2025-12-14: -18,282 linesWeek of 2025-12-21: +9,677 linesWeek of 2025-12-21: -2,607 linesWeek of 2025-12-28: +11,366 linesWeek of 2025-12-28: -3,604 linesWeek of 2026-01-04: +10,943 linesWeek of 2026-01-04: -4,358 linesWeek of 2026-01-11: +27,197 linesWeek of 2026-01-11: -11,128 linesWeek of 2026-01-18: +22,352 linesWeek of 2026-01-18: -2,937 linesWeek of 2026-01-25: +16,515 linesWeek of 2026-01-25: -2,922 linesWeek of 2026-02-01: +14,740 linesWeek of 2026-02-01: -2,995 linesWeek of 2026-02-08: +4,408 linesWeek of 2026-02-08: -2,818 linesWeek of 2026-02-15: +7,258 linesWeek of 2026-02-15: -3,006 linesWeek of 2026-02-22: +4,393 linesWeek of 2026-02-22: -1,611 linesWeek of 2026-03-01: +10,502 linesWeek of 2026-03-01: -4,343 linesWeek of 2026-03-08: +15,760 linesWeek of 2026-03-08: -7,370 linesWeek of 2026-03-15: +1,673 linesWeek of 2026-03-15: -1,145 linesWeek of 2026-03-22: +16,848 linesWeek of 2026-03-22: -5,427 linesWeek of 2026-03-29: +11,366 linesWeek of 2026-03-29: -817 linesWeek of 2026-04-05: +1,607 linesWeek of 2026-04-05: -393 linesWeek of 2026-04-12: +13,079 linesWeek of 2026-04-12: -4,624 linesWeek of 2026-04-19: +2,485 linesWeek of 2026-04-19: -1,488 linesWeek of 2026-04-26: +1,811 linesWeek of 2026-04-26: -1,982 linesWeek of 2026-05-03: +3,201 linesWeek of 2026-05-03: -2,212 linesWeek of 2026-05-10: +4,073 linesWeek of 2026-05-10: -2,052 linesWeek of 2026-05-17: +3,791 linesWeek of 2026-05-17: -2,242 linesWeek of 2026-05-24: +22,493 linesWeek of 2026-05-24: -8,921 linesWeek of 2026-05-31: +667 linesWeek of 2026-05-31: -205 linesWeek of 2026-06-07: +2,460 linesWeek of 2026-06-07: -383 linesWeek of 2026-06-14: +23,686 linesWeek of 2026-06-14: -18,792 linesWeek of 2026-06-21: +5,329 linesWeek of 2026-06-21: -1,120 linesWeek of 2026-06-28: +23,493 linesWeek of 2026-06-28: -6,810 linesWeek of 2026-07-05: +18,505 linesWeek of 2026-07-05: -20,183 linesWeek of 2026-07-12: +9,187 linesWeek of 2026-07-12: -10,650 linesWeek of 2026-07-19: +27,798 linesWeek of 2026-07-19: -20,585 linesWeek of 2026-07-26: +25,031 linesWeek of 2026-07-26: -7,394 linesWeek of 2026-08-02: +22,050 linesWeek of 2026-08-02: -10,929 linesWeek of 2026-08-09: +7,999 linesWeek of 2026-08-09: -5,536 linesWeek of 2026-08-16: +7,504 linesWeek of 2026-08-16: -1,576 linesWeek of 2026-08-23: +17,239 linesWeek of 2026-08-23: -4,489 linesWeek of 2026-08-30: +40,041 linesWeek of 2026-08-30: -14,731 linesWeek of 2026-09-06: +11,655 linesWeek of 2026-09-06: -1,935 linesWeek of 2026-09-13: +59,048 linesWeek of 2026-09-13: -24,326 linesWeek of 2026-09-20: +15,900 linesWeek of 2026-09-20: -7,269 linesWeek of 2026-09-27: +0 linesWeek of 2026-09-27: -0 linesOct 5, 2025Sep 27, 2026
+610.6K lines added, -276.8K removed over the last year.

Commits per week

last 52 weeks
370Week of 2025-09-28: 0 commitsWeek 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: 22 commitsWeek of 2025-11-23: 35 commitsWeek of 2025-11-30: 12 commitsWeek of 2025-12-07: 13 commitsWeek of 2025-12-14: 4 commitsWeek of 2025-12-21: 9 commitsWeek of 2025-12-28: 12 commitsWeek of 2026-01-04: 12 commitsWeek of 2026-01-11: 31 commitsWeek of 2026-01-18: 20 commitsWeek of 2026-01-25: 17 commitsWeek of 2026-02-01: 23 commitsWeek of 2026-02-08: 16 commitsWeek of 2026-02-15: 29 commitsWeek of 2026-02-22: 11 commitsWeek of 2026-03-01: 13 commitsWeek of 2026-03-08: 19 commitsWeek of 2026-03-15: 7 commitsWeek of 2026-03-22: 14 commitsWeek of 2026-03-29: 7 commitsWeek of 2026-04-05: 7 commitsWeek of 2026-04-12: 26 commitsWeek of 2026-04-19: 15 commitsWeek of 2026-04-26: 8 commitsWeek of 2026-05-03: 12 commitsWeek of 2026-05-10: 15 commitsWeek of 2026-05-17: 11 commitsWeek of 2026-05-24: 24 commitsWeek of 2026-05-31: 3 commitsWeek of 2026-06-07: 1 commitsWeek of 2026-06-14: 2 commitsWeek of 2026-06-21: 8 commitsWeek of 2026-06-28: 14 commitsWeek of 2026-07-05: 20 commitsWeek of 2026-07-12: 5 commitsWeek of 2026-07-19: 35 commitsWeek of 2026-07-26: 20 commitsWeek of 2026-08-02: 27 commitsWeek of 2026-08-09: 23 commitsWeek of 2026-08-16: 16 commitsWeek of 2026-08-23: 24 commitsWeek of 2026-08-30: 25 commitsWeek of 2026-09-06: 18 commitsWeek of 2026-09-13: 37 commitsWeek of 2026-09-20: 27 commitsSep 28, 2025Sep 20, 2026
749 commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 0 commitsSun 1:00 — 3 commitsSun 2:00 — 1 commitsSun 3:00 — 0 commitsSun 4:00 — 0 commitsSun 5:00 — 0 commitsSun 6:00 — 0 commitsSun 7:00 — 1 commitsSun 8:00 — 0 commitsSun 9:00 — 7 commitsSun 10:00 — 6 commitsSun 11:00 — 3 commitsSun 12:00 — 8 commitsSun 13:00 — 6 commitsSun 14:00 — 4 commitsSun 15:00 — 8 commitsSun 16:00 — 5 commitsSun 17:00 — 13 commitsSun 18:00 — 8 commitsSun 19:00 — 9 commitsSun 20:00 — 3 commitsSun 21:00 — 3 commitsSun 22:00 — 12 commitsSun 23:00 — 8 commitsMon 0:00 — 7 commitsMon 1:00 — 1 commitsMon 2:00 — 0 commitsMon 3:00 — 0 commitsMon 4:00 — 0 commitsMon 5:00 — 1 commitsMon 6:00 — 0 commitsMon 7:00 — 2 commitsMon 8:00 — 1 commitsMon 9:00 — 10 commitsMon 10:00 — 7 commitsMon 11:00 — 11 commitsMon 12:00 — 12 commitsMon 13:00 — 9 commitsMon 14:00 — 12 commitsMon 15:00 — 13 commitsMon 16:00 — 6 commitsMon 17:00 — 4 commitsMon 18:00 — 6 commitsMon 19:00 — 2 commitsMon 20:00 — 12 commitsMon 21:00 — 5 commitsMon 22:00 — 8 commitsMon 23:00 — 4 commitsTue 0:00 — 4 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 0 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 1 commitsTue 7:00 — 1 commitsTue 8:00 — 3 commitsTue 9:00 — 2 commitsTue 10:00 — 17 commitsTue 11:00 — 8 commitsTue 12:00 — 10 commitsTue 13:00 — 13 commitsTue 14:00 — 8 commitsTue 15:00 — 8 commitsTue 16:00 — 6 commitsTue 17:00 — 8 commitsTue 18:00 — 5 commitsTue 19:00 — 8 commitsTue 20:00 — 8 commitsTue 21:00 — 8 commitsTue 22:00 — 5 commitsTue 23:00 — 3 commitsWed 0:00 — 4 commitsWed 1:00 — 0 commitsWed 2:00 — 1 commitsWed 3:00 — 0 commitsWed 4:00 — 0 commitsWed 5:00 — 3 commitsWed 6:00 — 0 commitsWed 7:00 — 1 commitsWed 8:00 — 4 commitsWed 9:00 — 6 commitsWed 10:00 — 11 commitsWed 11:00 — 5 commitsWed 12:00 — 8 commitsWed 13:00 — 9 commitsWed 14:00 — 7 commitsWed 15:00 — 9 commitsWed 16:00 — 5 commitsWed 17:00 — 6 commitsWed 18:00 — 8 commitsWed 19:00 — 6 commitsWed 20:00 — 7 commitsWed 21:00 — 5 commitsWed 22:00 — 0 commitsWed 23:00 — 1 commitsThu 0:00 — 2 commitsThu 1:00 — 1 commitsThu 2:00 — 1 commitsThu 3:00 — 3 commitsThu 4:00 — 1 commitsThu 5:00 — 1 commitsThu 6:00 — 0 commitsThu 7:00 — 1 commitsThu 8:00 — 1 commitsThu 9:00 — 3 commitsThu 10:00 — 6 commitsThu 11:00 — 7 commitsThu 12:00 — 7 commitsThu 13:00 — 11 commitsThu 14:00 — 12 commitsThu 15:00 — 6 commitsThu 16:00 — 8 commitsThu 17:00 — 7 commitsThu 18:00 — 10 commitsThu 19:00 — 5 commitsThu 20:00 — 8 commitsThu 21:00 — 5 commitsThu 22:00 — 2 commitsThu 23:00 — 1 commitsFri 0:00 — 3 commitsFri 1:00 — 1 commitsFri 2:00 — 0 commitsFri 3:00 — 0 commitsFri 4:00 — 1 commitsFri 5:00 — 0 commitsFri 6:00 — 0 commitsFri 7:00 — 1 commitsFri 8:00 — 5 commitsFri 9:00 — 4 commitsFri 10:00 — 11 commitsFri 11:00 — 12 commitsFri 12:00 — 14 commitsFri 13:00 — 9 commitsFri 14:00 — 4 commitsFri 15:00 — 7 commitsFri 16:00 — 17 commitsFri 17:00 — 7 commitsFri 18:00 — 4 commitsFri 19:00 — 2 commitsFri 20:00 — 2 commitsFri 21:00 — 5 commitsFri 22:00 — 2 commitsFri 23:00 — 4 commitsSat 0:00 — 0 commitsSat 1:00 — 0 commitsSat 2:00 — 1 commitsSat 3:00 — 0 commitsSat 4:00 — 1 commitsSat 5:00 — 1 commitsSat 6:00 — 4 commitsSat 7:00 — 1 commitsSat 8:00 — 8 commitsSat 9:00 — 4 commitsSat 10:00 — 2 commitsSat 11:00 — 6 commitsSat 12:00 — 7 commitsSat 13:00 — 5 commitsSat 14:00 — 4 commitsSat 15:00 — 6 commitsSat 16:00 — 6 commitsSat 17:00 — 5 commitsSat 18:00 — 7 commitsSat 19:00 — 8 commitsSat 20:00 — 10 commitsSat 21:00 — 7 commitsSat 22:00 — 8 commitsSat 23:00 — 4 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.
DateListRankStars gained
Feb 10, 2026daily#20+168
Feb 9, 2026daily#4+390
Feb 8, 2026daily#10+266
Feb 7, 2026daily#7+312
Feb 6, 2026daily#6+328
  • donnemartin/system-design-primer

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

    373.2K stars · Python

  • practical-tutorials/project-based-learning

    Curated list of project-based tutorials

    285.8K stars · Python

  • tensorflow/tensorflow

    An Open Source Machine Learning Framework for Everyone

    200.7K stars · C++

  • yt-dlp/yt-dlp

    A feature-rich command-line audio/video downloader

    195.5K stars · Python

  • ultraworkers/claw-code

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

    195.2K stars · Rust

  • Significant-Gravitas/AutoGPT

    AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.

    187.7K stars · Python