earthtojake/text-to-cadPublic

Give your agent CAD superpowers.

AI summary: An AI-powered tool that generates programmatic CAD files directly from natural language text prompts.

Stars
16.8K
+248 today
Forks
1.7K
Watchers
91
Open issues
1
Open PRs
23
Contributors
~26
Commits
1.4K
Branches
269

PythonMITCreated Apr 22, 2026Last push todayLatest release v0.7.6+400 stars this week+2.5K this month

Quick answers

What is text-to-cad?
An AI-powered tool that generates programmatic CAD files directly from natural language text prompts.
What does text-to-cad do?
Text-to-CAD is an innovative application that allows users to generate Computer-Aided Design (CAD) models simply by describing the desired object using natural language text prompts. It leverages Large Language Models to interpret the text and construct the 3D geometry programmatically, typically outputting code that defines the shape. This approach bridges the gap between conceptualization and 3D modeling, enabling rapid prototyping without requiring extensive knowledge of complex, graphical CAD software interfaces. It exports generated models into standardized formats like STEP, STL, and GLB, facilitating downstream fabrication and simulation.
Who is text-to-cad for?
Makers, designers, engineers, and developers who want to quickly generate 3D models and prototypes programmatically without spending hours manually modeling in complex GUI-based CAD software.
How do I get started with text-to-cad?
npx skills install earthtojake/text-to-cad
How popular is text-to-cad on GitHub?
earthtojake/text-to-cad has 16,785 stars and 1,736 forks on GitHub, and gained 400 stars in the last 7 days.
What license does text-to-cad use?
earthtojake/text-to-cad is released under the MIT license.

Star history

since Jul 27, 2026
05K10K15KJul 2026Aug 2026Sep 2026Oct 2026
16.8K stars as of Oct 4, 2026. Measured daily since Jul 27, 2026; GitHub no longer exposes earlier star timestamps.

Contribution activity

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

Signals and awards

derived from tracked data
  • Widely adopted

    16,785 stars

  • Very active

    1,059 commits in 52 weeks

  • Permissive license

    MIT

  • Continuous integration

    Automated checks passing

  • Repeat trending

    18 trending appearances

What text-to-cad does

Text-to-CAD is an innovative application that allows users to generate Computer-Aided Design (CAD) models simply by describing the desired object using natural language text prompts. It leverages Large Language Models to interpret the text and construct the 3D geometry programmatically, typically outputting code that defines the shape. This approach bridges the gap between conceptualization and 3D modeling, enabling rapid prototyping without requiring extensive knowledge of complex, graphical CAD software interfaces. It exports generated models into standardized formats like STEP, STL, and GLB, facilitating downstream fabrication and simulation.

Makers, designers, engineers, and developers who want to quickly generate 3D models and prototypes programmatically without spending hours manually modeling in complex GUI-based CAD software.

  • Natural Language Interface: Generate CAD models by describing them using everyday text prompts.
  • LLM Integration: Utilize Large Language Models to accurately interpret spatial descriptions and design intent.
  • Programmatic CAD Generation: Translate LLM output into precise programmatic instructions to define 3D geometries.
  • Rapid Prototyping: Significantly accelerate the initial design phase by automating the creation of basic 3D structures.
  • Code-Based Output: Produce designs in a programmatic format, allowing for version control and precise parametric adjustments.
  • Multi-Format Export: Export designs to standard CAD formats like STEP, STL, 3MF, and GLB for universal compatibility.

Where teams use it

Rapid Concept Generation

Quickly visualizing a product idea by typing a description and instantly receiving a basic programmatic 3D model.

Accessible 3D Modeling

Enabling individuals without formal CAD training to create custom 3D objects for personal projects by simply describing them.

Design Brainstorming

Generating multiple variations of a design rapidly by tweaking the text prompts to explore different concepts.

Automated Handoffs

Automatically generating DXF files or valid G-code from natural language prompts to stream straight into fabrication equipment.

Getting started: npx skills install earthtojake/text-to-cad

README

main branch
Demo of the CAD skill generating and previewing CAD geometry
text-to-cad

Give your agent CAD superpowers.

Docs

Tests Join Discord GitHub stars License: MIT Follow @earthtojake Python STEP STL 3MF URDF SDF SRDF

text-to-cad

text-to-cad is a library of agent skills for generating, inspecting, sourcing, slicing, and handing off CAD and robot-description artifacts from local project files.

CAD skill demo showing generated geometry in CAD Viewer CAD URDF skill demo showing robot description output in CAD Viewer URDF SRDF MoveIt2 skill demo showing inverse kinematics in CAD Viewer SRDF / MoveIt2

🧰 Skills

Install the library to give agents focused workflows for CAD, fabrication, robot description files, simulation, and local review.

Skill Summary Source
CAD Creates and edits CAD models from plain-language or image requests, with STEP as the main output along with options to export to STL, 3MF and GLB. skills/cad
step.parts Finds off-the-shelf STEP parts like screws, bearings, motors, and connectors. skills/step-parts
Engineering Drawing Dimensioned engineering drawings from a part, as a PDF: views, hidden lines, dimensions, hole callouts, title block. skills/engineering-drawing
DXF Creates 2D DXF drawings like profiles, templates, gaskets, and cut layouts from Python sources or CAD geometry. skills/dxf
URDF Writes robot structure files with links, joints, limits, inertials, and meshes. skills/urdf
SRDF Adds MoveIt planning groups, end effectors, poses, and collision rules to a URDF. skills/srdf
SDF Creates simulator models and worlds with frames, physics, sensors, and lights. skills/sdf
SendCutSend Checks DXF and STEP files before upload to SendCutSend. skills/sendcutsend
DfAM Check Measures mesh printability per process: wall thickness, overhangs, support volume, and build orientation. skills/dfam-check
DFM Reviews a part for sheet metal, CNC machining, or injection molding, with measured evidence and the cited rule behind every finding; measures draft, undercuts and projected area from a mesh. skills/dfm
G-code Slices supported mesh files into validated, printer-profiled FDM .gcode with real slicer CLIs. skills/gcode
Bambu Labs Dry-runs, uploads, and cautiously starts local Bambu Lab print jobs from validated .gcode. skills/bambu-labs

💻 Installation

Install or clone from main: it is the source tree, and every skill's requirements.txt pins the cadgen release it was published with. (models/, the fixture corpus, arrives as small LFS pointers and is not needed to use the skills.)

Skills

Install text-to-cad with the Skills CLI:

npx skills add earthtojake/text-to-cad

This is the preferred installation path. It installs the individual skills directly for supported agents.

Use the same command to update. add re-fetches the package and overwrites what is already installed, so it both refreshes existing skills and installs any skill added in a newer release. npx skills update only refreshes skills already in your lockfile, so it silently misses new ones — which matters here, because releases do add skills.

Neither command removes a skill that was retired upstream; drop one with npx skills remove <skill> if you need to. The retired cad-viewer skill is now covered by the CAD, DXF and robot-description skills; remove old standalone installs with npx skills remove cad-viewer. For local development symlinks, remove the old cad-viewer link manually: the install/uninstall scripts discover only skills still present in the checkout.

(npx skills install … still works — it is an undocumented alias for add.)

Plugins

Provider-native plugin installs are also available for Codex, Claude Code, and Grok Build:

# Codex (requires Codex 0.142.0 or newer)
codex plugin marketplace add earthtojake/text-to-cad
codex plugin add text-to-cad@earthtojake

Codex resolves this repository-root plugin only from 0.142.0 onward. On older versions the plugin is skipped silently and never appears in codex plugin list; upgrade with npm install -g @openai/codex@latest.

In the Codex app the plugin also brings the CAD viewer: CAD in the sidebar (recent models, and Open), a CAD tab beside each thread that the agent drives, and Open with CAD for model files. It runs locally through uv, which must be installed: after installing the plugin, restart the app, and its first start downloads the pinned runtime. The plugin's $cad-mcp-setup skill checks for uv and points you to its installer. To update, upgrade the earthtojake marketplace (Plugins › Manage › Marketplace, or codex plugin marketplace upgrade earthtojake) and restart the app: its first start downloads the new runtime. The marketplace was renamed from text-to-cad to earthtojake; if you added it before, remove the old one first (codex plugin marketplace remove text-to-cad).

# Claude Code
claude plugin marketplace add earthtojake/text-to-cad
claude plugin install text-to-cad@earthtojake

In Claude Desktop, CAD shows models in the chat: ask Claude to show one and it appears as a viewer card you can orbit, add to your prompt, and open full size; Claude can read what you selected and see what you see. It runs locally through uv: add the server to Claude Desktop's config (Settings > Developer > Edit Config), then restart the app. If Claude Desktop cannot find uvx, give its full path (which uvx). Each start runs the newest release, so restarting the app updates it.

{
  "mcpServers": {
    "cad": { "command": "uvx", "args": ["--from", "cadgen", "cadgen", "mcp"] }
  }
}

Grok Build uses the existing .claude-plugin/marketplace.json; there is no separate Grok plugin manifest.

# Grok Build
grok plugin install earthtojake/text-to-cad --trust
grok plugin enable text-to-cad

Restart your agent if newly installed skills do not appear. For local development, branch from main, open PRs against main, and follow CONTRIBUTING.md.

Windows 11: Smart App Control

The CAD kernel behind the cad, dxf, urdf, srdf and sdf skills is OCP, OpenCascade's Python binding, and its wheel ships an unsigned native module. Windows 11's Smart App Control blocks unsigned native code, so on a machine where it is on (the default on a fresh install) every cadgen command and import build123d fails with ImportError: DLL load failed while importing OCP, and Event Viewer records the refusal as Event ID 3077 under CodeIntegrity › Operational. cadgen doctor names this when it sees it.

Smart App Control has no per-app exception. Either turn it off (Settings › Privacy & security › Windows Security › App & browser control › Smart App Control settings; once off it can only be turned back on by reinstalling Windows) or run the CAD skills under WSL, where it does not apply. The wheel is built by the cadquery-ocp project, so signing it is not something this repository can do.

🛠️ Contributing

Branch from main and open PRs against main. For local contribution workflow, skill linking, and validation guidance, see CONTRIBUTING.md.

View on GitHub

Recent activity

commits and pull requests

Recent open issues

view all
  • Example

    #477 · 4d ago · by miguelangelmunozlmd-gif

Discussions

all 3

Releases and announcements

67 total
  1. v0.7.6v0.7.6Oct 1, 202620 downloads

    <!-- Release notes generated using configuration in .github/release.yml at v0.7.6 --> ## What's Changed ### Other Changes * cadgen: retire the old operation cache, and hold the store to a size cap by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/490 * CAD in agent apps: Codex tabs and Claude cards (cadgen mcp + apps/mcp) by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/476 * Release 0.7.6 by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/495 **Full Changelog**: https://github.com/earthtojake/text-to-cad/compare/v0.7.5...v0.7.6

  2. v0.7.5v0.7.5Oct 1, 202613 downloads

    <!-- Release notes generated using configuration in .github/release.yml at v0.7.5 --> ## What's Changed ### Other Changes * Hand the daemon's address and lock over together on restart by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/483 * cadgen: reach-based rebuilds, and caches only around a model run by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/478 * Release 0.7.5 by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/489 **Full Changelog**: https://github.com/earthtojake/text-to-cad/compare/v0.7.4...v0.7.5

  3. v0.7.4v0.7.4Sep 29, 202618 downloads

    <!-- Release notes generated using configuration in .github/release.yml at v0.7.4 --> ## What's Changed ### Other Changes * Move viewer instructions into CAD skills by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/469 * Adopt shaded block logos and CAD branding by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/471 * Fix renderer playback and orbit updates; add radial engine sample by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/470 * Refresh docs styling, navigation, and TEXT2CAD logo by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/472 * Release 0.7.4 by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/475 **Full Changelog**: https://github.com/earthtojake/text-to-cad/compare/v0.7.3...v0.7.4

  4. v0.7.3v0.7.3Sep 29, 202612 downloads

    <!-- Release notes generated using configuration in .github/release.yml at v0.7.3 --> ## What's Changed ### Other Changes * Mesh a hole through a curved wall without slivers or folds (#433) by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/444 * Release 0.7.3 by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/466 **Full Changelog**: https://github.com/earthtojake/text-to-cad/compare/v0.7.2...v0.7.3

  5. v0.7.2v0.7.2Sep 27, 202617 downloads

    <!-- Release notes generated using configuration in .github/release.yml at v0.7.2 --> ## What's Changed ### Other Changes * Viewer e2e: the camera tolerance is 1e-6 relative, above a mode switch's rounding by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/461 * Dependency batch: fourteen minor/patch bumps in one resolution, three majors held back by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/459 * Release 0.7.2 by @earthtojake in https://github.com/earthtojake/text-to-cad/pull/462 **Full Changelog**: https://github.com/earthtojake/text-to-cad/compare/v0.7.1...v0.7.2

Code frequency

additions and deletions
+796.4K-796.4KWeek of 2026-04-19: +48,113 linesWeek of 2026-04-19: -768 linesWeek of 2026-04-26: +58,722 linesWeek of 2026-04-26: -47,882 linesWeek of 2026-05-03: +20,079 linesWeek of 2026-05-03: -8,850 linesWeek of 2026-05-10: +91,091 linesWeek of 2026-05-10: -69,420 linesWeek of 2026-05-17: +64,986 linesWeek of 2026-05-17: -46,387 linesWeek of 2026-05-24: +796,360 linesWeek of 2026-05-24: -435,851 linesWeek of 2026-05-31: +39,437 linesWeek of 2026-05-31: -22,373 linesWeek of 2026-06-07: +85,203 linesWeek of 2026-06-07: -45,835 linesWeek of 2026-06-14: +24,600 linesWeek of 2026-06-14: -12,643 linesWeek of 2026-06-21: +61,458 linesWeek of 2026-06-21: -76,140 linesWeek of 2026-06-28: +43,526 linesWeek of 2026-06-28: -43,266 linesWeek of 2026-07-05: +58,079 linesWeek of 2026-07-05: -27,503 linesWeek of 2026-07-12: +0 linesWeek of 2026-07-12: -0 linesWeek of 2026-07-19: +12 linesWeek of 2026-07-19: -0 linesWeek of 2026-07-26: +8,998 linesWeek of 2026-07-26: -4,542 linesWeek of 2026-08-02: +83,440 linesWeek of 2026-08-02: -24,159 linesWeek of 2026-08-09: +322,618 linesWeek of 2026-08-09: -202,364 linesWeek of 2026-08-16: +12,968 linesWeek of 2026-08-16: -3,770 linesWeek of 2026-08-23: +5,699 linesWeek of 2026-08-23: -5,549 linesWeek of 2026-08-30: +324,733 linesWeek of 2026-08-30: -317,305 linesWeek of 2026-09-06: +569,783 linesWeek of 2026-09-06: -143,659 linesWeek of 2026-09-13: +92,100 linesWeek of 2026-09-13: -343,330 linesWeek of 2026-09-20: +0 linesWeek of 2026-09-20: -0 linesApr 19, 2026Sep 20, 2026
+2.8M lines added, -1.9M removed over the last year.

Commits per week

last 52 weeks
2010Week of 2025-10-05: 0 commitsWeek of 2025-10-12: 0 commitsWeek of 2025-10-19: 0 commitsWeek of 2025-10-26: 0 commitsWeek of 2025-11-02: 0 commitsWeek of 2025-11-09: 0 commitsWeek of 2025-11-16: 0 commitsWeek of 2025-11-23: 0 commitsWeek of 2025-11-30: 0 commitsWeek of 2025-12-07: 0 commitsWeek of 2025-12-14: 0 commitsWeek of 2025-12-21: 0 commitsWeek of 2025-12-28: 0 commitsWeek of 2026-01-04: 0 commitsWeek of 2026-01-11: 0 commitsWeek of 2026-01-18: 0 commitsWeek of 2026-01-25: 0 commitsWeek of 2026-02-01: 0 commitsWeek of 2026-02-08: 0 commitsWeek of 2026-02-15: 0 commitsWeek of 2026-02-22: 0 commitsWeek of 2026-03-01: 0 commitsWeek of 2026-03-08: 0 commitsWeek of 2026-03-15: 0 commitsWeek of 2026-03-22: 0 commitsWeek of 2026-03-29: 0 commitsWeek of 2026-04-05: 0 commitsWeek of 2026-04-12: 0 commitsWeek of 2026-04-19: 10 commitsWeek of 2026-04-26: 6 commitsWeek of 2026-05-03: 1 commitsWeek of 2026-05-10: 9 commitsWeek of 2026-05-17: 12 commitsWeek of 2026-05-24: 36 commitsWeek of 2026-05-31: 26 commitsWeek of 2026-06-07: 72 commitsWeek of 2026-06-14: 27 commitsWeek of 2026-06-21: 84 commitsWeek of 2026-06-28: 23 commitsWeek of 2026-07-05: 100 commitsWeek of 2026-07-12: 0 commitsWeek of 2026-07-19: 1 commitsWeek of 2026-07-26: 34 commitsWeek of 2026-08-02: 85 commitsWeek of 2026-08-09: 139 commitsWeek of 2026-08-16: 44 commitsWeek of 2026-08-23: 29 commitsWeek of 2026-08-30: 12 commitsWeek of 2026-09-06: 80 commitsWeek of 2026-09-13: 201 commitsWeek of 2026-09-20: 3 commitsWeek of 2026-09-27: 25 commitsOct 5, 2025Sep 27, 2026
1.1K commits in the last 52 weeks.

When work happens

weekday and hour
SunMonTueWedThuFriSat036912151821Sun 0:00 — 13 commitsSun 1:00 — 6 commitsSun 2:00 — 4 commitsSun 3:00 — 1 commitsSun 4:00 — 2 commitsSun 5:00 — 3 commitsSun 6:00 — 0 commitsSun 7:00 — 0 commitsSun 8:00 — 2 commitsSun 9:00 — 0 commitsSun 10:00 — 0 commitsSun 11:00 — 2 commitsSun 12:00 — 6 commitsSun 13:00 — 10 commitsSun 14:00 — 15 commitsSun 15:00 — 15 commitsSun 16:00 — 16 commitsSun 17:00 — 23 commitsSun 18:00 — 4 commitsSun 19:00 — 7 commitsSun 20:00 — 4 commitsSun 21:00 — 9 commitsSun 22:00 — 7 commitsSun 23:00 — 7 commitsMon 0:00 — 9 commitsMon 1:00 — 7 commitsMon 2:00 — 6 commitsMon 3:00 — 1 commitsMon 4:00 — 1 commitsMon 5:00 — 0 commitsMon 6:00 — 0 commitsMon 7:00 — 0 commitsMon 8:00 — 0 commitsMon 9:00 — 1 commitsMon 10:00 — 0 commitsMon 11:00 — 3 commitsMon 12:00 — 5 commitsMon 13:00 — 2 commitsMon 14:00 — 3 commitsMon 15:00 — 5 commitsMon 16:00 — 12 commitsMon 17:00 — 4 commitsMon 18:00 — 4 commitsMon 19:00 — 7 commitsMon 20:00 — 8 commitsMon 21:00 — 5 commitsMon 22:00 — 8 commitsMon 23:00 — 13 commitsTue 0:00 — 5 commitsTue 1:00 — 0 commitsTue 2:00 — 0 commitsTue 3:00 — 1 commitsTue 4:00 — 0 commitsTue 5:00 — 0 commitsTue 6:00 — 0 commitsTue 7:00 — 0 commitsTue 8:00 — 0 commitsTue 9:00 — 0 commitsTue 10:00 — 0 commitsTue 11:00 — 4 commitsTue 12:00 — 6 commitsTue 13:00 — 4 commitsTue 14:00 — 15 commitsTue 15:00 — 10 commitsTue 16:00 — 12 commitsTue 17:00 — 13 commitsTue 18:00 — 16 commitsTue 19:00 — 53 commitsTue 20:00 — 24 commitsTue 21:00 — 17 commitsTue 22:00 — 18 commitsTue 23:00 — 9 commitsWed 0:00 — 14 commitsWed 1:00 — 13 commitsWed 2:00 — 4 commitsWed 3:00 — 0 commitsWed 4:00 — 1 commitsWed 5:00 — 0 commitsWed 6:00 — 0 commitsWed 7:00 — 0 commitsWed 8:00 — 0 commitsWed 9:00 — 7 commitsWed 10:00 — 5 commitsWed 11:00 — 10 commitsWed 12:00 — 12 commitsWed 13:00 — 13 commitsWed 14:00 — 24 commitsWed 15:00 — 8 commitsWed 16:00 — 17 commitsWed 17:00 — 22 commitsWed 18:00 — 12 commitsWed 19:00 — 21 commitsWed 20:00 — 13 commitsWed 21:00 — 13 commitsWed 22:00 — 4 commitsWed 23:00 — 5 commitsThu 0:00 — 15 commitsThu 1:00 — 8 commitsThu 2:00 — 2 commitsThu 3:00 — 8 commitsThu 4:00 — 2 commitsThu 5:00 — 0 commitsThu 6:00 — 0 commitsThu 7:00 — 0 commitsThu 8:00 — 0 commitsThu 9:00 — 0 commitsThu 10:00 — 5 commitsThu 11:00 — 5 commitsThu 12:00 — 5 commitsThu 13:00 — 6 commitsThu 14:00 — 12 commitsThu 15:00 — 8 commitsThu 16:00 — 16 commitsThu 17:00 — 12 commitsThu 18:00 — 6 commitsThu 19:00 — 2 commitsThu 20:00 — 6 commitsThu 21:00 — 9 commitsThu 22:00 — 9 commitsThu 23:00 — 8 commitsFri 0:00 — 8 commitsFri 1:00 — 2 commitsFri 2:00 — 5 commitsFri 3:00 — 4 commitsFri 4:00 — 2 commitsFri 5:00 — 3 commitsFri 6:00 — 1 commitsFri 7:00 — 0 commitsFri 8:00 — 0 commitsFri 9:00 — 2 commitsFri 10:00 — 2 commitsFri 11:00 — 9 commitsFri 12:00 — 9 commitsFri 13:00 — 9 commitsFri 14:00 — 9 commitsFri 15:00 — 5 commitsFri 16:00 — 6 commitsFri 17:00 — 6 commitsFri 18:00 — 4 commitsFri 19:00 — 7 commitsFri 20:00 — 6 commitsFri 21:00 — 7 commitsFri 22:00 — 7 commitsFri 23:00 — 9 commitsSat 0:00 — 7 commitsSat 1:00 — 6 commitsSat 2:00 — 12 commitsSat 3:00 — 0 commitsSat 4:00 — 0 commitsSat 5:00 — 1 commitsSat 6:00 — 1 commitsSat 7:00 — 0 commitsSat 8:00 — 0 commitsSat 9:00 — 0 commitsSat 10:00 — 2 commitsSat 11:00 — 4 commitsSat 12:00 — 4 commitsSat 13:00 — 4 commitsSat 14:00 — 6 commitsSat 15:00 — 13 commitsSat 16:00 — 13 commitsSat 17:00 — 7 commitsSat 18:00 — 5 commitsSat 19:00 — 8 commitsSat 20:00 — 6 commitsSat 21:00 — 1 commitsSat 22:00 — 3 commitsSat 23:00 — 6 commits
Commit volume by weekday and hour (UTC). Larger dots mean more commits.

Who is committing

last 52 weeks
Maintainer commits1,082 (77%)
Community commits322 (23%)

1,404 commits in total over the last year.

DateListRankStars gained
Oct 4, 2026daily#3+75
Sep 16, 2026weekly#16+1,194
Sep 15, 2026weekly#16+1,194
Sep 14, 2026weekly#14+1,054
Sep 13, 2026weekly#15+1,011
Sep 12, 2026weekly#14+1,071
Sep 10, 2026daily#4+97
Sep 9, 2026daily#4+97
Aug 5, 2026weekly#14+1,908
Aug 4, 2026weekly#14+1,908
Aug 3, 2026weekly#12+2,063
Aug 2, 2026weekly#13+2,009
Aug 1, 2026weekly#12+1,901
Jul 31, 2026weekly#17+2,242
Jul 30, 2026weekly#17+2,242