awesome-machine-learning stopped merging pull requests and started reading email
A curated list of awesome Machine Learning frameworks, libraries and software.
At a glance
- What is it?
- A curated list of machine learning frameworks and libraries organised by programming language, with books, courses, events and meetups split into five sibling files. Deprecation is decided by a two to three year inactivity rule, and since April 2026 contributions are taken by email rather than by pull request.
- Who is it for?
- Use awesome-machine-learning as a map of what exists per language, and treat every entry as a starting point rather than a recommendation, because the list states its own deprecation rule and that rule is a proxy a project can fail without being abandoned. Do not use it as a curriculum, a comparison or a source you can cite, since it has no releases, no homepage and a licence field the platform cannot classify.
- Can I use it commercially?
- Check first. The repository uses a licence we do not classify automatically, so read its LICENSE file before any commercial use.
- Is it still maintained?
- Yes. The repository received new commits within the last day.
- What is it written in?
- Mainly Python, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on September 30, 2026, and from our analysis. They are not legal advice.
Editorial analysis
The pull request channel was closed to generated submissions in April 2026
The most useful thing in this repository is a warning, and it sits at the top of the page under a heading about pull requests. It says that as of April 2026, too many pull requests are being generated by language models, that this is no longer fun or manageable, and that anyone who wants to contribute should email the maintainer, at an address written in obfuscated form, to prove they are human and supply a link to their pull request, which will then be merged. The consequence is concrete and immediate. The ordinary way to add a library, open a pull request, no longer works, and a tool that automates the pull request will be ignored by design rather than by oversight. The cost lands on freshness: the list's continuing accuracy now runs through one person's inbox, which is a single point of failure that did not exist when the list was younger and the submission volume was lower.
Deprecation is decided by a two to three year inactivity rule
The page states its own removal criteria, which is more than most lists of this kind do. A listed repository should be deprecated in two cases: when its owner explicitly says the library is not maintained, and when it has not been committed to for a long time, given as two to three years. The first criterion is a judgement by the owner and is as good as anything. The second is a proxy, and proxies fail at the edges in both directions. A mature library that ships two releases a year and a large test suite can sit under the threshold for a long time and be dropped while it is entirely healthy. Conversely a project that commits often without releasing anything stays listed. So for anyone using the list, the useful reading is that a two-year-old entry is a prompt to check the project's own repository rather than a statement about it, and the two criteria together mean the list can lag reality in both directions at once.
The organising axis is the programming language, not the problem
The main file is indexed by language, and the table of contents makes the shape of that decision visible. Sections run from APL, C, C++, Common Lisp, Clojure, Crystal, CUDA PTX, Elixir, Erlang and Fortran through Go, Haskell, Java, JavaScript, Julia, Kotlin, Lua, Matlab, .NET and Objective C, and each is subdivided by task, with headings like general-purpose machine learning, computer vision, speech recognition, natural language processing, sequence analysis, gesture detection, reinforcement learning, deep learning, data analysis, data visualisation, interop and demos and scripts. A second top-level heading covers tools. The consequence is that the list answers the question what exists in language X, which is not the question most people arrive with. Someone choosing a tool for a problem has to decide the language first, and a library with bindings for several languages appears under one of them, so a Python user can pass an entire toolset without seeing a Rust binding sitting three sections away.
Five sibling files hold the books, courses, events and meetups
The famous file is not the resource, and the page is clear about where the rest lives. It points to a separate file for free machine learning books available for download, another for professional machine learning events, another for mostly free online courses, another for blogs and newsletters on data science and machine learning, and another for free-to-attend meetups and local events. The repository also carries a curriculum file that the visible text does not discuss. The consequence is that the six documents have independent update cycles and no stated rule about whether a resource may appear in more than one of them, so the same book can be listed as both a course and a reading with two different descriptions and two different dates. For anyone building a study plan from this, that is the failure mode to expect: not a wrong link, but a resource described twice and maintained once.
No releases, no homepage, and a licence the platform could not classify
The repository has no GitHub releases at all, no recorded homepage, and no tags, while the last push to the master branch was on 2026-09-22. Its licence field is also unclassified: the platform's own detection did not identify a licence, even though a LICENSE file sits at the root. Three consequences follow, and they are all about citation rather than about content. You cannot reference a version of this list, so any recommendation built on it has to carry the commit date instead, and a link given today is a different document next year. A repository that reports no licence is the kind of thing a compliance check flags, and the answer has to be found by opening the file. And the absence of a homepage means the list is the whole product, with no documentation site explaining how entries are chosen beyond the two deprecation criteria.
The language badge says Python and the repository is prose
The detected primary language for this repository is Python, and the reason is a single directory called scripts. Everything a reader actually consumes is markdown: the main list, the books, the courses, the events, the meetups and the curriculum. The consequence is a small but persistent category error. Language-based search, and any tooling that sorts repositories by language, files this next to Python machine learning libraries rather than with documentation and link collections, which is where a reader looking for it actually expects to find it. It also misleads about the maintenance burden, since nobody is writing Python here. The one piece of automation in the tree is a scripts directory whose purpose the visible material does not describe, so even the reason for the badge is not documented.
A curriculum file exists, and the questions arriving are definition questions
It is worth looking at what people actually ask about this repository, because the answers are not the ones the repository is built to give. The questions attached to it are of the form of what counts as AI versus machine learning, whether a particular named person is a data scientist, whether the field can be learned in a few months, and what examples of machine learning projects exist. None of those is a question a language-indexed link list answers, and none is a question about curation. Meanwhile a curriculum file does sit in the repository, unreferenced in the visible text, which means the most-asked question and the closest available answer are in the same place and not connected. The practical consequence is that the list's star count measures how often people land on the URL, not how well it serves them, and it should be read as a directory of starting points rather than as an answer to any of the questions that bring traffic to it.
Editorial conclusion
Use awesome-machine-learning as a map of what exists per language, and treat every entry as a starting point rather than a recommendation, because the list states its own deprecation rule and that rule is a proxy a project can fail without being abandoned. Do not use it as a curriculum, a comparison or a source you can cite, since it has no releases, no homepage and a licence field the platform cannot classify. Three things to do instead. Read the LICENSE file directly rather than trusting the repository page. Record the commit date alongside anything you take from it, because there is no version to pin. And look for the narrower sibling list before you commit an afternoon to scrolling, since focused lists exist for deep learning, MLOps, interpretability and security, and this one does not cross-reference them.
Frequently asked questions
What is awesome-machine-learning?
It is a curated list of machine learning frameworks, libraries and software, organised by programming language and then subdivided by task such as computer vision, speech recognition, natural language processing and reinforcement learning. The format is inspired by an earlier list for PHP, and the repository links back to the original awesome list.
How do I add a library to awesome-machine-learning?
Not by pull request. The page states that as of April 2026 too many pull requests were being generated by language models, that this was no longer manageable, and that contributors should email the maintainer, at an address given in obfuscated form, to prove they are human and supply a link to their pull request.
When does awesome-machine-learning remove a project?
Two stated criteria. A listed repository should be deprecated when its owner explicitly says the library is not maintained, and when it has not been committed to for a long time, given as two to three years. The second is an inactivity rule rather than a judgement, so an old entry is a prompt to check the project rather than a verdict on it.
Does awesome-machine-learning have books and courses?
Yes, in separate files rather than in the main list. There are dedicated files for free machine learning books available for download, mostly free online courses, professional machine learning events, blogs and newsletters, and free-to-attend meetups. The repository also contains a curriculum file that the main page does not reference.