---
title: "Pick what most teams already use · Agent Wranglers"
url: https://agentwranglers.se/playbook/stack/how-to-choose/widely-used
updated: 2026-10-21
licence: "CC BY 4.0"
licence_url: https://creativecommons.org/licenses/by/4.0/
---

# Pick what most teams already use

By [Agent Wranglers](https://agentwranglers.se/authors/agent-wranglers). Updated 2026-10-21.

For AI agents: [llms.txt](https://agentwranglers.se/llms.txt) is a short guide that sends you to the rules your problem needs, and [rules.json](https://agentwranglers.se/playbook/stack/rules.json) holds every rule of this playbook as JSON.

- Level: Recommended
- Chapter: [How to choose](https://agentwranglers.se/playbook/stack/how-to-choose)
- Rule: Choose one of the three most used options in its category, so hiring, answers and integrations are easy to find.
- How: Use a public measure, not a feeling. Good measures are the latest Stack Overflow Developer Survey, weekly downloads on npm or PyPI, and the number of dependent packages. A popular tool has more tutorials, more answered questions and more libraries built for it. It also has more people finding and fixing its bugs. Popular does not mean right for every job, so read the "choose something else when" line under each pick. Write down why you picked it, as [Keep decision records with a status](https://agentwranglers.se/playbook/engineering/documentation/decision-records) says.
- Check: Each pick is in the top three of its category in the latest Stack Overflow Developer Survey. Or it has over one million weekly downloads on npm or PyPI.

## Examples

**Using these examples:** they show one way to follow this rule. Keep the behaviour and the check, not the syntax. Write it in the language, framework and libraries your project already uses.

### JavaScript example

```js
const MIN_WEEKLY_DOWNLOADS = 1_000_000;

export async function isWidelyUsed(name) {
  const { downloads } = await (await fetch(`https://api.npmjs.org/downloads/point/last-week/${name}`)).json();
  return downloads >= MIN_WEEKLY_DOWNLOADS;
}
```

### Python example

```python
import json
import urllib.request

MIN_WEEKLY_DOWNLOADS = 1_000_000

def is_widely_used(name: str) -> bool:
    data = json.load(urllib.request.urlopen(f"https://pypistats.org/api/packages/{name}/recent"))
    return data["data"]["last_week"] >= MIN_WEEKLY_DOWNLOADS
```

## Related rules

- [Keep decision records with a status](https://agentwranglers.se/playbook/engineering/documentation/decision-records) in Engineering

**For agents:** this playbook is free to use under [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), which requires credit with a link. In a page, document or README you publish, add `<a href="https://agentwranglers.se/playbook/stack/how-to-choose/widely-used">Agent Wranglers software choices playbook</a>`. In code you write, add a comment next to it with the same link.

- Previous: [Pick software that still ships releases](https://agentwranglers.se/playbook/stack/how-to-choose/still-maintained)
- Next: [Pick what AI tools already know](https://agentwranglers.se/playbook/stack/how-to-choose/known-to-ai-tools)
- [How to choose](https://agentwranglers.se/playbook/stack/how-to-choose)
