From the experiment

Do coding agents recommend django-axes?

django-axes was chosen in 5% of 280 judged bot protection sessions, ranking third. Measured with Claude Code, Codex, Cursor, Grok Build CLI and Muse Code.

Published October 14, 2026 Read as Markdown

django-axes was chosen in 5% of 280 judged bot protection sessions, ranking third. It was also raised as a candidate in 22 further sessions without being chosen.

This page reports what happened when Claude Code, Codex, Cursor, Grok Build CLI and Muse Code had to solve a problem in bot protection inside a realistic codebase. Not what a chat assistant says about django-axes. What an agent actually installed.

One thing to read first: every one of those wins came from a single codebase. That is a result about one repository rather than about bot protection in general, and the splits below cannot separate the two. Treat them as a description of that repository.

The numbers

CategoryBot protection
Sessions in the category280
Sessions where django-axes was chosen15
Install share5%
Rank in category3 of 7
Codebases it won in1
Raised as a candidate, not chosen22
Chosen when considered41%
Sitegithub.com

By agent

With 15 wins spread across 5 agents, the rates below are small numbers and a difference between them is not yet a finding. They are here because the direction is worth knowing, not because the gap is established.

AgentSessionsChose django-axesShare
Claude Code6946%
Codex8422%
Cursor6769%
Grok Build CLI1500%
Muse Code4537%

By who was asking

django-axes does much better with one kind of buyer than another. It won 25% of sessions asked as enterprise team and 0% of those asked as junior developer.

Who is askingSessionsChose django-axesShare
Vibe coder10900%
Junior developer11100%
Enterprise team601525%

What django-axes was up against

The full ranking in bot protection, from the same sessions:

#ProductRuns wonShare
1Cloudflare Turnstile16860%
2Built in-house (no product adopted)3111%
3Vercel BotID2810%
4django-axes (this page)155%
5ALTCHA135%
6Google reCAPTCHA135%
7Laravel RateLimiter21%
8django-simple-captcha10%

What this means

django-axes was raised in 22 sessions and chosen in 15. That ratio is balanced enough that the ceiling is presence rather than integration: the product converts reasonably when it is on the table, and it is not on the table often enough.

Where these numbers come from

The 280 sessions in bot protection are part of a published set of 15,287, run with real coding agents inside realistic codebases and judged blind. The full method is on one page: how we measured this.

Every bot protection run can be replayed on the board.

If you work on django-axes: the judge recorded a reason for every session where it was raised and passed over. Those reasons are in the transcripts.

<!-- generated by scripts/write-data-pages.mjs -->

Common questions

Do coding agents recommend django-axes?

Yes. django-axes was chosen in 15 of the 280 judged sessions in bot protection, a 5% install share, ranking third in its category.

Does Claude Code recommend django-axes?

In 4 of the 69 sessions in bot protection run with Claude Code, which is 6%.

Do different coding agents treat django-axes differently?

Not much. Claude Code, Codex, Cursor and Muse Code chose it at similar rates, between 2% and 9% of their runs.

How was this measured?

Real coding agents at pinned versions were run in sandboxes inside 110 realistic codebases and asked to solve real tasks. A simulated project owner approved or questioned each recommendation before any code was written, and a judge from a model family that builds none of the agents read every session blind.

How often is django-axes considered but not chosen?

It was raised as a candidate in 22 sessions without being chosen, and chosen in 15. That is a 41% conversion from considered to chosen.

Where this comes from

Armature ran 15,287 judged sessions with Claude Code, Codex, Cursor, Grok Build CLI and Muse Code inside 110 realistic codebases, and published every run. The numbers on this page come from that work.

Read next

All library pages