# Find Awesome Tools

> Discovers curated tools, libraries, frameworks, and resources across thousands of awesome-lists. Use this skill whenever the user is shopping for options in a technology space — "what are good Rust CLI argument parsers", "recommend React state management libraries", "popular Python web frameworks", "tools for building graph databases", "state-of-the-art computer vision projects" — anything phrased as discovery, comparison, or recommendation of options in a domain. Use when the user: - Asks "what are good X for Y" or "recommend X" - Wants a comparison of options in a category - Explores an unfamiliar technology space and needs to see what exists - Mentions "awesome list", "curated list", or a broad category name Do NOT use for: - API syntax or usage questions for a specific known library (use a docs skill) - Debugging or configuration questions for one library - Installing or configuring a tool the user already picked

- Skill: `bh-rat/find-awesome-tools` (Agent Skill)
- Install (CLI): `npx skillmds@latest add bh-rat/find-awesome-tools`
- Raw SKILL.md: https://api.skillmd.com/api/skills/bh-rat/find-awesome-tools/raw
- Safety review: PASS (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Product & Planning
- Author: bh-rat (https://skillmd.com/u/bh-rat)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/bh-rat/find-awesome-tools

---


# Find Awesome Tools

Curated discovery of tools, libraries, frameworks, and resources across thousands of community-maintained awesome-lists. Reach for this skill when the user is deciding what to use in a technology space — not when they already have a specific library in hand and need its API or configuration.

## When to Use This Skill

Activate this skill when the user:

- Asks "what are good X for Y" or "recommend X"
- Wants a comparison of options in a category
- Explores an unfamiliar space and needs to see what exists
- Mentions "awesome list", "curated list", or names a broad category

Do not use this skill when the user already knows the library and needs docs, configuration help, or debugging for it — that belongs to a documentation skill.

## Workflow

Three tools mirror one concept: find sections, search items, fetch items from a list. Pick the path based on the user's intent.

| User intent                      | Path                                                     |
| -------------------------------- | -------------------------------------------------------- |
| "What exists in category X?"     | `find_awesome_section` → `get_awesome_items`             |
| "Find me a keyword or concept"   | `search_awesome_items` (one-shot)                        |
| "Give me everything from list Y" | `get_awesome_items` directly (when repo/listId is known) |

MCP callers invoke the tools directly. CLI callers use the matching subcommand: `sections`, `search`, `items`. Both transports hit the same backend.

## Tools

### find_awesome_section / context-awesome sections

Discovers sections (categories) matching a query across every indexed awesome-list. Call this before `get_awesome_items` unless you already know the `githubRepo` or `listId`.

Inputs:

- `query` (required) — search terms
- `confidence` (optional, default `0.3`) — minimum match confidence, 0–1
- `limit` (optional, default `10`) — maximum sections returned

MCP:

```json
{ "query": "graph databases", "limit": 5 }
```

CLI:

```bash
context-awesome sections "graph databases" --limit 5
```

### search_awesome_items / context-awesome search

Full-text search across every parsed item across every awesome-list. Use when the user wants individual tools or resources, not a whole section.

Inputs:

- `query` (required) — keywords
- `limit` (optional, default `20`, max `100`)
- `categories` (optional, MCP only) — filter to items tagged with these categories
- `sortBy` (optional, default `"relevance"`) — one of `relevance`, `stars`, `recent`

MCP:

```json
{ "query": "postgres ORM", "sortBy": "stars", "limit": 10 }
```

CLI:

```bash
context-awesome search "postgres ORM" --sort stars --limit 10
```

### get_awesome_items / context-awesome items

Retrieves items from a specific list, optionally filtered to a section, bounded by a token budget.

Inputs:

- `listId` or `githubRepo` — exactly one is required. `githubRepo` takes the form `owner/repo`; `listId` is a UUID.
- `section` (optional) — filter to a named section
- `subcategory` (optional) — filter to a named subcategory
- `tokens` (optional, default `10000`) — token budget for the response. Values below 10000 may omit complete items; use 10000 or more. The MCP tool clamps smaller values up automatically; the CLI does not.
- `offset` (optional, default `0`) — pagination offset

MCP:

```json
{ "githubRepo": "sindresorhus/awesome", "section": "Testing", "tokens": 15000 }
```

CLI:

```bash
context-awesome items sindresorhus/awesome --section Testing --tokens 15000
```

## Writing Good Queries

The query string directly affects result quality. Specific multi-word queries beat single-word queries.

| Quality | Example                                             |
| ------- | --------------------------------------------------- |
| Good    | `"graph databases for knowledge graphs"`            |
| Good    | `"React state management libraries for large apps"` |
| Good    | `"Rust CLI argument parsing"`                       |
| Bad     | `"databases"`                                       |
| Bad     | `"react"`                                           |

Pass the user's full intent when you can. Vague one-word queries return generic results.

## Common Mistakes

- Calling `get_awesome_items` without either `listId` or `githubRepo`. Run `find_awesome_section` first if you don't have one.
- Passing `tokens` below 10000. The MCP tool clamps up silently; the CLI does not. Either way, smaller budgets often omit full items.
- Searching by keyword when the user wanted a whole section, or listing a section when they wanted one specific tool. Re-read the user's ask before choosing between `search_awesome_items` and the `find_awesome_section` → `get_awesome_items` path.
- Treating `search_awesome_items` results as editorial rankings. They are relevance-ranked against the query, not curated picks — sort by `stars` if you want a popularity signal.

## Error Handling

If a tool returns an error message, surface it to the user and suggest a narrower or differently-phrased query. For empty results, suggest broader terms or switching paths — a section search that returns nothing might succeed as an item search, and vice versa. Do not silently fall back to training-data answers without telling the user why the curated lookup failed.

